View Javadoc

1   /*
2    * $Source: /usr/cvsroot/melati/melati/src/test/java/org/melati/test/test/TemplateServletTestTest.java,v $
3    * $Revision: 1.12 $
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  import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;
49  
50  /**
51   * @author timp
52   * @since 7 Mar 2008
53   *
54   */
55  public class TemplateServletTestTest extends JettyWebTestCase {
56  
57    protected String servletName;
58    /**
59     * @param name
60     */
61    public TemplateServletTestTest(String name) {
62      super(name);
63    }
64  
65    /** 
66     * {@inheritDoc}
67     * @see junit.framework.TestCase#setUp()
68     */
69    protected void setUp() throws Exception {
70      super.setUp();
71      servletName = "/org.melati.test.TemplateServletTest/admintest/";
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);
88      try { 
89        clickLinkWithText("Exception");
90      } catch (FailingHttpStatusCodeException e) { 
91        assertEquals(500, e.getStatusCode());
92      }
93      assertTextPresent("MelatiBugMelatiException");
94    }
95    /**
96     * Click passback link, see exception message.
97     * FIXME Webmacro only test
98     */
99    public void testPassbackException() {
100     setScriptingEnabled(false);
101     beginAt(servletName);
102     clickLinkWithText("?passback=true");
103     assertTextPresent("[Access denied to Melati guest user]");
104   }
105   /**
106    * Click propagate link, get login screen.
107    */
108   public void testPropagateException() {
109     setScriptingEnabled(false);
110     beginAt(servletName);
111     clickLinkWithText("?propagate=true");
112     assertTextPresent("You need to log in");
113     assertTextPresent("You need the capability _administer_ ");
114     setScriptingEnabled(false);
115     beginAt("/org.melati.login.Login/admintest");
116     setTextField("field_login", "_administrator_");
117     setTextField("field_password", "FIXME");
118     checkCheckbox("rememberme");
119     submit();
120     gotoPage(servletName);
121     clickLinkWithText("?propagate=true");
122     assertTextPresent("You are logged in as an Administrator");
123   }
124 
125   /**
126    * Fill and click upload.
127    */
128   public void testUpload() { 
129     setScriptingEnabled(false);
130     beginAt("/org.melati.login.Login/admintest");
131     setTextField("field_login", "_administrator_");
132     setTextField("field_password", "FIXME");
133     checkCheckbox("rememberme");
134     submit();
135     gotoPage(servletName);
136     setTextField("file","/dist/melati/melati/src/main/java/org/melati/admin/static/file.gif");
137     submit();
138     assertWindowPresent("Upload");
139     setTextField("file","/dist/melati/LICENSE-GPL.txt");
140     submit();
141     gotoWindow("Upload");
142     assertTextPresent("GNU GENERAL PUBLIC LICENSE");
143     
144   }
145 
146   /**
147    * Click Redirect link.
148    */
149   public void testRedirect() {
150     setScriptingEnabled(false);
151     beginAt(servletName);
152     clickLinkWithText("Redirect");
153     assertTextPresent("Melati is a tool");
154   }
155 
156   /**
157    * Click view.
158    */
159   public void testView() { 
160     setScriptingEnabled(false);
161     beginAt(servletName );
162     clickLinkWithText("tableinfo/0/View");
163     assertTextPresent("logicalDatabase = melatitest, table = tableinfo, troid = 0, method = View");
164   }
165 
166 }