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_JonasAdminDomainAddServer.java 8090 2006-03-07 15:28:49Z danesa $
023: * --------------------------------------------------------------------------
024: */package org.objectweb.jonas.jonasadmin.test.domain;
025:
026: import junit.framework.TestSuite;
027:
028: import org.objectweb.jonas.jonasadmin.test.util.JonasAdminAuth;
029: import org.objectweb.jonas.jonasadmin.test.util.JonasAdminTestCase;
030: import org.objectweb.jonas.jonasadmin.test.util.JonasAdminUtils;
031:
032: import com.meterware.httpunit.HttpUnitOptions;
033: import com.meterware.httpunit.SubmitButton;
034: import com.meterware.httpunit.TableCell;
035: import com.meterware.httpunit.WebForm;
036: import com.meterware.httpunit.WebLink;
037: import com.meterware.httpunit.WebResponse;
038: import com.meterware.httpunit.WebTable;
039:
040: /**
041: * Test adding a server to the domain.
042: * @author Adriana Danes
043: */
044: public class F_JonasAdminDomainAddServer extends JonasAdminTestCase {
045: /**
046: * message.domain.servers.none
047: */
048: private static final String MESSAGE_NO_SERVERS = "No other server in this domain!";
049: /**
050: * URL of "Create Jms Destination"
051: */
052: private static final String URL_DOMAIN_ADD_SERVER = "CreateJonasServer.do";
053: /**
054: *
055: */
056: private static final String APPLY_SERVERS_CONFIRM = "ApplyJonasServersConfirm.do";
057:
058: /**
059: * Main method
060: * @param args the arguments
061: */
062: public static void main(String[] args) {
063:
064: String testtorun = null;
065: // Get args
066: for (int argn = 0; argn < args.length; argn++) {
067: String sArg = args[argn];
068: if (sArg.equals("-n")) {
069: testtorun = args[++argn];
070: }
071: }
072: if (testtorun == null) {
073: junit.textui.TestRunner.run(suite());
074: } else {
075: junit.textui.TestRunner
076: .run(new F_JonasAdminDomainAddServer(testtorun));
077: }
078: }
079:
080: /**
081: * Get a new TestSuite for this class
082: * @return a new TestSuite for this class
083: */
084: public static TestSuite suite() {
085: return new TestSuite(F_JonasAdminDomainAddServer.class);
086: }
087:
088: /**
089: * Setup need for these tests
090: * jonasAdmin is required
091: * @throws Exception if it fails
092: */
093: protected void setUp() throws Exception {
094: super .setUp();
095:
096: if (wc.getCurrentPage().getURL() == null) {
097: useWar("jonasAdmin");
098: // login to jonas admin
099: try {
100: JonasAdminAuth.doValidAuth(wc, url);
101: } catch (Exception e) {
102: fail("authentification failed : " + e);
103: }
104: } else {
105: // if there was an error, the connection must be restablished
106: try {
107: wc.getFrameContents(FRAME_TREE);
108: } catch (Exception e) {
109: wc.getResponse(urlLogOut);
110: // login to jonas admin
111: try {
112: JonasAdminAuth.doValidAuth(wc, url);
113: } catch (Exception auth) {
114: fail("authentification failed : " + auth);
115: }
116: }
117: }
118: }
119:
120: /**
121: * Constructor with a specified name
122: * @param s name
123: */
124: public F_JonasAdminDomainAddServer(String s) {
125: super (s, URL_JONASADMIN);
126: }
127:
128: /**
129: * Test Add server action
130: * @throws Exception if it fails
131: *
132: */
133: public void testAddServer() throws Exception {
134: JonasAdminUtils utils = new JonasAdminUtils();
135: // Disable errors of javascript
136: HttpUnitOptions.setExceptionsThrownOnScriptError(false);
137:
138: // Get the frame "tree"
139: WebResponse treeFrame = wc.getFrameContents(FRAME_TREE);
140:
141: // Create a request and go to the Domain page
142: WebLink domainLink = treeFrame.getLinkWith("Domain");
143: domainLink.click();
144:
145: // Get the response
146: WebResponse wr = wc.getFrameContents(FRAME_CONTENT);
147:
148: // Click to the Add server
149: WebLink link = wr.getFirstMatchingLink(
150: WebLink.MATCH_URL_STRING, URL_DOMAIN_ADD_SERVER);
151: link.click();
152: wr = wc.getFrameContents(FRAME_CONTENT);
153: WebForm form = wr.getForms()[0];
154: String createdServerName = "j1";
155: form.setParameter("serverName", createdServerName);
156: form.setParameter("serverURL", "url");
157:
158: SubmitButton button = form.getSubmitButtons()[0];
159: button.click();
160:
161: // Go back to the Domain page
162: domainLink.click();
163:
164: // Get the response
165: wr = wc.getFrameContents(FRAME_CONTENT);
166:
167: // Go to Servers list
168: WebTable table = utils.getTable(wr, 7);
169: // Go to the 2nd column to find the created server name
170: TableCell cell = table.getTableCell(0, 1);
171: String actualServerName = cell.getText();
172:
173: assertEquals("The " + createdServerName
174: + " was not found in the Servers list",
175: createdServerName, actualServerName);
176:
177: // Remove the added server
178: WebForm itemsServersForm = wr.getForms()[0];
179: SubmitButton[] buttons = itemsServersForm.getSubmitButtons();
180: //System.out.println("Nb submit buttons = " + buttons.length);
181: itemsServersForm.setCheckbox("selectedItems",
182: "jonas:j2eeType=J2EEServer,name=j1", true);
183: /*
184: String[] paramNames = itemsServersForm.getParameterNames();
185: for (int i = 0; i < paramNames.length; i++) {
186: System.out.println("- " + paramNames[i]);
187: }*/
188: //itemsServersForm.setParameter("action", "remove");
189: buttons[0].click();
190:
191: wr = wc.getFrameContents(FRAME_CONTENT);
192: table = utils.getTable(wr, 0);
193: /*
194: cell = table.getTableCell(0, 0);
195: text = cell.getText();
196: System.out.println("---- " + text);*/
197: // Confirm
198: link = wr.getFirstMatchingLink(WebLink.MATCH_URL_STRING,
199: APPLY_SERVERS_CONFIRM);
200: link.click();
201:
202: // Go to domain page
203: domainLink.click();
204: wr = wc.getFrameContents(FRAME_CONTENT);
205:
206: // Go to Servers list
207: table = utils.getTable(wr, 7);
208: cell = table.getTableCell(0, 0);
209: String text = cell.getText();
210: boolean found;
211: if (text.indexOf(MESSAGE_NO_SERVERS) >= 0) {
212: found = true;
213: } else {
214: found = false;
215: }
216: assertTrue("Expecting " + MESSAGE_NO_SERVERS + ", found "
217: + text, found);
218: }
219:
220: /**
221: * Tear Down cleanUp action
222: * @throws Exception if an error occurs
223: */
224: public void tearDown() throws Exception {
225: super.tearDown();
226: }
227:
228: }
|