1 19 package validation; 20 21 import java.io.File ; 22 import junit.textui.TestRunner; 23 import org.netbeans.jellytools.Bundle; 24 import org.netbeans.jellytools.EditorOperator; 25 import org.netbeans.jellytools.JellyTestCase; 26 import org.netbeans.jellytools.MainWindowOperator; 27 import org.netbeans.jellytools.NbDialogOperator; 28 import org.netbeans.jellytools.OutputTabOperator; 29 import org.netbeans.jellytools.ProjectsTabOperator; 30 import org.netbeans.jellytools.actions.Action; 31 import org.netbeans.jellytools.actions.DebugProjectAction; 32 import org.netbeans.jellytools.actions.OpenAction; 33 import org.netbeans.jellytools.modules.debugger.AttachDialogOperator; 34 import org.netbeans.jellytools.modules.debugger.SessionsOperator; 35 import org.netbeans.jellytools.modules.debugger.actions.ContinueAction; 36 import org.netbeans.jellytools.modules.debugger.actions.DebugAction; 37 import org.netbeans.jellytools.modules.j2ee.actions.RefreshAction; 38 import org.netbeans.jellytools.modules.j2ee.actions.RestartAction; 39 import org.netbeans.jellytools.modules.j2ee.actions.StartAction; 40 import org.netbeans.jellytools.modules.j2ee.actions.StartDebugAction; 41 import org.netbeans.jellytools.modules.j2ee.actions.StopAction; 42 import org.netbeans.jellytools.modules.j2ee.nodes.J2eeServerNode; 43 import org.netbeans.jellytools.modules.web.nodes.WebPagesNode; 44 import org.netbeans.jellytools.nodes.Node; 45 import org.netbeans.jellytools.nodes.SourcePackagesNode; 46 import org.netbeans.jemmy.Waitable; 47 import org.netbeans.jemmy.Waiter; 48 import org.netbeans.jemmy.Waiter; 49 import org.netbeans.jemmy.operators.ContainerOperator; 50 import org.netbeans.jemmy.operators.JCheckBoxOperator; 51 import org.netbeans.jemmy.operators.JTreeOperator; 52 import org.netbeans.junit.NbTestSuite; 53 import org.netbeans.junit.ide.ProjectSupport; 54 55 60 public class JSPDebuggingOverallTest extends JellyTestCase { 61 private MainWindowOperator.StatusTextTracer stt; 63 64 public JSPDebuggingOverallTest(String testName) { 65 super(testName); 66 } 67 68 public static void main(String [] args) { 69 TestRunner.run(suite()); 70 } 71 72 public static NbTestSuite suite() { 73 NbTestSuite suite = new NbTestSuite(); 74 suite.addTest(new JSPDebuggingOverallTest("testOpenProjects")); 75 if(Utils.DEFAULT_SERVER.equals(Utils.TOMCAT)) { 76 suite.addTest(new JSPDebuggingOverallTest("testSetTomcatPort")); 77 } 78 suite.addTest(new JSPDebuggingOverallTest("testRunProject")); 79 suite.addTest(new JSPDebuggingOverallTest("testDebugProject")); 80 suite.addTest(new JSPDebuggingOverallTest("testSetBreakpoint")); 81 suite.addTest(new JSPDebuggingOverallTest("testDebugReload")); 82 suite.addTest(new JSPDebuggingOverallTest("testAttachDebugger")); 83 suite.addTest(new JSPDebuggingOverallTest("testDebugAfterBreakpoint")); 84 suite.addTest(new JSPDebuggingOverallTest("testDebugAndStopServer")); 85 suite.addTest(new JSPDebuggingOverallTest("testStartAnotherSession")); 86 suite.addTest(new JSPDebuggingOverallTest("testJavaSession")); 87 suite.addTest(new JSPDebuggingOverallTest("testStopServer")); 88 return suite; 89 } 90 91 92 public void setUp() { 93 System.out.println("######## "+getName()+" #######"); 94 stt = MainWindowOperator.getDefault().getStatusTextTracer(); 95 stt.start(); 97 MainWindowOperator.getDefault().getTimeouts().setTimeout("Waiter.WaitingTime", 60000); 99 } 100 101 102 public void tearDown() { 103 stt.stop(); 104 } 105 106 private static final String SAMPLE_WEB_PROJECT_NAME = "MainTestApplication"; 109 110 111 public void testOpenProjects() { 112 String [] projects = {"MainTestApplication", "TestFreeformLibrary", "TestLibrary", "TestTagLibrary"}; for(int i=0;i<projects.length;i++) { 114 ProjectSupport.openProject(new File (getDataDir(), projects[i])); 115 } 116 String setMainItem = Bundle.getString("org.netbeans.modules.project.ui.actions.Bundle", "LBL_SetMainProjectAction_Name"); 118 new Action(null, setMainItem).perform(new ProjectsTabOperator().getProjectRootNode(SAMPLE_WEB_PROJECT_NAME)); 119 ProjectsTabOperator.invoke().getProjectRootNode(SAMPLE_WEB_PROJECT_NAME).properties(); 122 String projectPropertiesTitle = Bundle.getStringTrimmed("org.netbeans.modules.web.project.ui.customizer.Bundle", "LBL_Customizer_Title"); 124 NbDialogOperator propertiesDialogOper = new NbDialogOperator(projectPropertiesTitle); 125 new Node(new JTreeOperator(propertiesDialogOper), "Run").select(); 127 String displayBrowserLabel = Bundle.getStringTrimmed("org.netbeans.modules.web.project.ui.customizer.Bundle", "LBL_CustomizeRun_DisplayBrowser_JCheckBox"); 128 new JCheckBoxOperator(propertiesDialogOper, displayBrowserLabel).setSelected(false); 129 propertiesDialogOper.ok(); 131 } 132 133 134 public void testSetTomcatPort() throws Exception { 135 Utils.setTomcatProperties(); 136 } 137 138 139 public void testRunProject() { 140 String runProjectItem = Bundle.getString("org.netbeans.modules.web.project.ui.Bundle", "LBL_RunAction_Name"); 141 new Action(null, runProjectItem).perform(new ProjectsTabOperator().getProjectRootNode(SAMPLE_WEB_PROJECT_NAME)); 142 Utils.waitFinished(this, SAMPLE_WEB_PROJECT_NAME, "run"); 143 } 144 145 149 public void testDebugProject() { 150 Node rootNode = new ProjectsTabOperator().getProjectRootNode(SAMPLE_WEB_PROJECT_NAME); 151 new DebugProjectAction().perform(rootNode); 152 Utils.waitFinished(this, SAMPLE_WEB_PROJECT_NAME, "debug"); 153 } 154 155 160 public void testSetBreakpoint() throws Exception { 161 new OpenAction().performAPI(new Node(new WebPagesNode(SAMPLE_WEB_PROJECT_NAME), "index.jsp")); EditorOperator eo = new EditorOperator("index.jsp"); Utils.setBreakpoint(eo, "<h1>"); } 166 167 173 public void testDebugReload() { 174 Utils.reloadPage(SAMPLE_WEB_PROJECT_NAME); 175 EditorOperator eo = new EditorOperator("index.jsp"); int line = eo.getLineNumber(); 179 stt.waitText("index.jsp:"+line); 180 new ContinueAction().perform(); 181 Utils.finishDebugger(); 182 } 183 184 192 public void testAttachDebugger() { 193 AttachDialogOperator ado = AttachDialogOperator.invoke(); 195 ado.selectConnector(ado.ITEM_SOCKET_ATTACH); 196 ado.setPort(Utils.getSocketPort()); 197 ado.ok(); 198 String runningLabel = Bundle.getString("org.netbeans.modules.debugger.jpda.ui.Bundle", "CTL_Debugger_running"); 200 stt.waitText(runningLabel); 201 Utils.reloadPage(SAMPLE_WEB_PROJECT_NAME); 202 EditorOperator eo = new EditorOperator("index.jsp"); int line = eo.getLineNumber(); 206 stt.waitText("index.jsp:"+line); 207 Utils.finishDebugger(); 208 } 209 210 218 public void testDebugAfterBreakpoint() { 219 new DebugProjectAction().perform(); 221 Utils.waitFinished(this, SAMPLE_WEB_PROJECT_NAME, "debug"); 222 Utils.reloadPage(SAMPLE_WEB_PROJECT_NAME); 223 EditorOperator eo = new EditorOperator("index.jsp"); int line = eo.getLineNumber(); 227 stt.waitText("index.jsp:"+line); 228 stt.clear(); 229 Utils.finishDebugger(); 230 new DebugProjectAction().perform(); 232 Utils.waitFinished(this, SAMPLE_WEB_PROJECT_NAME, "debug"); 233 Utils.reloadPage(SAMPLE_WEB_PROJECT_NAME); 234 stt.waitText("index.jsp:"+line); Utils.finishDebugger(); 236 } 237 238 248 public void testDebugAndStopServer() { 249 new DebugProjectAction().perform(); 251 Utils.waitFinished(this, SAMPLE_WEB_PROJECT_NAME, "debug"); 252 Utils.reloadPage(SAMPLE_WEB_PROJECT_NAME); 253 EditorOperator eo = new EditorOperator("index.jsp"); int line = eo.getLineNumber(); 257 stt.waitText("index.jsp:"+line); 258 stt.clear(); 259 260 J2eeServerNode serverNode = new J2eeServerNode(Utils.DEFAULT_SERVER); 262 assertFalse("Start action on server node should be disabled when stopped at breakpoint.", new StartAction().isEnabled(serverNode)); 263 assertFalse("Stop action on server node should be disabled when stopped at breakpoint.", new StopAction().isEnabled(serverNode)); 264 assertFalse("Restart action on server node should be disabled when stopped at breakpoint.", new RestartAction().isEnabled(serverNode)); 265 assertFalse("Start in Debug Mode action on server node should be disabled when stopped at breakpoint.", new StartDebugAction().isEnabled(serverNode)); 266 assertTrue("Refresh action on server node should be enabled when stopped at breakpoint.", new RefreshAction().isEnabled(serverNode)); 267 268 Utils.finishDebugger(); 269 serverNode.stop(); 270 new DebugProjectAction().perform(); 272 Utils.waitFinished(this, SAMPLE_WEB_PROJECT_NAME, "debug"); 273 Utils.reloadPage(SAMPLE_WEB_PROJECT_NAME); 274 stt.waitText("index.jsp:"+line); 275 Utils.finishDebugger(); 276 } 277 278 288 public void testStartAnotherSession() { 289 new DebugProjectAction().perform(); 291 Utils.waitFinished(this, SAMPLE_WEB_PROJECT_NAME, "debug"); 292 Utils.reloadPage(SAMPLE_WEB_PROJECT_NAME); 293 EditorOperator eo = new EditorOperator("index.jsp"); int line = eo.getLineNumber(); 297 stt.waitText("index.jsp:"+line); 298 299 new DebugProjectAction().perform(); 300 OutputTabOperator outputOper = new OutputTabOperator(SAMPLE_WEB_PROJECT_NAME); 301 String suspendedMessage = Bundle.getString("org.netbeans.modules.j2ee.deployment.impl.Bundle", "MSG_ServerSuspended"); 303 outputOper.waitText(suspendedMessage); 304 outputOper.close(); 305 306 String runProjectItem = Bundle.getString("org.netbeans.modules.web.project.ui.Bundle", "LBL_RunAction_Name"); 307 Action runProjectAction = new Action(null, runProjectItem); 308 runProjectAction.perform(new ProjectsTabOperator().getProjectRootNode(SAMPLE_WEB_PROJECT_NAME)); 309 outputOper = new OutputTabOperator(SAMPLE_WEB_PROJECT_NAME); 310 outputOper.waitText(suspendedMessage); 311 outputOper.close(); 312 Utils.finishDebugger(); 313 } 314 315 334 public void testJavaSession() throws Exception { 335 Node beanNode = new Node(new SourcePackagesNode(SAMPLE_WEB_PROJECT_NAME), "org.netbeans.test|MyBean.java"); new OpenAction().performAPI(beanNode); EditorOperator eoBean = new EditorOperator("MyBean.java"); final int lineJavaSource = Utils.setBreakpoint(eoBean, "System.out.println"); new DebugAction().perform(beanNode); 340 stt.waitText("MyBean.java:"+lineJavaSource); 342 Node pageNode = new Node(new WebPagesNode(SAMPLE_WEB_PROJECT_NAME), "incl|simpleInclude.jsp"); new OpenAction().performAPI(pageNode); 344 EditorOperator eoPage = new EditorOperator("simpleInclude.jsp"); final int lineJSP = Utils.setBreakpoint(eoPage, "incl/simpleInclude.jsp"); new DebugAction().perform(pageNode); 347 Utils.waitFinished(this, SAMPLE_WEB_PROJECT_NAME, "debug"); 348 Utils.reloadPage(SAMPLE_WEB_PROJECT_NAME+"/incl/simpleInclude.jsp"); 349 stt.waitText("simpleInclude.jsp:"+lineJSP); 351 SessionsOperator so = SessionsOperator.invoke(); 352 so.makeCurrent("MyBean"); new Waiter(new Waitable() { 355 public Object actionProduced(Object editorOper) { 356 return ((EditorOperator)editorOper).getAnnotations(lineJavaSource).length == 2 ? Boolean.TRUE : null; 357 } 358 public String getDescription() { 359 return("Wait 2 annotations in editor."); } 361 }).waitAction(eoBean); 362 so.makeCurrent("name"); 364 new Waiter(new Waitable() { 366 public Object actionProduced(Object editorOper) { 367 return ((EditorOperator)editorOper).getAnnotations(lineJSP).length == 2 ? Boolean.TRUE : null; 368 } 369 public String getDescription() { 370 return("Wait 2 annotations in editor."); } 372 }).waitAction(eoPage); 373 ContainerOperator debugToolbarOper = Utils.getDebugToolbar(); 374 so.finishAll(); 375 debugToolbarOper.waitComponentVisible(false); 377 so.close(); 378 } 379 380 383 public void testStopServer() { 384 J2eeServerNode serverNode = new J2eeServerNode(Utils.DEFAULT_SERVER); 385 serverNode.stop(); 386 } 387 } 388 | Popular Tags |