1 21 22 package gui.debuggercore; 23 24 import java.io.File ; 25 import junit.textui.TestRunner; 26 import org.netbeans.jellytools.*; 27 import org.netbeans.jellytools.actions.Action; 28 import org.netbeans.jellytools.actions.ActionNoBlock; 29 import org.netbeans.jellytools.actions.OpenAction; 30 import org.netbeans.jellytools.modules.debugger.actions.RunToCursorAction; 31 import org.netbeans.jellytools.nodes.JavaNode; 32 import org.netbeans.jellytools.nodes.SourcePackagesNode; 33 import org.netbeans.jemmy.EventTool; 34 import org.netbeans.jemmy.JemmyProperties; 35 import org.netbeans.jemmy.operators.JTreeOperator; 36 import org.netbeans.jemmy.operators.JTextFieldOperator; 37 import org.netbeans.jemmy.util.PNGEncoder; 38 import org.netbeans.junit.NbTestSuite; 39 import org.openide.nodes.Node; 40 41 45 public class Watches extends JellyTestCase { 46 47 51 public Watches(String name) { 52 super(name); 53 } 54 55 59 public static void main(String [] args) { 60 TestRunner.run(suite()); 61 } 62 63 67 public static NbTestSuite suite() { 68 NbTestSuite suite = new NbTestSuite(); 69 suite.addTest(new Watches("testWatchesPublicVariables")); 70 suite.addTest(new Watches("testWatchesProtectedVariables")); 71 suite.addTest(new Watches("testWatchesPrivateVariables")); 72 suite.addTest(new Watches("testWatchesPackagePrivateVariables")); 73 suite.addTest(new Watches("testWatchesFiltersBasic")); 74 suite.addTest(new Watches("testWatchesFiltersLinkedList")); 75 suite.addTest(new Watches("testWatchesFiltersArrayList")); 76 suite.addTest(new Watches("testWatchesFiltersVector")); 77 suite.addTest(new Watches("testWatchesFiltersHashMap")); 78 suite.addTest(new Watches("testWatchesFiltersHashtable")); 79 suite.addTest(new Watches("testWatchesFiltersTreeMap")); 80 suite.addTest(new Watches("testWatchesFiltersTreeSet")); 81 suite.addTest(new Watches("testWatchesFilters1DArray")); 82 suite.addTest(new Watches("testWatchesFilters2DArray")); 83 suite.addTest(new Watches("testWatchesValues")); 84 return suite; 85 } 86 87 90 public void setUp() { 91 System.out.println("######## " + getName() + " #######"); 92 if ("testWatchesPublicVariables".equals(getName())) { 93 org.netbeans.jellytools.nodes.Node beanNode = new org.netbeans.jellytools.nodes.Node(new SourcePackagesNode(Utilities.testProjectName), "examples.advanced|MemoryView.java"); new OpenAction().performAPI(beanNode); EditorOperator op = new EditorOperator("MemoryView.java"); 97 Utilities.setCaret(op, 76); 98 new RunToCursorAction().perform(); 99 Utilities.getDebugToolbar().waitComponentVisible(true); 100 Utilities.waitDebuggerConsole("Thread main stopped at MemoryView.java:76", 0); 101 } 102 } 103 104 107 public void tearDown() { 108 JemmyProperties.getCurrentOutput().printTrace("\nteardown\n"); 109 if ("testWatchesValues".equals(getName())) { 110 Utilities.endAllSessions(); 111 } 112 Utilities.deleteAllWatches(); 113 } 114 115 118 public void testWatchesPublicVariables() throws Throwable { 119 try { 120 createWatch("Vpublic"); 121 createWatch("Spublic"); 122 createWatch("inheritedVpublic"); 123 createWatch("inheritedSpublic"); 124 Utilities.showDebuggerView(Utilities.watchesViewTitle); 125 TreeTableOperator jTableOperator = new TreeTableOperator(new TopComponentOperator(Utilities.watchesViewTitle)); 126 checkTTVLine(jTableOperator, 0, "Vpublic", "String", "\"Public Variable\""); 127 checkTTVLine(jTableOperator, 1, "Spublic", "String", "\"Public Variable\""); 128 checkTTVLine(jTableOperator, 2, "inheritedVpublic", "String", "\"Inherited Public Variable\""); 129 checkTTVLine(jTableOperator, 3, "inheritedSpublic", "String", "\"Inherited Public Variable\""); 130 } catch (Throwable th) { 131 try { 132 PNGEncoder.captureScreen(getWorkDir().getAbsolutePath()+File.separator+"screenBeforeCleanup.png"); 134 } catch (Exception e1) { 135 } 137 throw th; 138 } 139 } 140 141 144 public void testWatchesProtectedVariables() throws Throwable { 145 try { 146 createWatch("Vprotected"); 147 createWatch("Sprotected"); 148 createWatch("inheritedVprotected"); 149 createWatch("inheritedSprotected"); 150 Utilities.showDebuggerView(Utilities.watchesViewTitle); 151 TreeTableOperator jTableOperator = new TreeTableOperator(new TopComponentOperator(Utilities.watchesViewTitle)); 152 checkTTVLine(jTableOperator, 0, "Vprotected", "String", "\"Protected Variable\""); 153 checkTTVLine(jTableOperator, 1, "Sprotected", "String", "\"Protected Variable\""); 154 checkTTVLine(jTableOperator, 2, "inheritedVprotected", "String", "\"Inherited Protected Variable\""); 155 checkTTVLine(jTableOperator, 3, "inheritedSprotected", "String", "\"Inherited Protected Variable\""); 156 } catch (Throwable th) { 157 try { 158 PNGEncoder.captureScreen(getWorkDir().getAbsolutePath()+File.separator+"screenBeforeCleanup.png"); 160 } catch (Exception e1) { 161 } 163 throw th; 164 } 165 } 166 167 170 public void testWatchesPrivateVariables() throws Throwable { 171 try { 172 createWatch("Vprivate"); 173 createWatch("Sprivate"); 174 createWatch("inheritedVprivate"); 175 createWatch("inheritedSprivate"); 176 Utilities.showDebuggerView(Utilities.watchesViewTitle); 177 TreeTableOperator jTableOperator = new TreeTableOperator(new TopComponentOperator(Utilities.watchesViewTitle)); 178 checkTTVLine(jTableOperator, 0, "Vprivate", "String", "\"Private Variable\""); 179 checkTTVLine(jTableOperator, 1, "Sprivate", "String", "\"Private Variable\""); 180 checkTTVLine(jTableOperator, 2, "inheritedVprivate", "String", "\"Inherited Private Variable\""); 181 checkTTVLine(jTableOperator, 3, "inheritedSprivate", "String", "\"Inherited Private Variable\""); 182 } catch (Throwable th) { 183 try { 184 PNGEncoder.captureScreen(getWorkDir().getAbsolutePath()+File.separator+"screenBeforeCleanup.png"); 186 } catch (Exception e1) { 187 } 189 throw th; 190 } 191 } 192 193 196 public void testWatchesPackagePrivateVariables() throws Throwable { 197 try { 198 createWatch("VpackagePrivate"); 199 createWatch("SpackagePrivate"); 200 createWatch("inheritedVpackagePrivate"); 201 createWatch("inheritedSpackagePrivate"); 202 Utilities.showDebuggerView(Utilities.watchesViewTitle); 203 TreeTableOperator jTableOperator = new TreeTableOperator(new TopComponentOperator(Utilities.watchesViewTitle)); 204 checkTTVLine(jTableOperator, 0, "VpackagePrivate", "String", "\"Package-private Variable\""); 205 checkTTVLine(jTableOperator, 1, "SpackagePrivate", "String", "\"Package-private Variable\""); 206 checkTTVLine(jTableOperator, 2, "inheritedVpackagePrivate", "String", "\"Inherited Package-private Variable\""); 207 checkTTVLine(jTableOperator, 3, "inheritedSpackagePrivate", "String", "\"Inherited Package-private Variable\""); 208 } catch (Throwable th) { 209 try { 210 PNGEncoder.captureScreen(getWorkDir().getAbsolutePath()+File.separator+"screenBeforeCleanup.png"); 212 } catch (Exception e1) { 213 } 215 throw th; 216 } 217 } 218 219 222 public void testWatchesFiltersBasic() throws Throwable { 223 try { 224 createWatch("1==1"); 225 createWatch("1==0"); 226 createWatch("Integer.toString(10)"); 227 createWatch("clazz"); 228 createWatch("n"); 229 Utilities.showDebuggerView(Utilities.watchesViewTitle); 230 TreeTableOperator jTableOperator = new TreeTableOperator(new TopComponentOperator(Utilities.watchesViewTitle)); 231 checkTTVLine(jTableOperator, 0, "1==1", "boolean", "true"); 232 checkTTVLine(jTableOperator, 1, "1==0", "boolean", "false"); 233 checkTTVLine(jTableOperator, 2, "Integer.toString(10)", "String", "\"10\""); 234 checkTTVLine(jTableOperator, 3, "clazz", "Class", "class java.lang.Runtime"); 235 assertTrue("Node \'clazz\' has no child nodes", hasChildNodes("clazz", jTableOperator)); 236 checkTTVLine(jTableOperator, 4, "n", "int", "50"); 237 } catch (Throwable th) { 238 try { 239 PNGEncoder.captureScreen(getWorkDir().getAbsolutePath()+File.separator+"screenBeforeCleanup.png"); 241 } catch (Exception e1) { 242 } 244 throw th; 245 } 246 } 247 248 251 public void testWatchesFiltersLinkedList() throws Throwable { 252 try { 253 createWatch("llist"); 254 createWatch("llist.toString()"); 255 createWatch("llist.getFirst()"); 256 createWatch("llist.getLast()"); 257 createWatch("llist.get(1)"); 258 Utilities.showDebuggerView(Utilities.watchesViewTitle); 259 TreeTableOperator jTableOperator = new TreeTableOperator(new TopComponentOperator(Utilities.watchesViewTitle)); 260 checkTTVLine(jTableOperator, 0, "llist", "LinkedList", null); 261 assertTrue("Node \'llist\' has no child nodes", hasChildNodes("llist", jTableOperator)); 262 checkTTVLine(jTableOperator, 1, "llist.toString()", "String", "\"[0. item, 1. item, 2. item, 3. item, 4. item, 5. item, 6. item, 7. item, 8. item, 9. item, 10. item, 11. item, 12. item, 13. item, 14. item, 15. item, 16. item, 17. item, 18. item, 19. item, 20. item, 21. item, 22. item, 23. item, 24. item, 25. item, 26. item, 27. item, 28. item, 29. item, 30. item, 31. item, 32. item, 33. item, 34. item, 35. item, 36. item, 37. item, 38. item, 39. item, 40. item, 41. item, 42. item, 43. item, 44. item, 45. item, 46. item, 47. item, 48. item, 49. item]\""); 263 checkTTVLine(jTableOperator, 2, "llist.getFirst()", "String", "\"0. item\""); 264 checkTTVLine(jTableOperator, 3, "llist.getLast()", "String", "\"49. item\""); 265 checkTTVLine(jTableOperator, 4, "llist.get(1)", "String", "\"1. item\""); 266 } catch (Throwable th) { 267 try { 268 PNGEncoder.captureScreen(getWorkDir().getAbsolutePath()+File.separator+"screenBeforeCleanup.png"); 270 } catch (Exception e1) { 271 } 273 throw th; 274 } 275 } 276 277 280 public void testWatchesFiltersArrayList() throws Throwable { 281 try { 282 createWatch("alist"); 283 createWatch("alist.toString()"); 284 createWatch("alist.get(2)"); 285 Utilities.showDebuggerView(Utilities.watchesViewTitle); 286 TreeTableOperator jTableOperator = new TreeTableOperator(new TopComponentOperator(Utilities.watchesViewTitle)); 287 checkTTVLine(jTableOperator, 0, "alist", "ArrayList", null); 288 assertTrue("Node \'alist\' has no child nodes", hasChildNodes("alist", jTableOperator)); 289 checkTTVLine(jTableOperator, 1, "alist.toString()", "String", "\"[0. item, 1. item, 2. item, 3. item, 4. item, 5. item, 6. item, 7. item, 8. item, 9. item, 10. item, 11. item, 12. item, 13. item, 14. item, 15. item, 16. item, 17. item, 18. item, 19. item, 20. item, 21. item, 22. item, 23. item, 24. item, 25. item, 26. item, 27. item, 28. item, 29. item, 30. item, 31. item, 32. item, 33. item, 34. item, 35. item, 36. item, 37. item, 38. item, 39. item, 40. item, 41. item, 42. item, 43. item, 44. item, 45. item, 46. item, 47. item, 48. item, 49. item]\""); 290 checkTTVLine(jTableOperator, 2, "alist.get(2)", "String", "\"2. item\""); 291 } catch (Throwable th) { 292 try { 293 PNGEncoder.captureScreen(getWorkDir().getAbsolutePath()+File.separator+"screenBeforeCleanup.png"); 295 } catch (Exception e1) { 296 } 298 throw th; 299 } 300 } 301 302 305 public void testWatchesFiltersVector() throws Throwable { 306 try { 307 createWatch("vec"); 308 createWatch("vec.toString()"); 309 createWatch("vec.get(3)"); 310 Utilities.showDebuggerView(Utilities.watchesViewTitle); 311 TreeTableOperator jTableOperator = new TreeTableOperator(new TopComponentOperator(Utilities.watchesViewTitle)); 312 checkTTVLine(jTableOperator, 0, "vec", "Vector", null); 313 assertTrue("Node \'vec\' has no child nodes", hasChildNodes("vec", jTableOperator)); 314 checkTTVLine(jTableOperator, 1, "vec.toString()", "String", "\"[0. item, 1. item, 2. item, 3. item, 4. item, 5. item, 6. item, 7. item, 8. item, 9. item, 10. item, 11. item, 12. item, 13. item, 14. item, 15. item, 16. item, 17. item, 18. item, 19. item, 20. item, 21. item, 22. item, 23. item, 24. item, 25. item, 26. item, 27. item, 28. item, 29. item, 30. item, 31. item, 32. item, 33. item, 34. item, 35. item, 36. item, 37. item, 38. item, 39. item, 40. item, 41. item, 42. item, 43. item, 44. item, 45. item, 46. item, 47. item, 48. item, 49. item]\""); 315 checkTTVLine(jTableOperator, 2, "vec.get(3)", "String", "\"3. item\""); 316 } catch (Throwable th) { 317 try { 318 PNGEncoder.captureScreen(getWorkDir().getAbsolutePath()+File.separator+"screenBeforeCleanup.png"); 320 } catch (Exception e1) { 321 } 323 throw th; 324 } 325 } 326 327 330 public void testWatchesFiltersHashMap() throws Throwable { 331 try { 332 createWatch("hmap"); 333 createWatch("hmap.containsKey(\"4\")"); 334 createWatch("hmap.get(\"5\")"); 335 createWatch("hmap.put(\"6\",\"test\")"); 336 Utilities.showDebuggerView(Utilities.watchesViewTitle); 337 TreeTableOperator jTableOperator = new TreeTableOperator(new TopComponentOperator(Utilities.watchesViewTitle)); 338 checkTTVLine(jTableOperator, 0, "hmap", "HashMap", null); 339 assertTrue("Node \'hmap\' has no child nodes", hasChildNodes("hmap", jTableOperator)); 340 checkTTVLine(jTableOperator, 1, "hmap.containsKey(\"4\")", "boolean", "true"); 341 checkTTVLine(jTableOperator, 2, "hmap.get(\"5\")", "String", "\"5. item\""); 342 checkTTVLine(jTableOperator, 3, "hmap.put(\"6\",\"test\")", "String", "\"6. item\""); 343 } catch (Throwable th) { 344 try { 345 PNGEncoder.captureScreen(getWorkDir().getAbsolutePath()+File.separator+"screenBeforeCleanup.png"); 347 } catch (Exception e1) { 348 } 350 throw th; 351 } 352 } 353 354 357 public void testWatchesFiltersHashtable() throws Throwable { 358 try { 359 createWatch("htab"); 360 createWatch("htab.containsKey(\"7\")"); 361 createWatch("htab.get(\"9\")"); 362 createWatch("htab.put(\"10\", \"test\")"); 363 Utilities.showDebuggerView(Utilities.watchesViewTitle); 364 TreeTableOperator jTableOperator = new TreeTableOperator(new TopComponentOperator(Utilities.watchesViewTitle)); 365 checkTTVLine(jTableOperator, 0, "htab", "Hashtable", null); 366 assertTrue("Node \'htab\' has no child nodes", hasChildNodes("htab", jTableOperator)); 367 checkTTVLine(jTableOperator, 1, "htab.containsKey(\"7\")", "boolean", "true"); 368 checkTTVLine(jTableOperator, 2, "htab.get(\"9\")", "String", "\"9. item\""); 369 checkTTVLine(jTableOperator, 3, "htab.put(\"10\", \"test\")", "String", "\"10. item\""); 370 } catch (Throwable th) { 371 try { 372 PNGEncoder.captureScreen(getWorkDir().getAbsolutePath()+File.separator+"screenBeforeCleanup.png"); 374 } catch (Exception e1) { 375 } 377 throw th; 378 } 379 } 380 381 384 public void testWatchesFiltersTreeMap() throws Throwable { 385 try { 386 createWatch("tmap"); 387 createWatch("tmap.containsKey(\"11\")"); 388 createWatch("tmap.get(\"12\")"); 389 createWatch("tmap.put(\"13\",\"test\")"); 390 Utilities.showDebuggerView(Utilities.watchesViewTitle); 391 TreeTableOperator jTableOperator = new TreeTableOperator(new TopComponentOperator(Utilities.watchesViewTitle)); 392 checkTTVLine(jTableOperator, 0, "tmap", "TreeMap", null); 393 assertTrue("Node \'tmap\' has no child nodes", hasChildNodes("tmap", jTableOperator)); 394 checkTTVLine(jTableOperator, 1, "tmap.containsKey(\"11\")", "boolean", "true"); 395 checkTTVLine(jTableOperator, 2, "tmap.get(\"12\")", "String", "\"12. item\""); 396 checkTTVLine(jTableOperator, 3, "tmap.put(\"13\",\"test\")", "String", "\"13. item\""); 397 } catch (Throwable th) { 398 try { 399 PNGEncoder.captureScreen(getWorkDir().getAbsolutePath()+File.separator+"screenBeforeCleanup.png"); 401 } catch (Exception e1) { 402 } 404 throw th; 405 } 406 } 407 408 411 public void testWatchesFiltersTreeSet() throws Throwable { 412 try { 413 createWatch("tset"); 414 createWatch("tset.contains(\"14. item\")"); 415 createWatch("tset.iterator()"); 416 Utilities.showDebuggerView(Utilities.watchesViewTitle); 417 TreeTableOperator jTableOperator = new TreeTableOperator(new TopComponentOperator(Utilities.watchesViewTitle)); 418 checkTTVLine(jTableOperator, 0, "tset", "TreeSet", null); 419 assertTrue("Node \'tset\' has no child nodes", hasChildNodes("tset", jTableOperator)); 420 checkTTVLine(jTableOperator, 1, "tset.contains(\"14. item\")", "boolean", "true"); 421 checkTTVLine(jTableOperator, 2, "tset.iterator()", "TreeMap$KeyIterator", null); 422 } catch (Throwable th) { 423 try { 424 PNGEncoder.captureScreen(getWorkDir().getAbsolutePath()+File.separator+"screenBeforeCleanup.png"); 426 } catch (Exception e1) { 427 } 429 throw th; 430 } 431 } 432 433 436 public void testWatchesFilters1DArray() throws Throwable { 437 try { 438 createWatch("policko"); 439 createWatch("policko.length"); 440 createWatch("policko[1]"); 441 createWatch("policko[10]"); 442 createWatch("pole"); 443 createWatch("pole.length"); 444 createWatch("pole[1]"); 445 Utilities.showDebuggerView(Utilities.watchesViewTitle); 446 TreeTableOperator jTableOperator = new TreeTableOperator(new TopComponentOperator(Utilities.watchesViewTitle)); 447 checkTTVLine(jTableOperator, 0, "policko", "int[]", null); 448 assertTrue("Node \'policko\' has no child nodes", hasChildNodes("policko", jTableOperator)); 449 checkTTVLine(jTableOperator, 1, "policko.length", "int", "5"); 450 checkTTVLine(jTableOperator, 2, "policko[1]", "int", "2"); 451 checkTTVLine(jTableOperator, 3, "policko[10]", null, ">Array index \"10\" is out of range <0,4><"); 452 checkTTVLine(jTableOperator, 4, "pole", "int[]", null); 453 assertTrue("Node \'pole\' has no child nodes", hasChildNodes("pole", jTableOperator)); 454 checkTTVLine(jTableOperator, 5, "pole.length", "int", "50"); 455 checkTTVLine(jTableOperator, 6, "pole[1]", "int", "0"); 456 } catch (Throwable th) { 457 try { 458 PNGEncoder.captureScreen(getWorkDir().getAbsolutePath()+File.separator+"screenBeforeCleanup.png"); 460 } catch (Exception e1) { 461 } 463 throw th; 464 } 465 } 466 467 470 public void testWatchesFilters2DArray() throws Throwable { 471 try { 472 createWatch("d2"); 473 createWatch("d2.length"); 474 createWatch("d2[1]"); 475 createWatch("d2[1].length"); 476 createWatch("d2[1][1]"); 477 createWatch("d2[15].length"); 478 Utilities.showDebuggerView(Utilities.watchesViewTitle); 479 TreeTableOperator jTableOperator = new TreeTableOperator(new TopComponentOperator(Utilities.watchesViewTitle)); 480 checkTTVLine(jTableOperator, 0, "d2", "int[][]", null); 481 assertTrue("Node \'d2\' has no child nodes", hasChildNodes("d2", jTableOperator)); 482 checkTTVLine(jTableOperator, 1, "d2.length", "int", "10"); 483 checkTTVLine(jTableOperator, 2, "d2[1]", "int[]", null); 484 assertTrue("Node \'d2[1]\' has no child nodes", hasChildNodes("d2[1]", jTableOperator)); 485 checkTTVLine(jTableOperator, 3, "d2[1].length", "int", "20"); 486 checkTTVLine(jTableOperator, 4, "d2[1][1]", "int", "0"); 487 checkTTVLine(jTableOperator, 5, "d2[15].length", null, ">Array index \"15\" is out of range <0,9><"); 488 } catch (Throwable th) { 489 try { 490 PNGEncoder.captureScreen(getWorkDir().getAbsolutePath()+File.separator+"screenBeforeCleanup.png"); 492 } catch (Exception e1) { 493 } 495 throw th; 496 } 497 } 498 499 502 public void testWatchesValues() throws Throwable { 503 try { 504 EditorOperator op = new EditorOperator("MemoryView.java"); 505 Utilities.setCaret(op, 104); 506 new RunToCursorAction().perform(); 507 MainWindowOperator.getDefault().waitStatusText("Thread main stopped at MemoryView.java:104."); 508 509 createWatch("free"); 510 createWatch("taken"); 511 createWatch("total"); 512 createWatch("this"); 513 514 Utilities.showDebuggerView(Utilities.watchesViewTitle); 515 TreeTableOperator jTableOperator = new TreeTableOperator(new TopComponentOperator(Utilities.watchesViewTitle)); 516 Node.Property property; 517 int count = 0; 518 519 try { 520 if (!("free".equals(jTableOperator.getValueAt(count,0).toString()))) 521 assertTrue("Watch for expression \'free\' was not created", false); 522 property = (Node.Property)jTableOperator.getValueAt(count,1); 523 if (!("long".equals(property.getValue()))) 524 assertTrue("Watch type for expression \'free\' is " + property.getValue() + ", should be long", false); 525 property = (Node.Property)jTableOperator.getValueAt(count++,2); 526 long free = Long.parseLong(property.getValue().toString()); 527 528 if (!("taken".equals(jTableOperator.getValueAt(count,0).toString()))) 529 assertTrue("Watch for expression \'taken\' was not created", false); 530 property = (Node.Property)jTableOperator.getValueAt(count,1); 531 if (!("int".equals(property.getValue()))) 532 assertTrue("Watch type for expression \'taken\' is " + property.getValue() + ", should be long", false); 533 property = (Node.Property)jTableOperator.getValueAt(count++,2); 534 long taken = Long.parseLong(property.getValue().toString()); 535 536 if (!("total".equals(jTableOperator.getValueAt(count,0).toString()))) 537 assertTrue("Watch for expression \'total\' was not created", false); 538 property = (Node.Property)jTableOperator.getValueAt(count,1); 539 if (!("long".equals(property.getValue()))) 540 assertTrue("Watch type for expression \'total\' is " + property.getValue() + ", should be long", false); 541 property = (Node.Property)jTableOperator.getValueAt(count++,2); 542 long total = Long.parseLong(property.getValue().toString()); 543 544 assertTrue("Watches values does not seem to be correct (total != free + taken)", total == free + taken); 545 546 if (!("this".equals(jTableOperator.getValueAt(count,0).toString()))) 547 assertTrue("Watch for expression \'this\' was not created", false); 548 property = (Node.Property)jTableOperator.getValueAt(count,1); 549 if (!("MemoryView".equals(property.getValue()))) 550 assertTrue("Watch type for expression \'this\' is " + property.getValue() + ", should be MemoryView", false); 551 assertTrue("Watch this has no child nodes", hasChildNodes("this", jTableOperator)); 552 } catch (java.lang.IllegalAccessException e1) { 553 assertTrue(e1.getMessage(), false); 554 } catch (java.lang.reflect.InvocationTargetException e2) { 555 assertTrue(e2.getMessage(), false); 556 } 557 } catch (Throwable th) { 558 try { 559 PNGEncoder.captureScreen(getWorkDir().getAbsolutePath()+File.separator+"screenBeforeCleanup.png"); 561 } catch (Exception e1) { 562 } 564 throw th; 565 } 566 } 567 568 572 protected void createWatch(String exp) { 573 new ActionNoBlock(Utilities.runMenu + "|" + Utilities.newWatchItem, null).perform(); 574 NbDialogOperator dialog = new NbDialogOperator(Utilities.newWatchTitle); 576 new JTextFieldOperator(dialog, 0).typeText(exp); 577 dialog.ok(); 578 new EventTool().waitNoEvent(500); 579 } 580 581 589 protected void checkTTVLine(TreeTableOperator table, int lineNumber, String name, String type, String value) { 590 try { 591 table.scrollToCell(lineNumber, 0); 592 org.openide.nodes.Node.Property property; 593 String string = null; 594 assertTrue("Node " + name + " not displayed in Watches view", name.equals(table.getValueAt(lineNumber, 0).toString())); 595 property = (org.openide.nodes.Node.Property)table.getValueAt(lineNumber, 1); 596 string = property.getValue().toString(); 597 int maxWait = 100; 598 while (string.equals(Utilities.evaluatingPropertyText) && maxWait > 0) { 599 new EventTool().waitNoEvent(300); 600 maxWait--; 601 } 602 assertTrue("Node " + name + " has wrong type in Watches view (displayed: " + string + ", expected: " + type + ")", 603 (type == null) || type.length() == 0 || type.equals(string)); 604 property = (org.openide.nodes.Node.Property)table.getValueAt(lineNumber, 2); 605 string = property.getValue().toString(); 606 maxWait = 100; 607 while (string.equals(Utilities.evaluatingPropertyText) && maxWait > 0) { 608 new EventTool().waitNoEvent(300); 609 maxWait--; 610 } 611 assertTrue("Node " + name + " has wrong value in Watches view (displayed: " + string + ", expected: " + value + ")", 612 (type == null) || !type.equals(string)); 613 } catch (java.lang.IllegalAccessException e1) { 614 assertTrue(e1.getMessage(), false); 615 } catch (java.lang.reflect.InvocationTargetException e2) { 616 assertTrue(e2.getMessage(), false); 617 } 618 } 619 620 protected boolean hasChildNodes(String nodePath, TreeTableOperator jTableOperator) { 621 org.netbeans.jellytools.nodes.Node node = new org.netbeans.jellytools.nodes.Node(jTableOperator.tree(), nodePath); 622 node.select(); 623 return !node.isLeaf(); 624 } 625 } 626 | Popular Tags |