|
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 created by Sun Microsystems, Inc. are Copyright (C) 2003 * All Rights Reserved. * * Contributor(s): Sun Microsystems, Inc. */ package gui.debuggercore; import junit.textui.TestRunner; import org.openide.nodes.Node; import org.netbeans.jellytools.*; import org.netbeans.jellytools.actions.Action; import org.netbeans.jellytools.nodes.JavaNode; import org.netbeans.jemmy.JemmyProperties; import org.netbeans.jemmy.TimeoutExpiredException; import org.netbeans.jemmy.operators.JTableOperator; import org.netbeans.jemmy.operators.JTreeOperator; import org.netbeans.jemmy.operators.JTextFieldOperator; import org.netbeans.jemmy.operators.JCheckBoxOperator; import org.netbeans.jemmy.operators.JPopupMenuOperator; import org.netbeans.junit.NbTestSuite; public class LocalVariables extends JellyTestCase { String projectPropertiesTitle; public LocalVariables(String name) { super(name); } public static NbTestSuite suite() { NbTestSuite suite = new NbTestSuite(); suite.addTest(new LocalVariables("testLocalVariables")); return suite; } /** Use for execution inside IDE */ public static void main(java.lang.String[] args) { TestRunner.run(suite()); } /** setUp method */ public void setUp() { System.out.println("######## " + getName() + " #######"); } /** tearDown method */ public void tearDown() { Utilities.deleteAllBreakpoints(); Utilities.deleteAllWatches(); Utilities.closeZombieSessions(); ProjectsTabOperator projectsTabOper = new ProjectsTabOperator(); org.netbeans.jellytools.nodes.Node projectNode = new org.netbeans.jellytools.nodes.Node(new JTreeOperator(projectsTabOper), Utilities.testProjectName); projectNode.select(); projectNode.performPopupAction(Utilities.setMainProjectAction); projectNode.performPopupActionNoBlock(Utilities.projectPropertiesAction); NbDialogOperator dialog = new NbDialogOperator(Utilities.projectPropertiesTitle + Utilities.testProjectName); org.netbeans.jellytools.nodes.Node helper = new org.netbeans.jellytools.nodes.Node(new JTreeOperator(dialog), "Run|" + Utilities.runningProjectTreeItem); helper.select(); new JTextFieldOperator(dialog, 0).setText("examples.advanced.MemoryView"); dialog.ok(); } public void testLocalVariables() { ProjectsTabOperator projectsTabOper = new ProjectsTabOperator(); org.netbeans.jellytools.nodes.Node projectNode = new org.netbeans.jellytools.nodes.Node(new JTreeOperator(projectsTabOper), Utilities.testProjectName); projectNode.select(); projectNode.performPopupAction(Utilities.setMainProjectAction); projectNode.performPopupActionNoBlock(Utilities.projectPropertiesAction); NbDialogOperator dialog = new NbDialogOperator(Utilities.projectPropertiesTitle + Utilities.testProjectName); org.netbeans.jellytools.nodes.Node helper = new org.netbeans.jellytools.nodes.Node(new JTreeOperator(dialog), "Run|Running Project"); helper.select(); new JTextFieldOperator(dialog, 0).setText("examples.advanced.Variables"); dialog.ok(); JavaNode javaNode = new JavaNode(projectNode, "Source Packages|examples.advanced|Variables.java"); javaNode.select(); javaNode.performPopupAction(Utilities.openSourceAction); Utilities.sleep(2000); EditorOperator editorOperator = new EditorOperator("Variables.java"); // create new line breakpoint editorOperator.setCaretPosition(53, 1); //new Action(new StringBuffer(Utilities.runMenu).append("|").append(Utilities.toggleBreakpointItem).toString(), null).perform(); new Action(null, null, Utilities.toggleBreakpointShortcut).performShortcut(); // start debugging editorOperator.setCaretPosition(28, 1); //new Action(new StringBuffer(Utilities.runMenu).append("|").append(Utilities.runToCursorItem).toString(), null).perform(); new Action(null, null, Utilities.runToCursorShortcut).performShortcut(); MainWindowOperator mwo = MainWindowOperator.getDefault(); mwo.waitStatusText("Thread main stopped at Variables.java:28."); // show local variables view and check values Utilities.showLocalVariablesView(); TopComponentOperator localVarsOper = new TopComponentOperator(Utilities.localVarsViewTitle); JTableOperator jTableOperator = new JTableOperator(localVarsOper); TreeTableOperator treeTableOperator = new TreeTableOperator((javax.swing.JTable) jTableOperator.getSource()); new org.netbeans.jellytools.nodes.Node(treeTableOperator.tree(), "this").expand(); new org.netbeans.jellytools.nodes.Node(treeTableOperator.tree(), "this|Static").expand(); new org.netbeans.jellytools.nodes.Node(treeTableOperator.tree(), "this|Inherited").expand(); int count = 1; CheckTTVLine(jTableOperator, count++, "Vpublic", "String", "\"Public Variable\""); CheckTTVLine(jTableOperator, count++, "Vprotected", "String", "\"Protected Variable\""); CheckTTVLine(jTableOperator, count++, "Vprivate", "String", "\"Private Variable\""); CheckTTVLine(jTableOperator, count++, "VpackagePrivate", "String", "\"Package-private Variable\""); count++; // skip line Static CheckTTVLine(jTableOperator, count++, "Spublic", "String", "\"Public Variable\""); CheckTTVLine(jTableOperator, count++, "Sprotected", "String", "\"Protected Variable\""); CheckTTVLine(jTableOperator, count++, "Sprivate", "String", "\"Private Variable\""); CheckTTVLine(jTableOperator, count++, "SpackagePrivate", "String", "\"Package-private Variable\""); CheckTTVLine(jTableOperator, count++, "class$java$lang$Runtime", null, "null"); CheckTTVLine(jTableOperator, count++, "inheritedSpublic", "String", "\"Inherited Public Variable\""); CheckTTVLine(jTableOperator, count++, "inheritedSprotected", "String", "\"Inherited Protected Variable\""); CheckTTVLine(jTableOperator, count++, "inheritedSprivate", "String", "\"Inherited Private Variable\""); CheckTTVLine(jTableOperator, count++, "inheritedSpackagePrivate", "String", "\"Inherited Package-private Variable\""); count++; CheckTTVLine(jTableOperator, count++, "inheritedVpublic", "String", "\"Inherited Public Variable\""); CheckTTVLine(jTableOperator, count++, "inheritedVprotected", "String", "\"Inherited Protected Variable\""); CheckTTVLine(jTableOperator, count++, "inheritedVprivate", "String", "\"Inherited Private Variable\""); CheckTTVLine(jTableOperator, count++, "inheritedVpackagePrivate", "String", "\"Inherited Package-private Variable\""); // continue to breakpoint //new Action(new StringBuffer(Utilities.runMenu).append("|").append(Utilities.continueItem).toString(), null).perform(); new Action(null, null, Utilities.continueShortcut).performShortcut(); mwo.waitStatusText("Thread main stopped at Variables.java:53."); count = 1; CheckTTVLine(jTableOperator, count++, "Vpublic", "String", "\"Public Variable\""); CheckTTVLine(jTableOperator, count++, "Vprotected", "String", "\"Protected Variable\""); CheckTTVLine(jTableOperator, count++, "Vprivate", "String", "\"Private Variable\""); CheckTTVLine(jTableOperator, count++, "VpackagePrivate", "String", "\"Package-private Variable\""); CheckTTVLine(jTableOperator, count++, "Static", null, null); CheckTTVLine(jTableOperator, count++, "Spublic", "String", "\"Public Variable\""); CheckTTVLine(jTableOperator, count++, "Sprotected", "String", "\"Protected Variable\""); CheckTTVLine(jTableOperator, count++, "Sprivate", "String", "\"Private Variable\""); CheckTTVLine(jTableOperator, count++, "SpackagePrivate", "String", "\"Package-private Variable\""); CheckTTVLine(jTableOperator, count++, "class$java$lang$Runtime", "Class", "class java.lang.Runtime"); CheckTTVLine(jTableOperator, count++, "inheritedSpublic", "String", "\"Inherited Public Variable\""); CheckTTVLine(jTableOperator, count++, "inheritedSprotected", "String", "\"Inherited Protected Variable\""); CheckTTVLine(jTableOperator, count++, "inheritedSprivate", "String", "\"Inherited Private Variable\""); CheckTTVLine(jTableOperator, count++, "inheritedSpackagePrivate", "String", "\"Inherited Package-private Variable\""); CheckTTVLine(jTableOperator, count++, "Inherited", null, null); CheckTTVLine(jTableOperator, count++, "inheritedVpublic", "String", "\"Inherited Public Variable\""); CheckTTVLine(jTableOperator, count++, "inheritedVprotected", "String", "\"Inherited Protected Variable\""); CheckTTVLine(jTableOperator, count++, "inheritedVprivate", "String", "\"Inherited Private Variable\""); CheckTTVLine(jTableOperator, count++, "inheritedVpackagePrivate", "String", "\"Inherited Package-private Variable\""); CheckTTVLine(jTableOperator, count++, "clazz", "Class", "class java.lang.Runtime"); if (new org.netbeans.jellytools.nodes.Node(treeTableOperator.tree(), "clazz").isLeaf()) assertTrue("Node clazz has no child nodes", false); CheckTTVLine(jTableOperator, count++, "string", "String", "\"Hi!\""); CheckTTVLine(jTableOperator, count++, "n", "int", "50"); CheckTTVLine(jTableOperator, count++, "llist", "LinkedList", null); if (new org.netbeans.jellytools.nodes.Node(treeTableOperator.tree(), "llist").isLeaf()) assertTrue("Node llist has no child nodes", false); CheckTTVLine(jTableOperator, count++, "alist", "ArrayList", null); if (new org.netbeans.jellytools.nodes.Node(treeTableOperator.tree(), "alist").isLeaf()) assertTrue("Node alist has no child nodes", false); CheckTTVLine(jTableOperator, count++, "vec", "Vector", null); if (new org.netbeans.jellytools.nodes.Node(treeTableOperator.tree(), "vec").isLeaf()) assertTrue("Node vec has no child nodes", false); CheckTTVLine(jTableOperator, count++, "hmap", "HashMap", null); if (new org.netbeans.jellytools.nodes.Node(treeTableOperator.tree(), "hmap").isLeaf()) assertTrue("Node hmap has no child nodes", false); CheckTTVLine(jTableOperator, count++, "htab", "Hashtable", null); if (new org.netbeans.jellytools.nodes.Node(treeTableOperator.tree(), "htab").isLeaf()) assertTrue("Node htab has no child nodes", false); CheckTTVLine(jTableOperator, count++, "tmap", "TreeMap", null); if (new org.netbeans.jellytools.nodes.Node(treeTableOperator.tree(), "tmap").isLeaf()) assertTrue("Node tmap has no child nodes", false); CheckTTVLine(jTableOperator, count++, "hset", "HashSet", null); if (new org.netbeans.jellytools.nodes.Node(treeTableOperator.tree(), "hset").isLeaf()) assertTrue("Node hset has no child nodes", false); CheckTTVLine(jTableOperator, count++, "tset", "TreeSet", null); if (new org.netbeans.jellytools.nodes.Node(treeTableOperator.tree(), "tset").isLeaf()) assertTrue("Node tset has no child nodes", false); CheckTTVLine(jTableOperator, count++, "policko", "int[]", null); if (new org.netbeans.jellytools.nodes.Node(treeTableOperator.tree(), "policko").isLeaf()) assertTrue("Node policko has no child nodes", false); CheckTTVLine(jTableOperator, count++, "pole", "int[]", null); if (new org.netbeans.jellytools.nodes.Node(treeTableOperator.tree(), "pole").isLeaf()) assertTrue("Node pole has no child nodes", false); CheckTTVLine(jTableOperator, count++, "d2", "int[][]", null); if (new org.netbeans.jellytools.nodes.Node(treeTableOperator.tree(), "d2").isLeaf()) assertTrue("Node d2 has no child nodes", false); // continue = end of application new Action(null, null, Utilities.continueShortcut).performShortcut(); try { JemmyProperties.setCurrentTimeout("DialogWaiter.WaitDialogTimeout", 5000); mwo.waitStatusText(Utilities.finishedStatusBarText); } catch (TimeoutExpiredException tee) { System.out.println("Debugging session did not finished."); throw(tee); } } // check values in TreeTable line public void CheckTTVLine(JTableOperator table, int lineNumber, String name, String type, String value) { try { Node.Property property; if (!(name.equals(table.getValueAt(lineNumber,0).toString()))) assertTrue("Node " + name + " not displayed in Local Variables view", false); property = (Node.Property)table.getValueAt(lineNumber,1); if ((type!= null)&&(!(type.equals(property.getValue())))) assertTrue("Node " + name + " has wrong type in Local Variables view", false); property = (Node.Property)table.getValueAt(lineNumber,2); if ((value!= null)&&(!(value.equals(property.getValue())))) assertTrue("Node " + name + " has wrong value in Local Variables view", false); } catch (java.lang.IllegalAccessException e1) { assertTrue(e1.getMessage(), false); } catch (java.lang.reflect.InvocationTargetException e2) { assertTrue(e2.getMessage(), false); } } } |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 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.