001: /**
002: * JOnAS: Java(TM) Open Application Server
003: * Copyright (C) 2005 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: * --------------------------------------------------------------------------
022: * $Id: F_JonasAdminSaveAll.java 7381 2005-09-14 16:00:02Z kemlerp $
023: * --------------------------------------------------------------------------
024: */package org.objectweb.jonas.jonasadmin.test.jonasserver;
025:
026: import java.io.File;
027:
028: import junit.framework.TestSuite;
029:
030: import org.objectweb.jonas.jonasadmin.test.catalina.ConnectorUtils;
031: import org.objectweb.jonas.jonasadmin.test.logging.LoggerUtils;
032: import org.objectweb.jonas.jonasadmin.test.util.JonasAdminAuth;
033: import org.objectweb.jonas.jonasadmin.test.util.JonasAdminFiles;
034: import org.objectweb.jonas.jonasadmin.test.util.JonasAdminTestCase;
035:
036: import com.meterware.httpunit.HttpUnitOptions;
037: import com.meterware.httpunit.WebLink;
038: import com.meterware.httpunit.WebResponse;
039: import com.meterware.httpunit.WebTable;
040:
041: /**
042: * Class for testing Save All in jonasAdmin
043: * @author Paul Kemler
044: *
045: */
046: public class F_JonasAdminSaveAll extends JonasAdminTestCase {
047:
048: /**
049: * URL of the Server Management
050: */
051: private static final String URL_JONASADMIN_SERVER = "EditJonasServer.do";
052:
053: /**
054: * URL of the SERVLET SERVER
055: */
056: private static final String URL_JONASADMIN_SERVLET_SERVER = "EditServletServer.do";
057:
058: /**
059: * URL of the SAVE ALL button
060: */
061: private static final String URL_JONASADMIN_SAVE_ALL = "SaveCatalina.do";
062:
063: /**
064: * URL of welcome
065: */
066: private static final String URL_WELCOME = "/jonasAdmin/Welcome.do";
067:
068: /**
069: * Time of beginning testAllLinks
070: */
071: private String beginTime;
072:
073: /**
074: * Time of ending testAllLinks
075: */
076: private String endTime;
077:
078: /**
079: * Constructor with a specified name
080: * @param s name
081: */
082: public F_JonasAdminSaveAll(String s) {
083: super (s, URL_JONASADMIN);
084: }
085:
086: /**
087: * Main method
088: * @param args the arguments
089: */
090: public static void main(String[] args) {
091:
092: String testtorun = null;
093: // Get args
094: for (int argn = 0; argn < args.length; argn++) {
095: String sArg = args[argn];
096: if (sArg.equals("-n")) {
097: testtorun = args[++argn];
098: }
099: }
100: if (testtorun == null) {
101: junit.textui.TestRunner.run(suite());
102: } else {
103: junit.textui.TestRunner.run(new F_JonasAdminSaveAll(
104: testtorun));
105: }
106: }
107:
108: /**
109: * Get a new TestSuite for this class
110: * @return a new TestSuite for this class
111: */
112: public static TestSuite suite() {
113: return new TestSuite(F_JonasAdminSaveAll.class);
114: }
115:
116: /**
117: * Setup need for these tests
118: * jonasAdmin is required
119: * @throws Exception if it fails
120: */
121: protected void setUp() throws Exception {
122: super .setUp();
123:
124: // Get time
125: beginTime = getTime();
126:
127: if (wc.getCurrentPage().getURL() == null) {
128: useWar("jonasAdmin");
129: // login to jonas admin
130: try {
131: JonasAdminAuth.doValidAuth(wc, url);
132: } catch (Exception e) {
133: fail("authentification failed : " + e);
134: }
135: } else {
136: // if there was an error, the connection must be restablished
137: try {
138: wc.getFrameContents(FRAME_TREE);
139: } catch (Exception e) {
140: wc.getResponse(urlLogOut);
141: // login to jonas admin
142: try {
143: JonasAdminAuth.doValidAuth(wc, url);
144: } catch (Exception auth) {
145: fail("authentification failed : " + auth);
146: }
147: }
148: }
149: }
150:
151: /**
152: * Test Servlet server 'Save all'
153: * @throws Exception if error occurs
154: *
155: */
156: public void testSaveAll() throws Exception {
157:
158: WebResponse wr;
159: WebLink link;
160: WebTable table;
161:
162: // Disable errors of javascript
163: HttpUnitOptions.setExceptionsThrownOnScriptError(false);
164: // Disable exception thrown on error status
165: HttpUnitOptions.setExceptionsThrownOnErrorStatus(false);
166:
167: if (jProp.isCatalina()) {
168: // Go to jonas server management
169: wr = wc.getFrameContents(FRAME_TREE);
170: link = wr.getFirstMatchingLink(WebLink.MATCH_URL_STRING,
171: URL_JONASADMIN_SERVER);
172: link.click();
173: wr = wc.getFrameContents(FRAME_CONTENT);
174: // Go to servlet server
175: link = wr.getFirstMatchingLink(WebLink.MATCH_URL_STRING,
176: URL_JONASADMIN_SERVLET_SERVER);
177: link.click();
178: wr = wc.getFrameContents(FRAME_CONTENT);
179:
180: // Create new connector
181: String port = ConnectorUtils.createNewConnector(wc, "http");
182: // Create new logger
183: LoggerUtils.createNewEngineLogger(wc);
184:
185: // Save all
186: link = wr.getFirstMatchingLink(WebLink.MATCH_URL_STRING,
187: URL_JONASADMIN_SAVE_ALL);
188: link.click();
189: wr = wc.getFrameContents(FRAME_CONTENT);
190:
191: // Remove created connector
192: ConnectorUtils.deleteConnector(wc, port);
193: // Remove logger
194: LoggerUtils.deleteLogger(wc, null);
195:
196: // Get server.xml and test file.
197: XMLTest xmlTest = new XMLTest("");
198: File serverXml = JonasAdminFiles.getServerXmlFile();
199: xmlTest.testServerXml(serverXml, port);
200:
201: }
202: }
203:
204: /**
205: * Tear Down
206: * cleanUp action
207: */
208: public void tearDown() throws Exception {
209: super .tearDown();
210: // Get time
211: endTime = getTime();
212:
213: // Recover last server.xml configuration
214: JonasAdminFiles.recoverServerConf(beginTime, endTime);
215: }
216: }
|