| 1 19 20 package java_code_folding; 21 22 import java.awt.event.KeyEvent ; 23 import java.io.File ; 24 import java.io.FileOutputStream ; 25 import java.io.IOException ; 26 import java.io.OutputStream ; 27 import java.io.PrintStream ; 28 import java.util.Hashtable ; 29 import javax.swing.text.AbstractDocument ; 30 import javax.swing.text.JTextComponent ; 31 import org.netbeans.jellytools.Bundle; 32 import org.netbeans.jellytools.EditorOperator; 33 import org.netbeans.jellytools.EditorWindowOperator; 34 import lib.EditorTestCase; 35 import code_folding.CodeFoldingTest; 36 import org.netbeans.api.editor.fold.Fold; 37 import org.netbeans.api.editor.fold.FoldHierarchy; 38 import org.netbeans.jemmy.operators.JEditorPaneOperator; 39 import org.netbeans.jemmy.operators.JTextComponentOperator; 40 41 51 public class JavaFoldsTest extends JavaCodeFoldingTest { 52 53 PrintStream systemOutPSWrapper = new PrintStream (System.out); 55 56 JTextComponent target; 57 EditorOperator editor; 58 int index = 0; 59 60 61 62 public JavaFoldsTest(String testMethodName) { 63 super(testMethodName); 64 } 65 66 67 68 private String getIndexAsString(){ 69 String ret = String.valueOf(index); 70 if (ret.length() == 1) ret = "0" + ret; 71 return ret; 72 } 73 74 private String getRefFileName(){ 75 return this.getName()+getIndexAsString()+".ref"; } 77 78 private String getGoldenFileName(){ 79 return this.getName()+getIndexAsString()+".pass"; } 81 82 private String getDiffFileName(){ 83 return this.getName()+getIndexAsString()+".diff"; } 85 86 private Hashtable logStreamTable = null; 88 89 private PrintStream getFileLog(String logName) throws IOException { 90 OutputStream outputStream; 91 FileOutputStream fileOutputStream; 92 93 if ((logStreamTable == null)|(hasTestMethodChanged())) { 94 logStreamTable = new Hashtable (); 96 } else { 98 if (logStreamTable.containsKey(logName)) { 99 return (PrintStream )logStreamTable.get(logName); 101 } 102 } 103 FileOutputStream fileLog = new FileOutputStream (new File (getWorkDir(),logName)); 105 PrintStream printStreamLog = new PrintStream (fileLog,true); 106 logStreamTable.put(logName,printStreamLog); 107 return printStreamLog; 109 } 110 111 private String lastTestMethod=null; 112 113 private boolean hasTestMethodChanged() { 114 if (!this.getName().equals(lastTestMethod)) { 115 lastTestMethod=this.getName(); 116 return true; 117 } else { 118 return false; 119 } 120 } 121 122 public PrintStream getRef() { 123 String refFilename = getRefFileName(); 124 try { 125 return getFileLog(refFilename); 126 } catch (IOException ioe) { 127 fail("Could not open reference file: "+refFilename); 131 return systemOutPSWrapper; 132 } 133 } 134 135 private void compareFoldHierarchyDump(){ 136 String viewDumpHierarchy = foldHierarchyToString(target); 137 ref(viewDumpHierarchy); 138 compareReferenceFiles(getRefFileName(), getGoldenFileName(), getDiffFileName()); 139 index++; 140 } 141 142 143 144 145 public void testJavaFolds(){ 146 openDefaultProject(); 147 openDefaultSampleFile(); 148 149 editor = getDefaultSampleEditorOperator(); 150 JTextComponentOperator text = new JTextComponentOperator(editor); 151 target = (JTextComponent )text.getSource(); 152 153 waitForFolding(target, 6000); 155 156 compareFoldHierarchyDump(); 158 159 collapseFoldAtCaretPosition(editor, 2, 17); 162 compareFoldHierarchyDump(); 163 164 collapseFoldAtCaretPosition(editor, 9, 1); 167 compareFoldHierarchyDump(); 168 169 collapseFoldAtCaretPosition(editor, 17, 4); 172 compareFoldHierarchyDump(); 173 174 collapseFoldAtCaretPosition(editor, 20, 1); 177 compareFoldHierarchyDump(); 178 179 collapseFoldAtCaretPosition(editor, 23, 5); 182 compareFoldHierarchyDump(); 183 184 collapseFoldAtCaretPosition(editor, 28, 43); 187 compareFoldHierarchyDump(); 188 189 collapseFoldAtCaretPosition(editor, 29, 47); 192 compareFoldHierarchyDump(); 193 194 collapseFoldAtCaretPosition(editor, 32, 1); 197 compareFoldHierarchyDump(); 198 199 collapseFoldAtCaretPosition(editor, 34, 36); 202 compareFoldHierarchyDump(); 203 204 collapseFoldAtCaretPosition(editor, 40, 8); 207 compareFoldHierarchyDump(); 208 209 collapseFoldAtCaretPosition(editor, 41, 29); 212 compareFoldHierarchyDump(); 213 214 collapseFoldAtCaretPosition(editor, 44, 24); 217 compareFoldHierarchyDump(); 218 219 collapseFoldAtCaretPosition(editor, 48, 7); 222 compareFoldHierarchyDump(); 223 224 collapseFoldAtCaretPosition(editor, 50, 53); 227 compareFoldHierarchyDump(); 228 229 expandFoldAtCaretPosition(editor, 50, 53); 232 compareFoldHierarchyDump(); 233 234 collapseFoldAtCaretPosition(editor, 50, 33); 237 compareFoldHierarchyDump(); 238 239 expandFoldAtCaretPosition(editor, 50, 33); 242 compareFoldHierarchyDump(); 243 244 collapseFoldAtCaretPosition(editor, 50, 62); 247 compareFoldHierarchyDump(); 248 249 expandFoldAtCaretPosition(editor, 50, 62); 252 compareFoldHierarchyDump(); 253 254 collapseFoldAtCaretPosition(editor, 50, 31); 257 compareFoldHierarchyDump(); 258 259 expandFoldAtCaretPosition(editor, 50, 32); 262 compareFoldHierarchyDump(); 263 264 collapseFoldAtCaretPosition(editor, 50, 32); 267 compareFoldHierarchyDump(); 268 269 expandFoldAtCaretPosition(editor, 50, 1); 272 compareFoldHierarchyDump(); 273 274 collapseFoldAtCaretPosition(editor, 50, 63); 277 compareFoldHierarchyDump(); 278 279 expandFoldAtCaretPosition(editor, 50, 63); 282 compareFoldHierarchyDump(); 283 284 collapseFoldAtCaretPosition(editor, 50, 90); 287 compareFoldHierarchyDump(); 288 289 expandFoldAtCaretPosition(editor, 50, 90); 292 compareFoldHierarchyDump(); 293 294 collapseFoldAtCaretPosition(editor, 52, 21); 297 compareFoldHierarchyDump(); 298 299 collapseFoldAtCaretPosition(editor, 53, 1); 302 compareFoldHierarchyDump(); 303 304 collapseFoldAtCaretPosition(editor, 55, 1); 307 compareFoldHierarchyDump(); 308 309 collapseFoldAtCaretPosition(editor, 58, 68); 312 compareFoldHierarchyDump(); 313 314 317 collapseFoldAtCaretPosition(editor, 61, 1); 320 compareFoldHierarchyDump(); 321 322 expandFoldAtCaretPosition(editor, 61, 1); 325 compareFoldHierarchyDump(); 326 327 collapseFoldAtCaretPosition(editor, 62, 53); 330 compareFoldHierarchyDump(); 331 332 collapseFoldAtCaretPosition(editor, 65, 12); 335 compareFoldHierarchyDump(); 336 337 collapseFoldAtCaretPosition(editor, 70, 9); 340 compareFoldHierarchyDump(); 341 342 collapseFoldAtCaretPosition(editor, 71, 36); 345 compareFoldHierarchyDump(); 346 347 collapseFoldAtCaretPosition(editor, 75, 10); 350 compareFoldHierarchyDump(); 351 352 collapseFoldAtCaretPosition(editor, 78, 26); 355 compareFoldHierarchyDump(); 356 357 collapseFoldAtCaretPosition(editor, 82, 12); 360 compareFoldHierarchyDump(); 361 362 collapseFoldAtCaretPosition(editor, 83, 34); 365 compareFoldHierarchyDump(); 366 367 collapseFoldAtCaretPosition(editor, 87, 11); 370 compareFoldHierarchyDump(); 371 372 collapseFoldAtCaretPosition(editor, 90, 10); 375 compareFoldHierarchyDump(); 376 377 collapseFoldAtCaretPosition(editor, 90, 11); 380 compareFoldHierarchyDump(); 381 382 expandFoldAtCaretPosition(editor, 93, 6); 385 compareFoldHierarchyDump(); 386 387 collapseFoldAtCaretPosition(editor, 92, 1); 390 compareFoldHierarchyDump(); 391 392 expandFoldAtCaretPosition(editor, 92, 1); 395 compareFoldHierarchyDump(); 396 397 collapseFoldAtCaretPosition(editor, 92, 37); 400 compareFoldHierarchyDump(); 401 402 expandFoldAtCaretPosition(editor, 92, 37); 405 compareFoldHierarchyDump(); 406 407 collapseFoldAtCaretPosition(editor, 92, 86); 410 compareFoldHierarchyDump(); 411 412 expandFoldAtCaretPosition(editor, 92, 86); 415 compareFoldHierarchyDump(); 416 417 collapseFoldAtCaretPosition(editor, 92, 35); 420 collapseFoldAtCaretPosition(editor, 92, 56); 421 collapseFoldAtCaretPosition(editor, 92, 94); 422 compareFoldHierarchyDump(); 423 424 425 426 429 collapseFoldAtCaretPosition(editor, 131, 16); 432 compareFoldHierarchyDump(); 433 434 collapseFoldAtCaretPosition(editor, 132, 31); 437 compareFoldHierarchyDump(); 438 439 collapseFoldAtCaretPosition(editor, 136, 22); 442 collapseFoldAtCaretPosition(editor, 136, 69); 443 collapseFoldAtCaretPosition(editor, 136, 98); 444 compareFoldHierarchyDump(); 445 446 447 collapseAllFolds(editor); 450 compareFoldHierarchyDump(); 451 452 expandAllFolds(editor); 455 compareFoldHierarchyDump(); 456 457 closeFileWithDiscard(); 458 459 } 460 461 } 462 | Popular Tags |