001: /*
002: * JOnAS: Java(TM) Open Application Server
003: * Copyright (C) 1999 Bull S.A.
004: * Contact: jonas-team@objectweb.org
005: *
006: * This library is free software; you can redistribute it and/or
007: * modify it under the terms of the GNU Lesser General Public
008: * License as published by the Free Software Foundation; either
009: * version 2.1 of the License, or 1any later version.
010: *
011: * This library is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * Lesser General Public License for more details.
015: *
016: * You should have received a copy of the GNU Lesser General Public
017: * License along with this library; if not, write to the Free Software
018: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
019: * USA
020: *
021: * Initial developer: Florent BENOIT
022: * --------------------------------------------------------------------------
023: * $Id: C_earsample.java 10557 2007-06-07 09:21:44Z coqp $
024: * --------------------------------------------------------------------------
025: */
026:
027: package org.objectweb.jonas.examples.clients.earsample;
028:
029: import junit.framework.TestSuite;
030:
031: import org.objectweb.jonas.examples.util.JExampleTestCase;
032:
033: import com.meterware.httpunit.AuthorizationRequiredException;
034: import com.meterware.httpunit.WebResponse;
035:
036: /**
037: * Define a class to test the Alarm example
038: * Test authentication, and check the sample is ok
039: * @author Florent Benoit
040: */
041: public class C_earsample extends JExampleTestCase {
042:
043: /**
044: * URL of the earsample page
045: */
046: private static final String URL_EARSAMPLE = "/earsample/secured/Op";
047:
048: /**
049: * Main method
050: * @param args the arguments
051: */
052: public static void main(String[] args) {
053:
054: String testtorun = null;
055: // Get args
056: for (int argn = 0; argn < args.length; argn++) {
057: String sArg = args[argn];
058: if (sArg.equals("-n")) {
059: testtorun = args[++argn];
060: }
061: }
062:
063: if (testtorun == null) {
064: junit.textui.TestRunner.run(suite());
065: } else {
066: junit.textui.TestRunner.run(new C_earsample(testtorun));
067: }
068: }
069:
070: /**
071: * Get a new TestSuite for this class
072: * @return a new TestSuite for this class
073: */
074: public static TestSuite suite() {
075: return new TestSuite(C_earsample.class);
076: }
077:
078: /**
079: * Setup need for these tests
080: * earsample is required
081: * @throws Exception if it fails
082: */
083: protected void setUp() throws Exception {
084: super .setUp();
085: useEar("earsample");
086: }
087:
088: /**
089: * Constructor with a specified name
090: * @param s name
091: */
092: public C_earsample(String s) {
093: super (s, URL_EARSAMPLE);
094: }
095:
096: /**
097: * Try to log in without authentication
098: * @throws Exception if an error occurs
099: */
100: public void testTryWithoutAuth() throws Exception {
101: try {
102: WebResponse wr = wc.getResponse(url);
103: fail("earsample is not protected");
104: } catch (AuthorizationRequiredException e) {
105: ;
106: }
107: }
108:
109: /**
110: * Try to authenticate with a bad login/password
111: * @throws Exception if an error occurs
112: */
113: public void testTryWithBadAuth() throws Exception {
114: try {
115: wc.setAuthorization("bad", "bad");
116: WebResponse wr = wc.getResponse(url);
117: fail("earsample is not protected");
118: } catch (AuthorizationRequiredException e) {
119: ;
120: }
121: }
122:
123: /**
124: * Try to authenticate with a right login/password (jetty)
125: * @throws Exception if an error occurs
126: */
127: public void testTryWithJettyAuth() throws Exception {
128: try {
129: wc.setAuthorization("jetty", "jetty");
130: WebResponse wr = wc.getResponse(url);
131: } catch (AuthorizationRequiredException e) {
132: fail("earsample don't accept l/p jetty/jetty");
133: }
134: }
135:
136: /**
137: * Try to authenticate with a right login/password (tomcat)
138: * @throws Exception if an error occurs
139: */
140: public void testTryWithTomcatAuth() throws Exception {
141: try {
142: wc.setAuthorization("tomcat", "tomcat");
143: WebResponse wr = wc.getResponse(url);
144: } catch (AuthorizationRequiredException e) {
145: fail("earsample don't accept l/p tomcat/tomcat");
146: }
147: }
148:
149: /**
150: * Check if the sample is OK. Analyze response
151: * @throws Exception if an error occurs
152: */
153: public void testIsSampleOk() throws Exception {
154: try {
155: wc.setAuthorization("tomcat", "tomcat");
156: WebResponse wr = wc.getResponse(url);
157: String txt = wr.getText();
158:
159: if (txt.indexOf("<strong>Sample is OK.</strong>") == -1) {
160: fail("The example was not ok : " + txt);
161: }
162:
163: } catch (AuthorizationRequiredException e) {
164: fail("Authentication failed");
165: }
166: }
167:
168: }
|