1 19 20 package org.netbeans.qa.form.visualDevelopment; 21 22 import java.awt.Component ; 23 import java.awt.event.KeyEvent ; 24 import javax.swing.JPanel ; 25 import org.netbeans.jellytools.modules.form.ComponentInspectorOperator; 26 import org.netbeans.jellytools.modules.form.ComponentPaletteOperator; 27 import org.netbeans.jellytools.modules.form.FormDesignerOperator; 28 import org.netbeans.jellytools.properties.Property; 29 import org.netbeans.jemmy.operators.JTextFieldOperator; 30 import org.netbeans.junit.NbTestSuite; 31 import java.util.*; 32 import javax.swing.JButton ; 33 import javax.swing.JCheckBox ; 34 import javax.swing.JLabel ; 35 import javax.swing.JRadioButton ; 36 import javax.swing.JTextArea ; 37 import javax.swing.JToggleButton ; 38 import org.netbeans.jellytools.actions.*; 39 import org.netbeans.jellytools.*; 40 import org.netbeans.jellytools.nodes.Node; 41 import org.netbeans.jemmy.operators.JListOperator; 42 import org.netbeans.jemmy.operators.Operator; 43 import org.netbeans.qa.form.BorderCustomEditorOperator; 44 import org.netbeans.qa.form.ExtJellyTestCase; 45 46 53 public class FormGenerateCodeTest extends ExtJellyTestCase { 54 55 56 public FormGenerateCodeTest(String testName) { 57 super(testName); 58 } 59 60 61 public static void main(java.lang.String [] args) { 62 junit.textui.TestRunner.run(suite()); 63 } 64 65 66 public static NbTestSuite suite() { 67 NbTestSuite suite = new NbTestSuite(); 68 69 suite.addTest(new FormGenerateCodeTest("testAWTAndSwingComponentsTogether")); 70 suite.addTest(new FormGenerateCodeTest("testAddComponentsIntoContainersSwing")); 71 suite.addTest(new FormGenerateCodeTest("testAddComponentsIntoContainersAwt")); 72 suite.addTest(new FormGenerateCodeTest("testInPlaceEditing")); 73 suite.addTest(new FormGenerateCodeTest("testMenuAndPopUpMenuCreation")); 74 suite.addTest(new FormGenerateCodeTest("testSimpleComponentInsertingIntoForm")); 75 suite.addTest(new FormGenerateCodeTest("testLayouts")); 76 suite.addTest(new FormGenerateCodeTest("testBorderSettings")); 77 78 return suite; 79 } 80 81 public void testSimpleComponentInsertingIntoForm() { 82 p("testSimpleComponentInsertingIntoForm - start"); String frameName = createJFrameFile(); 84 FormDesignerOperator designer = new FormDesignerOperator(frameName); 85 ComponentPaletteOperator palette = new ComponentPaletteOperator(); 86 ComponentInspectorOperator inspector = new ComponentInspectorOperator(); 87 88 palette.expandSwingContainers(); 89 palette.selectComponent("Panel"); designer.clickOnComponent(designer.fakePane().getSource()); 91 92 inspector.selectComponent("[JFrame]|jPanel1 [JPanel]"); new Property(inspector.properties(), "background").setValue("[0,255,0]"); 95 Component firstPanel = designer.findComponent(JPanel .class); 96 palette.expandSwingControls(); 97 palette.selectComponent("Label"); designer.clickOnComponent(firstPanel); 99 100 findInCode("jPanel1.setBackground(new java.awt.Color(0, 255, 0));", designer); findInCode("jLabel1 = new javax.swing.JLabel();", designer); 103 removeFile(frameName); 104 } 105 106 public void testLayouts() { 107 p("testLayouts - start"); String nodeName = "JFrame"; String name = createJFrameFile(); 110 111 FormDesignerOperator designer = new FormDesignerOperator(name); 112 ComponentPaletteOperator palette = new ComponentPaletteOperator(); 113 ComponentInspectorOperator inspector = new ComponentInspectorOperator(); 114 Node frameNode = new Node(inspector.treeComponents(), nodeName); 115 116 HashMap<String ,String > task = new HashMap<String ,String >(); 117 task.put("Set Layout|AbsoluteLayout","setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());"); task.put("Set Layout|BoxLayout","setLayout(new javax.swing.BoxLayout(getContentPane(), javax.swing.BoxLayout.LINE_AXIS));"); task.put("Set Layout|CardLayout","setLayout(new java.awt.CardLayout());"); task.put("Set Layout|FlowLayout","setLayout(new java.awt.FlowLayout());"); task.put("Set Layout|GridBagLayout","setLayout(new java.awt.GridBagLayout());"); task.put("Set Layout|GridLayout","setLayout(new java.awt.GridLayout());"); task.put("Set Layout|Null Layout","setLayout(null);"); task.put("Set Layout|Free Design",".GroupLayout(getContentPane());"); task.put("Set Layout|BorderLayout", "setLayout("); 127 for (Map.Entry<String ,String > entry : task.entrySet()) { 128 String layoutCmd = entry.getKey(); 129 runPopupOverNode(layoutCmd, frameNode); 130 131 if (layoutCmd != "Set Layout|BorderLayout") findInCode(entry.getValue(), designer); 133 else 134 missInCode(entry.getValue(), designer); 135 } 136 removeFile(name); 137 } 138 139 public void testAWTAndSwingComponentsTogether() { 140 p("testAWTAndSwingComponentsTogether - start"); String nodeName = "JFrame"; String name = createJFrameFile(); 143 144 ArrayList<String > cmds = new ArrayList<String >(); 145 cmds.add("Add From Palette|Swing Controls|Label"); cmds.add("Add From Palette|AWT|Label"); 148 FormDesignerOperator designer = new FormDesignerOperator(name); 149 ComponentInspectorOperator inspector = new ComponentInspectorOperator(); 150 Node node = new Node(inspector.treeComponents(), nodeName); 151 152 runPopupOverNode(cmds, node); 153 154 findInCode("jLabel1 = new javax.swing.JLabel();", designer); findInCode("label1 = new java.awt.Label()", designer); 157 removeFile(name); 158 } 159 160 public void testAddComponentsIntoContainersSwing() { 161 p("testAddComponentsIntoContainersSwing - start"); String frameName = createJFrameFile(); 163 FormDesignerOperator designer = new FormDesignerOperator(frameName); 164 ComponentInspectorOperator inspector = new ComponentInspectorOperator(); 165 Node frameNode = new Node(inspector.treeComponents(), "JFrame"); 167 ArrayList<String > containers = new ArrayList<String >(); 168 containers.add("Add From Palette|Swing Containers|Panel"); containers.add("Add From Palette|Swing Containers|Tabbed Pane"); containers.add("Add From Palette|Swing Containers|Scroll Pane"); containers.add("Add From Palette|Swing Containers|Split Pane"); containers.add("Add From Palette|Swing Containers|Tool Bar"); containers.add("Add From Palette|Swing Containers|Internal Frame"); containers.add("Add From Palette|Swing Containers|Desktop Pane"); runPopupOverNode(containers, frameNode); 176 177 ArrayList<String > lines = new ArrayList<String >(); 178 lines.add("jPanel1 = new javax.swing.JPanel();"); lines.add("jTabbedPane1 = new javax.swing.JTabbedPane();"); lines.add("jScrollPane1 = new javax.swing.JScrollPane();"); lines.add("jSplitPane1 = new javax.swing.JSplitPane();"); lines.add("jToolBar1 = new javax.swing.JToolBar();"); lines.add("jInternalFrame1 = new javax.swing.JInternalFrame();"); lines.add("jDesktopPane1 = new javax.swing.JDesktopPane();"); findInCode(lines, designer); 186 187 Node node = new Node(inspector.treeComponents(), "[JFrame]|jPanel1 [JPanel]"); runPopupOverNode("Add From Palette|Swing Controls|Text Area", node); findInCode("jScrollPane2.setViewportView(jTextArea1);", designer); 191 node = new Node(inspector.treeComponents(), "[JFrame]|jTabbedPane1 [JTabbedPane]"); runPopupOverNode("Add From Palette|Swing Containers|Panel", node); findInCode("jTabbedPane1.addTab(\"tab1\", jPanel2);", designer); 195 node = new Node(inspector.treeComponents(), "[JFrame]|jScrollPane1 [JScrollPane]"); runPopupOverNode("Add From Palette|Swing Controls|Table", node); findInCode("jScrollPane1.setViewportView(jTable1);", designer); 199 node = new Node(inspector.treeComponents(), "[JFrame]|jSplitPane1 [JSplitPane]"); runPopupOverNode("Add From Palette|Swing Controls|Button", node); runPopupOverNode("Add From Palette|Swing Containers|Panel", node); findInCode("jSplitPane1.setRightComponent(jPanel3);", designer); findInCode("jSplitPane1.setLeftComponent(jButton1);", designer); 205 node = new Node(inspector.treeComponents(), "[JFrame]|jToolBar1 [JToolBar]"); runPopupOverNode("Add From Palette|Swing Controls|Toggle Button", node); findInCode("jToolBar1.add(jToggleButton1);", designer); 209 node = new Node(inspector.treeComponents(), "[JFrame]|jInternalFrame1 [JInternalFrame]"); runPopupOverNode("Add From Palette|Swing Controls|Tree", node); findInCode("jScrollPane3.setViewportView(jTree1);", designer); 213 node = new Node(inspector.treeComponents(), "[JFrame]|jDesktopPane1 [JDesktopPane]"); runPopupOverNode("Add From Palette|Swing Containers|Internal Frame", node); findInCode("jDesktopPane1.add(jInternalFrame2, javax.swing.JLayeredPane.DEFAULT_LAYER);", designer); 217 removeFile(frameName); 218 } 219 220 public void testAddComponentsIntoContainersAwt() { 221 p("testAddComponentsIntoContainersAwt - start"); String frameName = createFrameFile(); 223 FormDesignerOperator designer = new FormDesignerOperator(frameName); 224 ComponentInspectorOperator inspector = new ComponentInspectorOperator(); 225 Node frameNode = new Node(inspector.treeComponents(), "Frame"); 227 ArrayList<String > containers = new ArrayList<String >(); 228 containers.add("Add From Palette|AWT|Panel"); containers.add("Add From Palette|AWT|Scroll Pane"); runPopupOverNode(containers, frameNode); 231 232 findInCode("scrollPane1 = new java.awt.ScrollPane();", designer); findInCode("panel1 = new java.awt.Panel();", designer); 235 Node node = new Node(inspector.treeComponents(), "[Frame]|scrollPane1 [ScrollPane]"); runPopupOverNode("Add From Palette|AWT|Text Area", node); findInCode("scrollPane1.add(textArea1);", designer); 239 node = new Node(inspector.treeComponents(), "[Frame]|panel1 [Panel]"); runPopupOverNode("Add From Palette|AWT|Canvas", node); findInCode("panel1.add(canvas1);", designer); 243 removeFile(frameName); 244 } 245 246 247 public void testMenuAndPopUpMenuCreation() { 248 p("testMenuAndPopUpMenuCreation - start"); String frameName = createJFrameFile(); 250 ComponentInspectorOperator inspector = new ComponentInspectorOperator(); 251 FormDesignerOperator designer = new FormDesignerOperator(frameName); 252 253 Node node = new Node(inspector.treeComponents(), "JFrame"); 255 new Action(null, "Add From Palette|Swing Menus|Menu Bar").perform(node); new Action(null, "Add From Palette|Swing Menus|Popup Menu").perform(node); findInCode("jMenuBar1 = new javax.swing.JMenuBar();", designer); findInCode("jPopupMenu1 = new javax.swing.JPopupMenu();", designer); 260 ArrayList<String > items = new ArrayList<String >(); 261 items.add("Add|JMenuItem"); items.add("Add|JCheckBoxMenuItem"); items.add("Add|JRadioButtonMenuItem"); items.add("Add|JSeparator"); items.add("Add|JMenu"); 267 Operator.DefaultStringComparator comparator = new Operator.DefaultStringComparator(true, false); 268 node = new Node(inspector.treeComponents(), "Other Components|jPopupMenu1 [JPopupMenu]"); runPopupOverNode(items, node, comparator); 270 271 node = new Node(inspector.treeComponents(), "[JFrame]|jMenuBar1 [JMenuBar]|jMenu1 [JMenu]"); runPopupOverNode(items, node, comparator); 273 274 node = new Node(inspector.treeComponents(), "[JFrame]|jMenuBar1 [JMenuBar]|jMenu1 [JMenu]|jMenu3 [JMenu]"); runPopupOverNode(items, node, comparator); 276 277 ArrayList<String > lines = new ArrayList<String >(); 278 lines.add("jMenu3.add(jMenu4);"); lines.add("jMenu1.add(jMenu3);"); lines.add("jMenuBar1.add(jMenu1);"); lines.add("setJMenuBar(jMenuBar1);"); findInCode(lines, designer); 283 284 removeFile(frameName); 285 } 286 287 public void testInPlaceEditing() { 288 p("testInPlaceEditing - start"); String testText = "xyz"; String dialogName = createJDialogFile(); 291 292 HashMap<String ,Class > components = new HashMap<String ,Class >(); 293 components.put("Label", JLabel .class); components.put("Button", JButton .class); components.put("Check Box", JCheckBox .class); components.put("Radio Button", JRadioButton .class); 300 FormDesignerOperator designer = new FormDesignerOperator(dialogName); 301 ComponentPaletteOperator palette = new ComponentPaletteOperator(); 302 ComponentInspectorOperator inspector = new ComponentInspectorOperator(); 303 304 palette.expandSwingControls(); 305 306 for (Map.Entry<String ,Class > entry : components.entrySet()) { 307 palette.selectComponent(entry.getKey()); 308 designer.clickOnComponent(designer.fakePane().getSource()); 309 310 Class componentClass = entry.getValue(); 311 java.awt.Component component = designer.findComponent(componentClass); 312 313 designer.clickOnComponent(component); 314 waitNoEvent(300); 315 designer.handleLayer().pushKey(KeyEvent.VK_SPACE); 316 waitNoEvent(300); 317 new JTextFieldOperator(designer).typeText(testText); 318 waitNoEvent(300); 319 designer.handleLayer().pushKey(KeyEvent.VK_ENTER); 320 waitNoEvent(300); 321 designer.handleLayer().pushKey(KeyEvent.VK_ESCAPE); 322 } 323 324 String baseName = "[JDialog]"; Node dialogNode = new Node(inspector.treeComponents(), baseName); 326 String [] names = dialogNode.getChildren(); 327 328 for (String name : names) { 329 inspector.selectComponent(baseName + "|" + name); 330 Property prop = new Property(inspector.properties(), "text"); assertEquals("Text property of component " + name + " was not set correctly.", prop.getValue(), testText); } 333 removeFile(dialogName); 334 } 335 336 public void testBorderSettings() { 337 p("testBorderSettings - start"); String dialogName = createJFrameFile(); 339 340 HashMap<String ,Class > components = new HashMap<String ,Class >(); 341 components.put("Button", JButton .class); components.put("Label", JLabel .class); components.put("Radio Button", JRadioButton .class); components.put("Toggle Button", JToggleButton .class); components.put("Text Area", JTextArea .class); 347 FormDesignerOperator designer = new FormDesignerOperator(dialogName); 348 ComponentPaletteOperator palette = new ComponentPaletteOperator(); 349 ComponentInspectorOperator inspector = new ComponentInspectorOperator(); 350 351 palette.expandSwingControls(); 352 353 for (Map.Entry<String ,Class > entry : components.entrySet()) { 354 String componentName = entry.getKey(); 355 palette.selectComponent(componentName); 356 designer.clickOnComponent(designer.fakePane().getSource()); 357 } 358 359 String baseName = "[JFrame]"; Node dialogNode = new Node(inspector.treeComponents(), baseName); 361 String [] names = dialogNode.getChildren(); 362 363 int counter = 0; 364 for (String name : names) { 365 String path = baseName + "|" + name; 366 inspector.selectComponent(path); 367 368 Property prop = new Property(inspector.properties(), "border"); prop.openEditor(); 370 371 BorderCustomEditorOperator editor = new BorderCustomEditorOperator(name); 372 JListOperator lstOp = editor.lstAvailableBorders(); 373 lstOp.clickOnItem(++counter,1); 374 editor.ok(); 375 } 376 377 ArrayList<String > lines = new ArrayList<String >(); 378 lines.add("jToggleButton1.setBorder(javax.swing.BorderFactory."); 379 lines.add("jLabel1.setBorder(javax.swing.BorderFactory."); 380 lines.add("jButton1.setBorder(javax.swing.BorderFactory."); 381 findInCode(lines, designer); 382 383 removeFile(dialogName); 384 } 385 } 386 | Popular Tags |