1   /*
2    * $Source: /usr/cvsroot/melati/melati/src/test/java/org/melati/test/test/PoemServletTestTest.java,v $
3    * $Revision: 1.6 $
4    *
5    * Copyright (C) 2008 Tim Pizey
6    *
7    * Part of Melati (http://melati.org), a framework for the rapid
8    * development of clean, maintainable web applications.
9    *
10   * Melati is free software; Permission is granted to copy, distribute
11   * and/or modify this software under the terms either:
12   *
13   * a) the GNU General Public License as published by the Free Software
14   *    Foundation; either version 2 of the License, or (at your option)
15   *    any later version,
16   *
17   *    or
18   *
19   * b) any version of the Melati Software License, as published
20   *    at http://melati.org
21   *
22   * You should have received a copy of the GNU General Public License and
23   * the Melati Software License along with this program;
24   * if not, write to the Free Software Foundation, Inc.,
25   * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA to obtain the
26   * GNU General Public License and visit http://melati.org to obtain the
27   * Melati Software License.
28   *
29   * Feel free to contact the Developers of Melati (http://melati.org),
30   * if you would like to work out a different arrangement than the options
31   * outlined here.  It is our intention to allow Melati to be used by as
32   * wide an audience as possible.
33   *
34   * This program is distributed in the hope that it will be useful,
35   * but WITHOUT ANY WARRANTY; without even the implied warranty of
36   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
37   * GNU General Public License for more details.
38   *
39   * Contact details for copyright holder:
40   *
41   *     Tim Pizey <timp At paneris.org>
42   *     http://paneris.org/~timp
43   */
44  package org.melati.test.test;
45  
46  import org.melati.JettyWebTestCase;
47  
48  
49  /**
50   * @author timp
51   * @since 6 Mar 2008
52   *
53   */
54  public class PoemServletTestTest extends JettyWebTestCase {
55  
56    protected String servletName;
57    
58    /**
59     * @param name
60     */
61    public PoemServletTestTest(String name) {
62      super(name);
63      servletName = "org.melati.test.PoemServletTest";
64    }
65  
66    /** 
67     * {@inheritDoc}
68     * @see junit.framework.TestCase#setUp()
69     */
70    protected void setUp() throws Exception {
71      super.setUp();
72    }
73  
74    /** 
75     * {@inheritDoc}
76     * @see junit.framework.TestCase#tearDown()
77     */
78    protected void tearDown() throws Exception {
79      super.tearDown();
80    }
81  
82    /**
83     * Click Exception link.
84     */
85    public void testException() {
86      setScriptingEnabled(false);
87      beginAt("/" + servletName + "/melatitest");
88      clickLinkWithText("Exception");
89      assertTextPresent("MelatiBugMelatiException");
90    }
91    /**
92     * Click Exception link.
93     */
94    public void testAccessException() {
95      setScriptingEnabled(false);
96      beginAt("/" + servletName + "/melatitest/" );
97      clickLinkWithText("Access Poem Exception");
98      assertTextPresent("You need the capability _administer_ ");
99      setTextField("field_login", "_administrator_");
100     setTextField("field_password", "FIXME");
101     checkCheckbox("rememberme");
102     submit("action");
103     assertTextPresent("You are logged in as _administrator_ and have _administer_ capability");
104   }
105   
106   /**
107    * Click Exception link.
108    */
109   public void testAccessAllowed() {
110     setScriptingEnabled(false);
111     beginAt("/org.melati.login.Login/admintest");
112     setTextField("field_login", "_administrator_");
113     setTextField("field_password", "FIXME");
114     checkCheckbox("rememberme");
115     submit("action");
116     gotoPage("/" + servletName + "/admintest");
117     clickLinkWithText("Access Poem Exception");
118     assertTextPresent("You are logged in as _administrator_ and have _administer_ capability");
119   }
120 
121   /**
122    * Click view.
123    */
124   public void testView() { 
125     setScriptingEnabled(false);
126     beginAt("/" + servletName +"/melatitest/");
127     clickLinkWithText("tableinfo/0/View");
128     assertTextPresent("logicalDatabase = melatitest, table = tableinfo, troid = 0, method = View");
129   }
130   /**
131    * Fill and click upload.
132    */
133   public void testUpload() { 
134     setScriptingEnabled(false);
135     beginAt("/org.melati.login.Login/admintest");
136     setTextField("field_login", "_administrator_");
137     setTextField("field_password", "FIXME");
138     checkCheckbox("rememberme");
139     submit("action");
140     gotoPage("/" + servletName + "/admintest/");
141 
142     setTextField("file","/dist/melati/melati/src/main/java/org/melati/admin/static/file.gif");
143     submit();
144     assertWindowPresent("Upload");
145     setTextField("file","/dist/melati/LICENSE-GPL.txt");
146     submit();
147     gotoWindow("Upload");
148     assertTextPresent("GNU GENERAL PUBLIC LICENSE");
149     
150   }
151   /**
152    * Fill and click upload.
153    */
154   public void testUploadNothing() { 
155     setScriptingEnabled(false);
156     beginAt("/org.melati.login.Login/admintest");
157     setTextField("field_login", "_administrator_");
158     setTextField("field_password", "FIXME");
159     checkCheckbox("rememberme");
160     submit("action");
161     gotoPage("/" + servletName + "/admintest/");
162 
163     //setTextField("file","/dist/melati/melati/src/main/java/org/melati/admin/static/file.gif");
164     submit();
165     gotoWindow("Upload");
166     assertTextPresent("No file was uploaded");
167     
168   }
169 
170 }