1 19 20 package org.netbeans.qa.form; 21 22 import java.util.ArrayList ; 23 import java.util.Date ; 24 import org.netbeans.jellytools.EditorOperator; 25 import org.netbeans.jellytools.JellyTestCase; 26 import org.netbeans.jellytools.NbDialogOperator; 27 import org.netbeans.jellytools.NewFileNameLocationStepOperator; 28 import org.netbeans.jellytools.NewFileWizardOperator; 29 import org.netbeans.jellytools.ProjectsTabOperator; 30 import org.netbeans.jellytools.actions.Action; 31 import org.netbeans.jellytools.actions.ActionNoBlock; 32 import org.netbeans.jellytools.actions.CompileAction; 33 import org.netbeans.jellytools.actions.DeleteAction; 34 import org.netbeans.jellytools.actions.OpenAction; 35 import org.netbeans.jellytools.modules.form.FormDesignerOperator; 36 import org.netbeans.jellytools.nodes.Node; 37 import org.netbeans.jellytools.nodes.ProjectRootNode; 38 import org.netbeans.jemmy.operators.JTextFieldOperator; 39 import org.netbeans.jemmy.operators.Operator; 40 41 46 public abstract class ExtJellyTestCase extends JellyTestCase { 47 private static int MY_WAIT_MOMENT = 500; 48 49 public static String TEST_PROJECT_NAME = "SampleProject"; public static String TEST_PACKAGE_NAME = "data"; public static String DELETE_OBJECT_CONFIRM = "Confirm Object Deletion"; 53 54 public Boolean DELETE_FILES = true; 55 56 57 public ExtJellyTestCase(String testName) { 58 super(testName); 59 } 60 61 64 public void p(String msg) { 65 System.out.println(msg); 66 } 67 68 71 public void p(Boolean msg) { 72 p(String.valueOf(msg)); 73 } 74 75 78 public void p(int msg) { 79 p(String.valueOf(msg)); 80 } 81 82 91 private String createFile(String project, String packageName, String category, String fileType, String name) { 92 return createFile(project, packageName, category, fileType, name, null); 93 } 94 95 private String createFile(String project, String packageName, String category, String fileType, String name, String beanName) { 96 NewFileWizardOperator nfwo = NewFileWizardOperator.invoke(); 97 nfwo.selectProject(project); 98 nfwo.selectCategory(category); 99 nfwo.selectFileType(fileType); 100 nfwo.next(); 101 102 String fileName = name + String.valueOf(new Date ().getTime()); 103 104 if (beanName == null) { 105 NewFileNameLocationStepOperator nfnlso = new NewFileNameLocationStepOperator(); 106 nfnlso.txtObjectName().clearText(); 107 nfnlso.txtObjectName().typeText(fileName); 108 nfnlso.setPackage(packageName); 109 nfnlso.finish(); 110 } else { 111 NewBeanFormOperator nbfOp = new NewBeanFormOperator(); 112 nbfOp.txtClassName().clearText(); 113 nbfOp.txtClassName().typeText(fileName); 114 115 nbfOp.cboPackage().clearText(); 116 nbfOp.typePackage(packageName); 117 118 nbfOp.next(); 119 120 NewBeanFormSuperclassOperator superOp = new NewBeanFormSuperclassOperator(); 121 superOp.setSuperclass(beanName); 122 superOp.finish(); 123 } 124 125 ProjectsTabOperator pto = new ProjectsTabOperator(); 127 ProjectRootNode prn = pto.getProjectRootNode(project); 128 prn.select(); 129 Node formnode = new Node(prn, "Source Packages|" + packageName + "|" + fileName); formnode.select(); 131 132 OpenAction openAction = new OpenAction(); 133 openAction.perform(formnode); 134 136 return fileName; 137 } 138 139 140 143 public void removeFile(String fileName) { 144 if (DELETE_FILES) { 145 ProjectsTabOperator project = new ProjectsTabOperator(); 146 Node node = new Node(project.tree(), TEST_PROJECT_NAME + 147 "|Source Packages|" + TEST_PACKAGE_NAME + "|" + fileName + ".java"); DeleteAction act = new DeleteAction(); 149 act.performPopup(node); 150 new NbDialogOperator(DELETE_OBJECT_CONFIRM).yes(); 151 } 152 } 153 154 159 public void addBean(String beanFileName) { 160 Node fileNode = openFile(beanFileName); 161 waitAMoment(); 162 163 new ActionNoBlock("Tools|Add To Palette...", null).perform(); 165 SelectPaletteCategoryOperator op = new SelectPaletteCategoryOperator(); 166 op.lstPaletteCategories().selectItem(SelectPaletteCategoryOperator.ITEM_BEANS); 167 op.ok(); 168 169 CompileAction compAct = new CompileAction(); 170 compAct.perform(fileNode); 171 waitAMoment(); 172 } 173 174 179 public Node openFile(String fileName) { 180 ProjectsTabOperator pto = new ProjectsTabOperator(); 181 ProjectRootNode prn = pto.getProjectRootNode(TEST_PROJECT_NAME); 182 prn.select(); 183 184 String path = "Source Packages|" + TEST_PACKAGE_NAME + "|" + fileName; Node formnode = new Node(prn, path); formnode.setComparator(new Operator.DefaultStringComparator(true, false)); 188 formnode.select(); 189 190 OpenAction openAction = new OpenAction(); 191 openAction.perform(formnode); 192 193 return formnode; 194 } 195 196 197 public String createBeanFormFile(String beanClassName) { 198 return createFile( TEST_PROJECT_NAME, TEST_PACKAGE_NAME , "Java GUI Forms", "Bean Form", "MyBeanForm", beanClassName); } 200 201 205 public String createJDialogFile() { 206 return createFile( TEST_PROJECT_NAME, TEST_PACKAGE_NAME , "Java GUI Forms", "JDialog Form", "MyJDialog"); } 208 209 213 public String createJFrameFile() { 214 return createFile( TEST_PROJECT_NAME, TEST_PACKAGE_NAME , "Java GUI Forms", "JFrame Form", "MyJFrame"); } 216 217 221 public String createFrameFile() { 222 return createFile( TEST_PROJECT_NAME, TEST_PACKAGE_NAME , "Java GUI Forms|AWT Forms", "Frame Form", "MyFrame"); } 224 225 230 public void runPopupOverNode(String actionName, Node node) { 231 Action act = new Action(null, actionName); 232 act.setComparator(new Operator.DefaultStringComparator(false, false)); 233 act.perform(node); 234 } 236 237 242 public void runPopupOverNode(ArrayList <String > actionNames, Node node, Operator.DefaultStringComparator comparator) { 243 for (String actionName: actionNames) { 244 Action act = new Action(null, actionName); 245 act.setComparator(comparator); 246 act.perform(node); 247 } 249 } 250 251 256 public void runPopupOverNode(ArrayList <String > actionNames, Node node) { 257 runPopupOverNode(actionNames, node, new Operator.DefaultStringComparator(false, false)); 258 } 259 260 266 private void findStringInCode(String stringToFind, String code) { 267 if (!code.contains(stringToFind)) 268 fail("Missing string \"" + stringToFind + "\" in code."); } 270 271 276 public void findInCode(ArrayList <String > lines, FormDesignerOperator designer) { 277 EditorOperator editor = designer.editor(); 278 String code = editor.getText(); 279 280 for (String line : lines) 281 findStringInCode(line, code); 282 283 designer.design(); 284 } 285 286 291 public void findInCode(String stringToFind, FormDesignerOperator designer) { 292 EditorOperator editor = designer.editor(); 293 findStringInCode(stringToFind, editor.getText()); 294 designer.design(); 295 } 296 297 303 public void missInCode(String stringToFind, FormDesignerOperator designer) { 304 EditorOperator editor = designer.editor(); 305 306 if (editor.getText().contains(stringToFind)) 307 fail("String \"" + stringToFind + "\" found in code."); 309 designer.design(); 310 } 311 312 316 public static void waitNoEvent(long waitTimeout) { 317 new org.netbeans.jemmy.EventTool().waitNoEvent(waitTimeout); 318 } 319 320 323 public static void waitAMoment() { 324 waitNoEvent(MY_WAIT_MOMENT); 325 } 326 } 327 | Popular Tags |