|
What this is
Other links
The source code/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2002 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.test.gui.web.JSPServletDebug; import java.io.File; import java.awt.event.InputEvent; import javax.swing.JPopupMenu; import org.netbeans.junit.NbTestSuite; import org.netbeans.junit.NbTestCase; import junit.framework.Test; import junit.framework.TestSuite; import org.netbeans.jellytools.Bundle; import org.netbeans.jellytools.ExplorerOperator; import org.netbeans.jellytools.EditorOperator; import org.netbeans.jellytools.EditorWindowOperator; import org.netbeans.jellytools.JellyTestCase; import org.netbeans.jellytools.MainWindowOperator; import org.netbeans.jellytools.nodes.FilesystemNode; import org.netbeans.jellytools.nodes.FormNode; import org.netbeans.jellytools.actions.BuildAction; import org.netbeans.jellytools.actions.CleanAction; import org.netbeans.jellytools.actions.CompileAction; import org.netbeans.jellytools.actions.CompileAllAction; import org.netbeans.jemmy.operators.DialogOperator; import org.netbeans.jemmy.operators.JButtonOperator; import org.netbeans.jemmy.operators.JComboBoxOperator; import org.netbeans.jemmy.operators.JPopupMenuOperator; import org.netbeans.jemmy.operators.JTextFieldOperator; import org.netbeans.web.test.actions.AddBreakpointAction; import org.netbeans.web.test.actions.ToggleBreakpointAction; import org.netbeans.web.test.util.Utils; import org.netbeans.test.gui.web.util.CommonUtils; import org.netbeans.test.gui.web.util.CompilationUtils; /** * Collection of tests corresponding "Breakpoints in Compiled JSP" part of JSP/Servlet Debug specification. * @author Vladimir Strigun */ public class Compiled extends NbTestCase { private static ExplorerOperator explorer= null; private EditorOperator editor = null; public static final String delim = "|"; private static String workDir = null; private static String tmpWebModule = null; private static String webModule = null; private static String wmName = "wm"; private static String testWMDir = "compiled"; private static String jsp1 = "jsp1"; private static String jsp2 = "jsp2"; private static String jsp3 = "jsp3"; private static String jsp4 = "jsp4"; private static String jsp5 = "jsp5"; private static String servletName1 = null; private static String servletName2 = null; private static String servletName3 = null; private static String servletName4 = null; private static String servletName5 = null; private static String fileNameForBreakpoint1 = null; private static String fileNameForBreakpoint2 = null; private static String fileNameForBreakpoint3 = null; private static String fileNameForBreakpoint4 = null; private static String fileNameForBreakpoint5 = null; public Compiled(String testName) { super(testName); } /** Use for execution inside IDE */ public static void main(String[] args) { junit.textui.TestRunner.run(suite()); } public static Test suite(){ TestSuite suite = new NbTestSuite(Compiled.class); workDir = System.getProperty("jspservletdebug.workdir").replace('/', File.separatorChar); webModule = workDir + File.separatorChar + wmName; workDir = webModule+delim+testWMDir; explorer = ExplorerOperator.invoke(); explorer.selectPageFilesystems(); Utils.handleDialogAfterNewWebModule(); fileNameForBreakpoint1 = testWMDir+"/"+jsp1; fileNameForBreakpoint2 = testWMDir+"/"+jsp2; fileNameForBreakpoint3 = testWMDir+"/"+jsp3; fileNameForBreakpoint4 = testWMDir+"/"+jsp4; fileNameForBreakpoint5 = testWMDir+"/"+jsp5; servletName1 = "org.apache.jsp."+jsp1+"$jsp"; servletName2 = "org.apache.jsp."+jsp2+"$jsp"; servletName3 = "org.apache.jsp."+jsp3+"$jsp"; servletName4 = "org.apache.jsp."+jsp4+"$jsp"; servletName5 = "org.apache.jsp."+jsp5+"$jsp"; FilesystemNode tmpNode = null; tmpNode = new FilesystemNode(workDir); FormNode fNode = new FormNode(tmpNode, jsp1); (new CompileAllAction()).performMenu(); String res = CompilationUtils.checkResultOfBuildAll(workDir, testWMDir); if(res!=null) System.out.println("FAILED: cannot compile all jsp's!!! "+res); return suite; } /** Toggle breakpoint on via hotkey for "Toggle Breakpoint" */ public void testToogleBreakpointOnHotkey(){ editor = Utils.openFile(workDir, jsp1); editor.setCaretPositionToLine(3); (new ToggleBreakpointAction()).performShortcut(); checkResultOfAddingBreakpoint(fileNameForBreakpoint1, servletName1, 3, 56, false); } /** Toggle breakpoint off via hotkey for "Toggle Breakpoint" */ public void testToogleBreakpointOffHotkey(){ CommonUtils.checkBreakpointExist(jsp1, fileNameForBreakpoint1, 3, 0, false, workDir); editor = Utils.openFile(workDir, jsp1); editor.setCaretPositionToLine(3); (new ToggleBreakpointAction()).performShortcut(); checkResultOfRemovingBreakpoint(fileNameForBreakpoint1, 3, false); } /** Toggle breakpoint on via "Toggle Breakpoint" context menu item */ public void testToggleBreakpointOnContextMenu() { editor = Utils.openFile(workDir, jsp2); //Popup will be openedon 1st line editor.clickForPopup(100, 30); new JPopupMenuOperator().pushMenu("Toggle Breakpoint", "|"); checkResultOfAddingBreakpoint(fileNameForBreakpoint2, servletName2, 1, 54, false); } /** Toggle breakpoint off via "Toggle Breakpoint" context-menu item */ public void testToggleBreakpointOffContextMenu() { CommonUtils.checkBreakpointExist(jsp2, fileNameForBreakpoint2, 1, 54, false, workDir); editor = Utils.openFile(workDir, jsp2); editor.clickForPopup(100, 30); new JPopupMenuOperator().pushMenu("Toggle Breakpoint", "|"); checkResultOfRemovingBreakpoint(fileNameForBreakpoint2, 1, false); } /** Toggle breakpoint on via one mouse click */ public void testToggleBreakpointOnOneMouseClick() { editor = Utils.openFile(workDir, jsp4); editor.clickMouse(5, 30, 1, InputEvent.BUTTON1_MASK); checkResultOfAddingBreakpoint(fileNameForBreakpoint4, servletName4, 1, 54, false); } /** Toggle breakpoint off via one mouse click */ public void testToggleBreakpointOffOneMouseClick() { CommonUtils.checkBreakpointExist(jsp4, fileNameForBreakpoint4, 1, 0, false, workDir); editor = Utils.openFile(workDir, jsp4); editor.clickMouse(5, 30, 1, InputEvent.BUTTON1_MASK); checkResultOfRemovingBreakpoint(fileNameForBreakpoint4, 1, false); } /** Add breakpoint via main menu item */ public void testAddBreakpointMainMenu() { editor = Utils.openFile(workDir, jsp1); editor.setCaretPositionToLine(9); (new AddBreakpointAction()).performMenu(); Utils.fillAddBreakpointDialog(null, 9, ""); checkResultOfAddingBreakpoint(fileNameForBreakpoint1, servletName1, 9, 68, false); } /** Add breakpoint via hotkey for menu item */ public void testAddBreakpointHotkey() { editor = Utils.openFile(workDir, jsp2); editor.setCaretPositionToLine(9); (new AddBreakpointAction()).performShortcut(); Utils.fillAddBreakpointDialog(null, 0, ""); checkResultOfAddingBreakpoint(fileNameForBreakpoint2, servletName2, 9, 68, false); } /** Toggle breakpoint on in generated servlet via hotkey */ public void testToggleBreakpointOnInServletHotkey(){ editor = Utils.openFile(workDir, jsp4); editor.clickForPopup(100, 30); new JPopupMenuOperator().pushMenu("Show code in Servlet", "|"); EditorWindowOperator editorWindow = new EditorWindowOperator("Servlet for "+jsp4); editor = editorWindow.selectPage("Servlet for "+jsp4); editor.setCaretPositionToLine(55); (new ToggleBreakpointAction()).performShortcut(); checkResultOfAddingBreakpoint(fileNameForBreakpoint4, servletName4, 2, 55, true); } /** Toggle breakpoint off in generated servlet via hotkey */ public void testToggleBreakpointOffInServletHotkey(){ CommonUtils.checkBreakpointExist(jsp4, fileNameForBreakpoint4, 2, 55, true, workDir); editor = Utils.openFile(workDir, jsp4); editor.clickForPopup(100, 30); new JPopupMenuOperator().pushMenu("Show code in Servlet", "|"); EditorWindowOperator editorWindow = new EditorWindowOperator("Servlet for "+jsp4); editor = editorWindow.selectPage("Servlet for "+jsp4); editor.setCaretPositionToLine(55); (new ToggleBreakpointAction()).performShortcut(); checkResultOfRemovingBreakpoint(fileNameForBreakpoint4, 2, true); } /** Add JSP/Sevlet breakpoint to generated servlet via hotkey */ public void testAddJSPServletBreakpoint() { editor = Utils.openFile(workDir, jsp3); editor.clickForPopup(100, 30); new JPopupMenuOperator().pushMenu("Show code in Servlet", "|"); EditorWindowOperator editorWindow = new EditorWindowOperator("Servlet for "+jsp3); editor = editorWindow.selectPage("Servlet for "+jsp3); editor.setCaretPositionToLine(58); (new AddBreakpointAction()).performShortcut(); Utils.fillAddBreakpointDialog(null, 0, "jsp/servlet"); checkResultOfAddingBreakpoint(fileNameForBreakpoint3, servletName3, 5, 58, true); } /** Remove JSP-Servlet Breakpoint from Generated Servlet */ public void testRemoveServletBreakpoint(){ CommonUtils.checkBreakpointExist(jsp1, fileNameForBreakpoint1, 2, 55, false, workDir); editor = Utils.openFile(workDir, jsp1); editor.clickForPopup(100, 30); new JPopupMenuOperator().pushMenu("Show code in Servlet", "|"); EditorWindowOperator editorWindow = new EditorWindowOperator("Servlet for "+jsp1); editor = editorWindow.selectPage("Servlet for "+jsp1); editor.setCaretPositionToLine(55); (new ToggleBreakpointAction()).performShortcut(); checkResultOfRemovingServletBreakpoint(fileNameForBreakpoint1, servletName1, 2, 55, false); } /** Remove JSP-Servlet Breakpoint from Generated Servlet and from JSP file This test remove deferred breakpoint from JSP & from servlet by pressing hotkey for "toggle breakpoint" inside jsp file. */ public void testToggleDeferredBreakpointOffInJSPHotkey(){ CommonUtils.checkBreakpointExist(jsp2, fileNameForBreakpoint2, 3, 56, true, workDir); editor = Utils.openFile(workDir, jsp2); editor.setCaretPositionToLine(3); (new ToggleBreakpointAction()).performShortcut(); checkResultOfRemovingBreakpoint(fileNameForBreakpoint2, 3, true); } /** Remove one breakpoint from generated servlet via Runtime tab of Explorer */ public void testToggleServletBreakpointOffRuntimeTab(){ CommonUtils.checkBreakpointExist(jsp3, fileNameForBreakpoint3, 4, 57, false, workDir); if(!CommonUtils.deleteBreakpoint(fileNameForBreakpoint3, servletName3, 4, 57, false)) fail("Cannot delete breakpoint for file "+servletName3+" and line "+4); checkResultOfRemovingServletBreakpoint(fileNameForBreakpoint3, servletName3, 4, 57, false); } /** Toggle breakpoint off via Runtime tab of explorer This test remove breakpoint from JSP & from servlet by pressing delete context menu item in Runtime tab of explorer. */ public void testToggleBreakpointOffRuntimeTab(){ CommonUtils.checkBreakpointExist(jsp4, fileNameForBreakpoint4, 4, 57, false, workDir); if(!CommonUtils.deleteBreakpoint(fileNameForBreakpoint4, servletName4, 4, 57, false)) fail("Cannot delete breakpoint for file "+jsp4+" and line "+4); checkResultOfRemovingBreakpoint(fileNameForBreakpoint4, 4, true); } /** Remove all breakpoints by pressing "Delete All" contextual menu item in Runtime tab of explorer */ public void testRemoveAllBreakpoints(){ CommonUtils.checkBreakpointExist(jsp3, fileNameForBreakpoint3, 9, 0, false, workDir); CommonUtils.checkBreakpointExist(jsp3, fileNameForBreakpoint3, 2, 0, false, workDir); CommonUtils.checkBreakpointExist(jsp3, fileNameForBreakpoint3, 3, 0, false, workDir); if(!Utils.deleteAllBreakpoints()) fail("Cannot delete all breakpoints"); if(!CommonUtils.isAllBreakpointsRemoved()){ fail("Remove All do not remove all breakpoints"); } } /** Build a compiled jsp with servlet breakpoint (deferred) via "Build" main menu item. Warning should be displayed in output window. */ public void testBuildWithServletBreakpoint(){ CommonUtils.checkBreakpointExist(jsp4, fileNameForBreakpoint4, 10, 69, true, workDir); editor = Utils.openFile(workDir, jsp4); (new BuildAction()).performMenu(); checkCompilationWithServletBreakpoint(jsp4); } /** Clean JSP file with breakpoints via Clean main menu item */ public void testCleanMainMenu(){ CommonUtils.checkBreakpointExist(jsp3, fileNameForBreakpoint3, 10, 69, false, workDir); editor = Utils.openFile(workDir, jsp3); editor.clickForPopup(100, 30); new JPopupMenuOperator().pushMenu("Show code in Servlet", "|"); EditorWindowOperator editorWindow = new EditorWindowOperator("Servlet for "+jsp3); editor = editorWindow.selectPage("Servlet for "+jsp3); (new CleanAction()).performMenu(); checkResultOfRemovingServletBreakpoint(fileNameForBreakpoint3, servletName3, 10, 69, false); try{ editorWindow = new EditorWindowOperator("Servlet for "+jsp3); editor = editorWindow.selectPage("Servlet for "+jsp3); }catch(Exception e){ if(! (e instanceof org.netbeans.jemmy.JemmyException)) fail("Exception when try to find source editor "+e); } } /** Clean JSP file with breakpoints via Clean main menu item */ public void testCleanWithServletBreakpointHotkey(){ CommonUtils.checkBreakpointExist(jsp2, fileNameForBreakpoint2, 10, 69, true, workDir); editor = Utils.openFile(workDir, jsp2); editor.clickForPopup(100, 30); new JPopupMenuOperator().pushMenu("Show code in Servlet", "|"); EditorWindowOperator editorWindow = new EditorWindowOperator("Servlet for "+jsp2); editor = editorWindow.selectPage("Servlet for "+jsp2); (new CleanAction()).performMenu(); checkResultOfRemovingBreakpoint(fileNameForBreakpoint2, 10, true); checkCompilationWithServletBreakpoint(jsp2); try{ editorWindow = new EditorWindowOperator("Servlet for "+jsp3); editor = editorWindow.selectPage("Servlet for "+jsp3); }catch(Exception e){ if(! (e instanceof org.netbeans.jemmy.JemmyException)) fail("Exception when try to find source editor "+e); } } /** Re-Compile JSP */ public void testReCompileJSP(){ editor = Utils.openFile(workDir, jsp1); (new CleanAction()).performMenu(); CommonUtils.checkBreakpointExist(jsp1, fileNameForBreakpoint1, 10, 69, false, workDir); CommonUtils.checkBreakpointExist(jsp1, fileNameForBreakpoint1, 4, 57, false, workDir); editor = Utils.openFile(workDir, jsp1); (new CompileAction()).performShortcut(); checkCompilationSuccessful(jsp1); if(!CommonUtils.goToSource(fileNameForBreakpoint1, servletName1, 4, 57, false, true) | !CommonUtils.goToSource(fileNameForBreakpoint1, servletName1, 10, 69, false, true)) fail("Cannot go to source or servlet breakpoint do not created"); } /** Add breakpoint to java code inside jsp file. This test verify breakpoints mapping for java code. */ public void testAddBreakpointToJavaCode(){ editor = Utils.openFile(workDir, jsp5); editor.setCaretPositionToLine(11); (new ToggleBreakpointAction()).performShortcut(); checkResultOfAddingBreakpoint(fileNameForBreakpoint5, servletName5, 11, 70, false); } /** Add breakpoint to incorrect line number (1000). And then remove it by "Toggle Breakpoint" action. */ public void testRemoveBreakpointFromLastLine(){ editor = Utils.openFile(workDir, jsp5); editor.setCaretPositionToLine(11); (new AddBreakpointAction()).performMenu(); Utils.fillAddBreakpointDialog(null, 999, ""); checkResultOfAddingBreakpoint(fileNameForBreakpoint5, servletName5, 999, 81, false); //editor = Utils.openFile(workDir, jsp5); //editor.setCaretPositionToLine(17); //(new ToggleBreakpointAction()).performShortcut(); //checkResultOfRemovingBreakpoint(fileNameForBreakpoint5, 17, false); } /* Some service function needed only for current class. */ private void checkResultOfAddingBreakpoint(String name, String servletName, int line, int servletLineNumber, boolean isDeferred){ if(!CommonUtils.getPropertiesWindowForBreakpoint(name, line, isDeferred)){ fail("Debugger do not add breakpoint for file "+name+" and line "+line); } if(!CommonUtils.isServletBreakpointExist(name, servletName, line, servletLineNumber, isDeferred)){ fail("Debugger do not add servlet breakpoint for servlet "+servletName+" and line"+ servletLineNumber); } } private void checkResultOfRemovingBreakpoint(String name, int line, boolean isDeferred){ if(CommonUtils.getPropertiesWindowForBreakpoint(name, line, isDeferred)){ fail("Debugger do not delete breakpoint for file "+name+" and line "+line); } } private void checkResultOfRemovingServletBreakpoint(String name, String servletName, int line, int servletLineNumber, boolean isDeferred){ if(!CommonUtils.getPropertiesWindowForBreakpoint(name, line, isDeferred)){ fail("Debugger remove deferred breakpoint for file "+name+" and line "+line); } if(CommonUtils.isServletBreakpointExist(name, servletName, line, servletLineNumber, isDeferred)){ fail("Debugger do not delete servlet breakpoint for servlet "+servletName+" and line"+ servletLineNumber); } } private void checkCompilationWithServletBreakpoint(String name){ String nameServlet = name; String res = CompilationUtils.checkResultOfJSPCompilation(workDir, name); if(res!=null){ if(res.indexOf("WARNING: The breakpoint you set in the generated servlet is no longer valid.")==-1){ System.out.println("Compilation isn't successful and result is:"+res); fail("Compilation of file "+name+" isn't successful"); }else{ return; } } } private void checkCompilationSuccessful(String name){ String nameServlet = name; String res = CompilationUtils.checkResultOfJSPCompilation(workDir, name); if(res!=null ){ System.out.println("Compilation isn't successful and result is:"+res); fail("Compilation of file "+name+" isn't successful"); } } /** Toggle breakpoint on via main menu "Toggle Breakpoint" item * public void testToggleBreakpointOnMainMenu() { editor = Utils.openFile(workDir, jsp1); editor.setCaretPositionToLine(2); (new ToggleBreakpointAction()).performMenu(); checkResultOfAddingBreakpoint(fileNameForBreakpoint1, servletName1, 2, 55, false); } Removed */ /** Toggle breakpoint off via main menu "Toggle Breakpoint" item * public void testToggleBreakpointOffMainMenu() { CommonUtils.checkBreakpointExist(jsp1, fileNameForBreakpoint1, 2, 0, false, workDir); editor = Utils.openFile(workDir, jsp1); editor.setCaretPositionToLine(2); (new ToggleBreakpointAction()).performMenu(); checkResultOfRemovingBreakpoint(fileNameForBreakpoint1, 2, false); } Removed */ /** Toggle breakpoint on via "Toggle Breakpoint" toolbar item * public void testToggleBreakpointOnToolbar() { editor = Utils.openFile(workDir, jsp2); editor.setCaretPositionToLine(6); MainWindowOperator mainWindow = MainWindowOperator.getDefault(); mainWindow.getToolbarButton(mainWindow.getToolbar("Debug"), "Toggle Breakpoint").push(); checkResultOfAddingBreakpoint(fileNameForBreakpoint2, servletName2, 6, 59, false); } Removed */ /** Toggle breakpoint off via "Toggle Breakpoint" toolbar item * public void testToggleBreakpointOffToolbar() { CommonUtils.checkBreakpointExist(jsp2, fileNameForBreakpoint2, 6, 0, false, workDir); editor = Utils.openFile(workDir, jsp2); editor.setCaretPositionToLine(6); MainWindowOperator mainWindow = MainWindowOperator.getDefault(); mainWindow.getToolbarButton(mainWindow.getToolbar("Debug"), "Toggle Breakpoint").push(); checkResultOfRemovingBreakpoint(fileNameForBreakpoint2, 6, false); } Removed */ /** Add breakpoint via toolbar button * public void testAddBreakpointToolbar() { editor = Utils.openFile(workDir, jsp3); editor.setCaretPositionToLine(9); MainWindowOperator mainWindow = MainWindowOperator.getDefault(); mainWindow.getToolbarButton(mainWindow.getToolbar("Debug"), "Add Breakpoint").push(); Utils.fillAddBreakpointDialog(null, 0, ""); checkResultOfAddingBreakpoint(fileNameForBreakpoint3, servletName3, 9, 68, false); } Removed */ /** Toggle breakpoint on in generated servlet via "Toggle breakpoint" main menu item * public void testToggleBreakpointOnInServletMainMenu(){ editor = Utils.openFile(workDir, jsp2); editor.clickForPopup(100, 30); new JPopupMenuOperator().pushMenu("Show code in Servlet", "|"); EditorWindowOperator editorWindow = new EditorWindowOperator("Servlet for "+jsp2); editor = editorWindow.selectPage("Servlet for "+jsp2); editor.setCaretPositionToLine(55); (new ToggleBreakpointAction()).performMenu(); checkResultOfAddingBreakpoint(fileNameForBreakpoint2, servletName2, 2, 55, true); } Removed */ /** Toggle breakpoint off in generated servlet via "Toggle breakpoint" main menu item * public void testToggleBreakpointOffInServletMainMenu(){ CommonUtils.checkBreakpointExist(jsp2, fileNameForBreakpoint2, 2, 55, true, workDir); editor = Utils.openFile(workDir, jsp2); editor.clickForPopup(100, 30); new JPopupMenuOperator().pushMenu("Show code in Servlet", "|"); EditorWindowOperator editorWindow = new EditorWindowOperator("Servlet for "+jsp2); editor = editorWindow.selectPage("Servlet for "+jsp2); editor.setCaretPositionToLine(55); (new ToggleBreakpointAction()).performMenu(); checkResultOfRemovingBreakpoint(fileNameForBreakpoint2, 2, true); } Removed */ } |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.