KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > complete > AdditionalCommands


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package complete;
21
22 import org.netbeans.jellytools.EditorOperator;
23 import org.netbeans.jellytools.NbDialogOperator;
24 import org.netbeans.jellytools.NewWizardOperator;
25 import org.netbeans.jellytools.TopComponentOperator;
26 import org.netbeans.jellytools.actions.OpenAction;
27 import org.netbeans.jellytools.modules.javacvs.output.AnnotateOutputOperator;
28 import org.netbeans.jellytools.modules.javacvs.output.LogOutputOperator;
29 import org.netbeans.jellytools.modules.javacvs.output.StatusOutputOperator;
30 import org.netbeans.jellytools.modules.vcscore.VCSCommandsOutputOperator;
31 import org.netbeans.jellytools.nodes.FilesystemNode;
32 import org.netbeans.jellytools.nodes.Node;
33 import org.netbeans.jellytools.util.StringFilter;
34 import org.netbeans.jemmy.operators.JTextFieldOperator;
35 import org.netbeans.test.oo.gui.jelly.javacvs.AnnotateDialog;
36 import org.netbeans.test.oo.gui.jelly.javacvs.CommitDialog;
37 import org.netbeans.test.oo.gui.jelly.javacvs.DiffDialog;
38 import org.netbeans.test.oo.gui.jelly.javacvs.LogDialog;
39 import org.netbeans.test.oo.gui.jelly.javacvs.RemoveDialog;
40 import org.netbeans.test.oo.gui.jelly.javacvs.StatusDialog;
41 import org.netbeans.test.oo.gui.jelly.vcscore.OutputOfVCSCommandsFrame;
42
43 public class AdditionalCommands extends JCVSStub {
44     
45     public AdditionalCommands(String JavaDoc testName) {
46         super(testName);
47     }
48     
49     public static junit.framework.Test suite() {
50 // DEBUG = true;
51
junit.framework.TestSuite suite = new org.netbeans.junit.NbTestSuite();
52         suite.addTest(new AdditionalCommands("configure"));
53         suite.addTest(new AdditionalCommands("testStatusRefresh"));
54         suite.addTest(new AdditionalCommands("testRemove"));
55 // suite.addTest(new AdditionalCommands("testRemoveRecursively")); // !!! do it
56
suite.addTest(new AdditionalCommands("testLogInit"));
57         suite.addTest(new AdditionalCommands("testLogFileFull"));
58         suite.addTest(new AdditionalCommands("testLogFileStrict"));
59         suite.addTest(new AdditionalCommands("testLogDirectory"));
60         suite.addTest(new AdditionalCommands("testLogDirectoryRecursive"));
61         suite.addTest(new AdditionalCommands("testLogRestrictions"));
62         suite.addTest(new AdditionalCommands("testStatusInit"));
63         suite.addTest(new AdditionalCommands("testStatusFile"));
64         suite.addTest(new AdditionalCommands("testStatusFileIncludeTags"));
65         suite.addTest(new AdditionalCommands("testStatusDirectory"));
66         suite.addTest(new AdditionalCommands("testStatusDirectoryRecursive"));
67         suite.addTest(new AdditionalCommands("testAnnotateInit"));
68         suite.addTest(new AdditionalCommands("testAnnotateFileFull"));
69         suite.addTest(new AdditionalCommands("testAnnotateFileStrict"));
70         suite.addTest(new AdditionalCommands("testAnnotateDirectory"));
71         suite.addTest(new AdditionalCommands("testAnnotateDirectoryRecursive"));
72         suite.addTest(new AdditionalCommands("testAnnotateInvalid"));
73         suite.addTest(new AdditionalCommands("testAnnotateForce"));
74         suite.addTest(new AdditionalCommands("testDiffInit"));
75         suite.addTest(new AdditionalCommands("testDiffFile1Revision"));
76         suite.addTest(new AdditionalCommands("testDiffFile2Revisions"));
77         suite.addTest(new AdditionalCommands("testDiffFileIgnore"));
78         suite.addTest(new AdditionalCommands("testDiffFileFormat"));
79 // suite.addTest(new AdditionalCommands("testDiffDirectory")); // graphical diff not work - used textual diff - but textual is broken too - always fail due to bug #29769
80
suite.addTest(new AdditionalCommands("testUnmount"));
81         return suite;
82     }
83     
84     public static void main(java.lang.String JavaDoc[] args) {
85         junit.textui.TestRunner.run(suite());
86     }
87     
88     GenericNode pac1, subpac1;
89     GenericNode aa1;
90     GenericNode log1, log2;
91
92     GenericNode pac2, subpac2;
93     GenericNode status1, status2;
94     
95     GenericNode pac3, subpac3;
96     GenericNode anno1, anno2;
97     
98     GenericNode pac4, subpac4;
99     GenericNode diff1, diff2;
100     
101     protected void createStructure() {
102         pac1 = new GenericNode (root, "pac1");
103         subpac1 = new GenericNode (pac1, "subpac1");
104         
105         aa1 = new GenericNode (subpac1, "Aa1", ".java");
106
107         log1 = new GenericNode (subpac1, "log1", ".java");
108         log2 = new GenericNode (subpac1, "log2", ".java");
109         
110         pac2 = new GenericNode (root, "pac2");
111         subpac2 = new GenericNode (pac2, "subpac2");
112
113         status1 = new GenericNode (subpac2, "status1", ".java");
114         status2 = new GenericNode (subpac2, "status2", ".java");
115         
116         pac3 = new GenericNode (root, "pac3");
117         subpac3 = new GenericNode (pac3, "subpac3");
118
119         anno1 = new GenericNode (pac3, "anno1");
120         anno2 = new GenericNode (subpac3, "anno2");
121         
122         pac4 = new GenericNode (root, "pac4");
123         subpac4 = new GenericNode (pac4, "subpac4");
124
125         diff1 = new GenericNode (subpac4, "diff1");
126         diff2 = new GenericNode (subpac4, "diff2");
127     }
128     
129     public void configure () {
130         super.configure ();
131         if (!DEBUG) {
132             createStructure ();
133
134             subpac1.mkdirs ();
135             refresh (root);
136             pac1.waitStatus ("Local");
137             addDirectory(pac1);
138             refresh (pac1);
139             subpac1.waitStatus ("Local");
140             addDirectory(subpac1);
141
142             subpac2.mkdirs ();
143             refresh (root);
144             pac2.waitStatus ("Local");
145             addDirectory(pac2);
146             refresh (pac2);
147             subpac2.waitStatus ("Local");
148             addDirectory(subpac2);
149
150             createAddCommitFile (aa1, "Java Classes|Main");
151         }
152     }
153     
154     public void testStatusRefresh () {
155         aa1.waitStatus ("Up-to-date; 1.1");
156         String JavaDoc file = loadFile(aa1.file ());
157         try {
158             new OpenAction ().perform(aa1.jcvsNode ());
159             EditorOperator eo = new EditorOperator (aa1.name () + " [Up-to-date; 1.1]");
160
161             eo.txtEditorPane().typeText("// inserted line\n", 0);
162             eo.waitModified(true);
163             eo.save ();
164             eo.waitModified (false);
165             aa1.waitStatus ("LMod; 1.1");
166             eo.deleteLine(1);
167             eo.waitModified (true);
168             eo.save ();
169             eo.waitModified (false);
170 // eo.close(); // workaround for unreported bug
171

172             refresh (pac1);
173             aa1.waitStatus ("LMod; 1.1");
174             refresh (subpac1);
175             aa1.waitStatus ("Up-to-date; 1.1");
176         } finally {
177             saveToFile(getWorkFilePath() + "/modfile1", loadFile (aa1.file ()));
178             aa1.save (file);
179         }
180         
181         try {
182             aa1.save ("Modify");
183             refresh (aa1);
184             aa1.waitStatus ("LMod; 1.1");
185         } finally {
186             saveToFile(getWorkFilePath() + "/modfile2", loadFile (aa1.file ()));
187             aa1.save (file);
188         }
189         
190         refresh (pac1);
191         aa1.waitStatus ("LMod; 1.1");
192         refresh (subpac1);
193         aa1.waitStatus ("Up-to-date; 1.1");
194         
195         try {
196             aa1.save ("Modify");
197             refresh (aa1);
198             aa1.waitStatus ("LMod; 1.1");
199         } finally {
200             saveToFile(getWorkFilePath() + "/modfile3", loadFile (aa1.file ()));
201             aa1.save (file);
202         }
203         
204         refreshRecursively(pac1);
205         aa1.waitStatus ("Up-to-date; 1.1");
206     }
207     
208     public void testRemove () {
209         GenericNode remfile = new GenericNode (subpac1, "remfile", ".java");
210         createAddCommitFile (remfile, "Java Classes|Main");
211
212         closeAllVCSWindows();
213         remfile.jcvsNode ().jCVSRemove ();
214         RemoveDialog rem = new RemoveDialog ();
215         rem.runCommand ();
216         rem.waitClosed ();
217         
218         OutputOfVCSCommandsFrame output = new OutputOfVCSCommandsFrame ();
219         dumpTable (output.tabJTable());
220         remfile.waitStatus ("Up-to-date; 1.1");
221         
222         closeAllVCSWindows();
223         remfile.jcvsNode ().jCVSRemove ();
224         rem = new RemoveDialog ();
225         checkCheckBox (rem.cbDeleteBeforeRemove());
226         rem.runCommand ();
227         rem.waitClosed ();
228         
229         output = new OutputOfVCSCommandsFrame ();
230         dumpTable (output.tabJTable());
231         remfile.waitStatus ("LRemoved", false);
232
233         remfile.jcvsNode().jCVSCommit ();
234         CommitDialog com = new CommitDialog ();
235         com.runCommand();
236         com.waitClosed ();
237         remfile.waitHistoryShort ("commit -m \"\"");
238         remfile.parent ().jcvsNode ().waitChildNotPresent(remfile.name ());
239     }
240     
241     public void testRemoveRecursively () {
242         // !!! do it
243
}
244     
245     public void testLogInit () {
246         createAddCommitFile(log1, "Java Classes|Empty");
247         log1.waitStatus ("Up-to-date; 1.1");
248         createAddCommitFile(log2, "Java Classes|Empty");
249         log2.waitStatus ("Up-to-date; 1.1");
250         
251         log1.save ("modify - log 1 - 1.2");
252         refresh (log1);
253         log1.waitStatus ("LMod; 1.1");
254         commitFile(log1, null, "Desc - log 1 - 1.2");
255         log1.waitStatus ("Up-to-date; 1.2");
256         
257         log2.save ("modify - log 2 - 1.2");
258         refresh (log2);
259         log2.waitStatus ("LMod; 1.1");
260         commitFile(log2, null, "Desc - log 2 - 1.2");
261         log2.waitStatus ("Up-to-date; 1.2");
262         
263         addTagFile (log1, "branchtag", true);
264         log1.save ("modify - log 1 - branch - 1.2.1.1");
265         refresh (log1);
266         log1.waitStatus ("LMod; 1.2");
267         commitFile (log1, "branchtag", "Desc - log 1 - branchtag - 1.2.2.1");
268         log1.waitStatus ("Up-to-date; 1.2.2.1");
269         log1.waitVersion("branchtag");
270     }
271     
272     public void testLogFileFull () {
273         closeAllVCSWindows();
274         log1.jcvsNode ().jCVSLog ();
275         LogDialog dia = new LogDialog ();
276         dia.runCommand();
277         dia.waitClosed();
278         log1.waitHistoryShort ("log");
279         
280         LogOutputOperator log = new LogOutputOperator (false, false, false);
281         log.dumpFile(out, "/cvsroot/test/jcvs/" + roothistoryshort);
282         
283         compareReferenceFiles();
284     }
285     
286     public void testLogFileStrict () {
287         closeAllVCSWindows();
288         log1.jcvsNode ().jCVSLog ();
289         LogDialog dia = new LogDialog ();
290         checkCheckBox (dia.cbNotRecursively());
291         checkCheckBox (dia.cbDefaultBranchOnly());
292         checkCheckBox (dia.cbNoTags());
293         checkCheckBox (dia.cbHeaderAndDescriptionOnly());
294         checkCheckBox (dia.cbHeaderOnly());
295         dia.runCommand();
296         dia.waitClosed();
297         log1.waitHistoryShort ("log -b -t -h -N -l");
298         
299         LogOutputOperator log = new LogOutputOperator (false, true, true);
300         log.dumpFile(out, "/cvsroot/test/jcvs/" + roothistoryshort);
301         
302         compareReferenceFiles();
303     }
304     
305     public void testLogDirectory () {
306         closeAllVCSWindows();
307         pac1.jcvsNode ().jCVSLog ();
308         LogDialog dia = new LogDialog ();
309         checkCheckBox (dia.cbNotRecursively());
310         dia.runCommand();
311         dia.waitClosed();
312         pac1.waitHistoryShort ("log -l");
313         
314         LogOutputOperator log = new LogOutputOperator (true, false, false);
315         log.txtContains().clearText ();
316         log.txtContains().enterText("Desc - log ");
317         log.dumpAll(out, "/cvsroot/test/jcvs/" + roothistoryshort);
318         
319         compareReferenceFiles();
320     }
321     
322     public void testLogDirectoryRecursive () {
323         closeAllVCSWindows();
324         pac1.jcvsNode ().jCVSLog ();
325         LogDialog dia = new LogDialog ();
326         dia.runCommand();
327         dia.waitClosed();
328         pac1.waitHistoryShort ("log");
329         
330         LogOutputOperator log = new LogOutputOperator (true, false, false);
331         log.txtContains().clearText ();
332         log.txtContains().enterText("Desc - log ");
333         log.dumpAll(out, "/cvsroot/test/jcvs/" + roothistoryshort);
334         
335         compareReferenceFiles();
336     }
337     
338     public void testLogRestrictions () {
339         pac1.jcvsNode ().jCVSLog ();
340         LogDialog dia = new LogDialog ();
341         checkCheckBox (dia.cbNotRecursively());
342         checkCheckBox (dia.cbDefaultBranchOnly());
343         checkCheckBox (dia.cbNoTags());
344         checkCheckBox (dia.cbHeaderAndDescriptionOnly());
345         checkCheckBox (dia.cbHeaderOnly());
346         checkCheckBox (dia.cbState());
347         dia.txtState().clearText ();
348         dia.txtState().typeText ("STATE");
349         checkCheckBox (dia.cbRevision());
350         dia.txtRevision().clearText ();
351         dia.txtRevision().typeText ("REVISION");
352         checkCheckBox (dia.cbDate());
353         dia.txtDate().clearText ();
354         dia.txtDate().typeText ("DATE");
355         checkCheckBox (dia.cbUser());
356         dia.txtUser().clearText ();
357         dia.txtUser().typeText ("USER");
358         
359         JTextFieldOperator cvsSwitches = new JTextFieldOperator (dia, "log ");
360         assertEquals ("CVS Command String", "log -b -t -h -N -l -wUSER -rREVISION -sSTATE -dDATE ", cvsSwitches.getText ());
361         dia.cancel();
362         dia.waitClosed();
363     }
364     
365     public void testStatusInit () {
366         createAddCommitFile(status1, "Java Classes|Empty");
367         status1.waitStatus ("Up-to-date; 1.1");
368         createAddCommitFile(status2, "Java Classes|Empty");
369         status2.waitStatus ("Up-to-date; 1.1");
370         
371         status1.save ("modify - status 1 - 1.2");
372         refresh (status1);
373         status1.waitStatus ("LMod; 1.1");
374         commitFile(status1, null, "Desc - status 1 - 1.2");
375         status1.waitStatus ("Up-to-date; 1.2");
376         
377         status2.save ("modify - status 2 - 1.2");
378         refresh (status2);
379         status2.waitStatus ("LMod; 1.1");
380         commitFile(status2, null, "Desc - status 2 - 1.2");
381         status2.waitStatus ("Up-to-date; 1.2");
382         
383         addTagFile (status1, "branchtag", true);
384         status1.save ("modify - status 1 - branch - 1.2.1.1");
385         refresh (status1);
386         status1.waitStatus ("LMod; 1.2");
387         commitFile (status1, "branchtag", "Desc - status 1 - branchtag - 1.2.2.1");
388         status1.waitStatus ("Up-to-date; 1.2.2.1");
389         status1.waitVersion("branchtag");
390     }
391     
392     public void testStatusFile () {
393         closeAllVCSWindows();
394         status1.jcvsNode ().jCVSStatus ();
395         StatusDialog dia = new StatusDialog ();
396         dia.runCommand();
397         dia.waitClosed();
398         status1.waitHistoryShort ("status");
399         
400         StatusOutputOperator status = new StatusOutputOperator (false);
401         status.dumpFile(out, "/cvsroot/test/jcvs/" + roothistoryshort);
402         status.btGetTags().push ();
403         waitNoEmpty (status.tabExistingTags());
404         status.dumpExistingTags(out);
405         
406         compareReferenceFiles();
407     }
408     
409     public void testStatusFileIncludeTags () {
410         closeAllVCSWindows();
411         status1.jcvsNode ().jCVSStatus ();
412         StatusDialog dia = new StatusDialog ();
413         checkCheckBox (dia.cbIncludeTagInfo());
414         dia.runCommand();
415         dia.waitClosed();
416         status1.waitHistoryShort ("status -v");
417         
418         StatusOutputOperator status = new StatusOutputOperator (false);
419         status.dumpFile(out, "/cvsroot/test/jcvs/" + roothistoryshort);
420         
421         compareReferenceFiles();
422     }
423     
424     public void testStatusDirectory () {
425         closeAllVCSWindows();
426         pac2.jcvsNode ().jCVSStatus ();
427         StatusDialog dia = new StatusDialog ();
428         checkCheckBox (dia.cbIncludeTagInfo());
429         checkCheckBox (dia.cbNotRecursively());
430         dia.runCommand();
431         dia.waitClosed();
432         pac2.waitHistoryShort ("status -v -l");
433         
434         StatusOutputOperator status = new StatusOutputOperator (true);
435         status.dumpAll(out, "/cvsroot/test/jcvs/" + roothistoryshort);
436         
437         compareReferenceFiles();
438     }
439     
440     public void testStatusDirectoryRecursive () {
441         closeAllVCSWindows();
442         pac2.jcvsNode ().jCVSStatus ();
443         StatusDialog dia = new StatusDialog ();
444         checkCheckBox (dia.cbIncludeTagInfo());
445         dia.runCommand();
446         dia.waitClosed();
447         pac2.waitHistoryShort ("status -v");
448         
449         StatusOutputOperator status = new StatusOutputOperator (true);
450         status.dumpAll(out, "/cvsroot/test/jcvs/" + roothistoryshort);
451         
452         compareReferenceFiles();
453     }
454     
455     public void testAnnotateInit () {
456         subpac3.mkdirs ();
457         refresh (root);
458         pac3.waitStatus ("Local");
459         addDirectory(pac3);
460         refresh (pac3);
461         subpac3.waitStatus ("Local");
462         addDirectory(subpac3);
463
464         anno1.save ("Commit-1.1");
465         refresh (anno1.parent ());
466         anno1.jcvsNode();
467         addFile(anno1, "Add-Desc-1.1");
468         commitFile(anno1, null, "Commit-Desc-1.1");
469         anno1.waitStatus ("Up-to-date; 1.1");
470         addTagFile(anno1, "TagName", true);
471         anno1.save ("Commit-TagName");
472         refresh (anno1.parent ());
473         anno1.waitStatus ("LMod; 1.1");
474         commitFile(anno1, "TagName", "Commit-Desc-TagName");
475         anno1.waitStatus ("Up-to-date; 1.1.2.1");
476         anno1.waitVersion ("TagName");
477
478         anno2.save ("Commit-1.1 - Line1\nCommit-1.1 - Line2\nCommit-1.1 - Line4\nCommit-1.1 - Line5\n");
479         refresh(anno2.parent ());
480         anno2.jcvsNode();
481         addFile (anno2, "InitialState");
482         commitFile (anno2, null, "Commit_1.1");
483         anno2.waitStatus ("Up-to-date; 1.1");
484         anno2.save ("Commit-1.1 - Line1\nCommit-1.1 - Line2 - Modified-1.2\nCommit-1.2 - Line3 - Added-1.2\nCommit-1.1 - Line4\nCommit-1.1 - Line5 - Modified-1.2\n");
485         commitFile (anno2, null, "Commit_1.2");
486         anno2.waitStatus ("Up-to-date; 1.2");
487         anno2.save ("Commit-1.3 - Line0 - Added-1.3\nCommit-1.1 - Line1\nCommit-1.1 - Line2 - Modified-1.2 - Modified-1.3\nCommit-1.2 - Line3 - Added-1.2\nCommit-1.1 - Line4\nCommit-1.1 - Line5 - Modified-1.2\n");
488         commitFile (anno2, null, "Commit_1.3");
489         anno2.waitStatus ("Up-to-date; 1.3");
490     }
491     
492     public void testAnnotateFileFull () {
493         closeAllVCSWindows ();
494         anno2.jcvsNode().jCVSAnnotate();
495         AnnotateDialog dia = new AnnotateDialog ();
496         dia.runCommand();
497         dia.waitClosed();
498         anno2.waitHistoryShort ("annotate");
499         
500         AnnotateOutputOperator aoo = new AnnotateOutputOperator (false);
501         aoo.dumpFile (out, roothistoryshort);
502         
503         compareReferenceFiles();
504     }
505     
506     public void testAnnotateFileStrict () {
507         AnnotateDialog dia;
508         AnnotateOutputOperator aoo;
509
510         closeAllVCSWindows ();
511         anno1.jcvsNode().jCVSAnnotate();
512         dia = new AnnotateDialog ();
513         checkCheckBox(dia.cbDate());
514         checkCheckBox(dia.cbRevisionTag());
515         dia.txtRevisionTag().typeText ("TagName");
516         checkCheckBox(dia.cbForceHead());
517         dia.runCommand();
518         dia.waitClosed();
519         dia = null;
520         anno1.waitHistoryShort ("annotate -r TagName -D -f");
521         
522         aoo = new AnnotateOutputOperator (false);
523         aoo.dumpFile (out, roothistoryshort);
524         aoo = null;
525         
526         compareReferenceFiles();
527     }
528     
529     public void testAnnotateDirectory () {
530         closeAllVCSWindows ();
531         pac3.jcvsNode().jCVSAnnotate();
532         AnnotateDialog dia = new AnnotateDialog ();
533         checkCheckBox(dia.cbNotRecursively());
534         dia.runCommand();
535         dia.waitClosed();
536         pac3.waitHistoryShort ("annotate -l");
537         
538         AnnotateOutputOperator aoo = new AnnotateOutputOperator (true);
539         aoo.dumpAll (out, roothistoryshort);
540         
541         compareReferenceFiles();
542     }
543     
544     public void testAnnotateDirectoryRecursive () {
545         closeAllVCSWindows ();
546         pac3.jcvsNode().jCVSAnnotate();
547         AnnotateDialog dia = new AnnotateDialog ();
548         dia.runCommand();
549         dia.waitClosed();
550         pac3.waitHistoryShort ("annotate");
551         
552         AnnotateOutputOperator aoo = new AnnotateOutputOperator (true);
553         aoo.dumpAll (out, roothistoryshort);
554         
555         compareReferenceFiles();
556     }
557     
558     public void testAnnotateInvalid () {
559         closeAllVCSWindows ();
560         anno1.jcvsNode().jCVSAnnotate();
561         AnnotateDialog dia = new AnnotateDialog ();
562         checkCheckBox(dia.cbDate());
563         checkCheckBox(dia.cbRevisionTag());
564         dia.txtRevisionTag().typeText ("InvalidTagName");
565         checkCheckBox(dia.cbForceHead());
566         dia.runCommand();
567         dia.waitClosed();
568         
569         NbDialogOperator d = new NbDialogOperator ("CVS Error");
570         d.close();
571         d.waitClosed ();
572     }
573     
574     public void testAnnotateForce () {
575         AnnotateDialog dia;
576         AnnotateOutputOperator aoo;
577
578         addTagFile (pac3, "NewTag", true);
579         GenericNode anno3 = new GenericNode (pac3, "anno3", ".java");
580         createAddCommitFile(anno3, "Java Classes|Empty");
581         
582         out.println ("+=== No Force ===+");
583         closeAllVCSWindows ();
584         pac3.jcvsNode().jCVSAnnotate();
585         dia = new AnnotateDialog ();
586         checkCheckBox(dia.cbRevisionTag());
587         dia.txtRevisionTag().typeText ("NewTag");
588         checkCheckBox(dia.cbForceHead());
589         dia.runCommand();
590         dia.waitClosed();
591         pac3.waitHistoryShort ("annotate -r NewTag -f");
592         
593         aoo = new AnnotateOutputOperator (true);
594         aoo.dumpAll (out, roothistoryshort);
595         
596         out.println ("+=== Force HEAD ===+");
597         closeAllVCSWindows ();
598         pac3.jcvsNode().jCVSAnnotate();
599         dia = new AnnotateDialog ();
600         checkCheckBox(dia.cbRevisionTag());
601         dia.txtRevisionTag().typeText ("NewTag");
602         dia.runCommand();
603         dia.waitClosed();
604         pac3.waitHistoryShort ("annotate -r NewTag");
605         
606         aoo = new AnnotateOutputOperator (true);
607         aoo.dumpAll (out, roothistoryshort);
608         
609         compareReferenceFiles();
610     }
611     
612     public void testDiffInit () {
613         subpac4.mkdirs ();
614         refresh (root);
615         pac4.waitStatus ("Local");
616         addDirectory(pac4);
617         refresh (pac4);
618         subpac4.waitStatus ("Local");
619         addDirectory(subpac4);
620
621         diff1.save ("Commit-1.1\nWhitespace Check\nSpace Changes Check\nCase-sensitive Check\nNewLines Check\nEnd of NewLines Check\n");
622         refresh (diff1.parent ());
623         diff1.jcvsNode();
624         addFile(diff1, "Add-Desc-1.1");
625         commitFile(diff1, null, "Commit-Desc-1.1");
626         diff1.waitStatus ("Up-to-date; 1.1");
627         diff1.save ("Commit-1.1\n Whitespace Check \nSpace Changes Check\ncASE-SENsitive Check\nNewLines Check\n\n\n\nEnd of NewLines Check\n");
628         refresh (diff1.parent ());
629         diff1.waitStatus ("LMod; 1.1");
630
631         diff2.save ("Commit-1.1 - Line1\nCommit-1.1 - Line2\nCommit-1.1 - Line4\nCommit-1.1 - Line5\n");
632         refresh(diff2.parent ());
633         diff2.jcvsNode();
634         addFile (diff2, "InitialState");
635         commitFile (diff2, null, "Commit_1.1");
636         diff2.waitStatus ("Up-to-date; 1.1");
637         diff2.save ("Commit-1.1 - Line1\nCommit-1.1 - Line2 - Modified-1.2\nCommit-1.2 - Line3 - Added-1.2\nCommit-1.1 - Line4\nCommit-1.1 - Line5 - Modified-1.2\n");
638         commitFile (diff2, null, "Commit_1.2");
639         diff2.waitStatus ("Up-to-date; 1.2");
640         diff2.save ("Commit-1.3 - Line0 - Added-1.3\nCommit-1.1 - Line1\nCommit-1.1 - Line2 - Modified-1.2 - Modified-1.3\nCommit-1.2 - Line3 - Added-1.2\nCommit-1.1 - Line4\nCommit-1.1 - Line5 - Modified-1.2\n");
641         commitFile (diff2, null, "Commit_1.3");
642         diff2.waitStatus ("Up-to-date; 1.3");
643     }
644
645     public void dumpDiffGraphical (GenericNode node) {
646         TopComponentOperator tco = new TopComponentOperator ("Diff " + node.filename(0));
647         out.println ("==== Diff: " + node.filename(0));
648         try {
649             dumpDiffGraphical (tco);
650         } finally {
651             tco.close();
652             waitIsShowing(tco.getSource());
653         }
654     }
655     
656     public void dumpDiffTextual (GenericNode node, String JavaDoc command) {
657         VCSCommandsOutputOperator coo = new VCSCommandsOutputOperator ("Diff");
658         out.println ("==== Diff: " + node.filename(0));
659         waitNoEmpty(coo.txtStandardOutput());
660         String JavaDoc txt = coo.txtStandardOutput ().getText ();
661         info.println ("==== Diff: " + node.filename(0));
662         info.println (txt);
663         StringFilter sf = new StringFilter ();
664         sf.addReplaceAllFilter("/cvsroot/test/jcvs/" + roothistoryshort, "<REPOSITORY_PREFIX>");
665         sf.addReplaceFilter("*** " + node.history (), "", "*** " + node.history () + "<FILTERED>");
666         sf.addReplaceFilter("--- " + node.history (), "", "--- " + node.history () + "<FILTERED>");
667         sf.addReplaceFilter("+++ " + node.history (), "", "+++ " + node.history () + "<FILTERED>");
668         printFiltered(txt, sf);
669     }
670     
671     public void testDiffFile1Revision () {
672         DiffDialog dia;
673         
674         diff2.jcvsNode ().jCVSDiff();
675         dia = new DiffDialog ();
676         dia.txtRevision1().typeText ("1.1");
677         dia.runCommand(); dia.waitClosed (); dia = null;
678         diff2.waitHistoryShort ("diff -r 1.1");
679         out.println ("==== 1 revision ====");
680         dumpDiffGraphical (diff2);
681         
682         compareReferenceFiles();
683     }
684     
685     public void testDiffFile2Revisions () {
686         DiffDialog dia;
687         
688         diff2.jcvsNode ().jCVSDiff();
689         dia = new DiffDialog ();
690         dia.txtRevision1().typeText ("1.1");
691         dia.txtRevision2().typeText ("1.2");
692         dia.runCommand(); dia.waitClosed (); dia = null;
693         diff2.waitHistoryShort ("diff -r 1.1 -r 1.2");
694         out.println ("==== 2 revisions ====");
695         dumpDiffGraphical (diff2);
696         
697         compareReferenceFiles();
698     }
699     
700     public void testDiffFileIgnore () {
701         DiffDialog dia;
702         
703         diff1.jcvsNode ().jCVSDiff();
704         dia = new DiffDialog ();
705         checkCheckBox (dia.cbIgnoreAllWhitespace());
706         dia.runCommand(); dia.waitClosed (); dia = null;
707         diff1.waitHistoryShort ("diff -w");
708         out.println ("==== cbIgnoneAllWhitespace ====");
709         dumpDiffGraphical (diff1);
710         
711         diff1.jcvsNode ().jCVSDiff();
712         dia = new DiffDialog ();
713         checkCheckBox (dia.cbIgnoreBlankLines());
714         dia.runCommand(); dia.waitClosed (); dia = null;
715         diff1.waitHistoryShort ("diff -B");
716         out.println ("==== cbIgnoreBlankLines ====");
717         dumpDiffGraphical (diff1);
718         
719         diff1.jcvsNode ().jCVSDiff();
720         dia = new DiffDialog ();
721         checkCheckBox (dia.cbIgnoreCase());
722         dia.runCommand(); dia.waitClosed (); dia = null;
723         diff1.waitHistoryShort ("diff -i");
724         out.println ("==== cbIgnoreCase ====");
725         dumpDiffGraphical (diff1);
726         
727         diff1.jcvsNode ().jCVSDiff();
728         dia = new DiffDialog ();
729         checkCheckBox (dia.cbIgnoreSpaceChanges());
730         dia.runCommand(); dia.waitClosed (); dia = null;
731         diff1.waitHistoryShort ("diff -b");
732         out.println ("==== cbIgnoreSpaceChanges ====");
733         dumpDiffGraphical (diff1);
734         
735         diff1.jcvsNode ().jCVSDiff();
736         dia = new DiffDialog ();
737         checkCheckBox (dia.cbIgnoreAllWhitespace());
738         checkCheckBox (dia.cbIgnoreBlankLines());
739         checkCheckBox (dia.cbIgnoreCase());
740         checkCheckBox (dia.cbIgnoreSpaceChanges());
741         dia.runCommand(); dia.waitClosed (); dia = null;
742         out.println ("==== Ignore All ====");
743         assertInformationDialog("Diff showed no difference on the following file:");
744         diff1.waitHistoryShort ("diff -w -B -i -b");
745         
746         compareReferenceFiles();
747     }
748     
749     public void testDiffFileFormat () {
750         DiffDialog dia;
751         
752         closeAllVCSWindows();
753         diff1.jcvsNode ().jCVSDiff();
754         dia = new DiffDialog ();
755         checkCheckBox (dia.cbContextOutput());
756         dia.runCommand(); dia.waitClosed (); dia = null;
757         out.println ("==== cbContextOutput ====");
758         dumpDiffTextual (diff1, "diff -c");
759         
760         closeAllVCSWindows();
761         diff1.jcvsNode ().jCVSDiff();
762         dia = new DiffDialog ();
763         checkCheckBox (dia.cbUnifiedOutput());
764         dia.runCommand(); dia.waitClosed (); dia = null;
765         out.println ("==== cbUnifiedOutput ====");
766         dumpDiffTextual (diff1, "diff -u");
767         
768         compareReferenceFiles();
769     }
770     
771     public void testDiffDirectory () {
772         DiffDialog dia;
773         
774         closeAllVCSWindows();
775         pac4.jcvsNode ().jCVSDiff();
776         dia = new DiffDialog ();
777         dia.runCommand(); dia.waitClosed (); dia = null;
778         out.println ("==== Recursively ====");
779         dumpDiffTextual (pac4, "diff");
780         
781         closeAllVCSWindows();
782         pac4.jcvsNode ().jCVSDiff();
783         dia = new DiffDialog ();
784         checkCheckBox (dia.cbNotRecursively());
785         dia.runCommand(); dia.waitClosed (); dia = null;
786         out.println ("==== NOT Recursively ====");
787         dumpDiffTextual (pac4, "diff -l");
788         
789         compareReferenceFiles();
790     }
791     
792     public void testUnmount() {
793         new FilesystemNode(exp.repositoryTab().tree(), root.node ()).unmount();
794         new Node (exp.repositoryTab ().tree (), "").waitChildNotPresent(root.node ());
795     }
796     
797 }
798
Popular Tags