001: /*
002: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003: *
004: * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
005: *
006: * The contents of this file are subject to the terms of either the GNU
007: * General Public License Version 2 only ("GPL") or the Common
008: * Development and Distribution License("CDDL") (collectively, the
009: * "License"). You may not use this file except in compliance with the
010: * License. You can obtain a copy of the License at
011: * http://www.netbeans.org/cddl-gplv2.html
012: * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
013: * specific language governing permissions and limitations under the
014: * License. When distributing the software, include this License Header
015: * Notice in each file and include the License file at
016: * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
017: * particular file as subject to the "Classpath" exception as provided
018: * by Sun in the GPL Version 2 section of the License file that
019: * accompanied this code. If applicable, add the following below the
020: * License Header, with the fields enclosed by brackets [] replaced by
021: * your own identifying information:
022: * "Portions Copyrighted [year] [name of copyright owner]"
023: *
024: * Contributor(s):
025: *
026: * The Original Software is NetBeans. The Initial Developer of the Original
027: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
028: * Microsystems, Inc. All Rights Reserved.
029: *
030: * If you wish your version of this file to be governed by only the CDDL
031: * or only the GPL Version 2, indicate your decision by adding
032: * "[Contributor] elects to include this software in this distribution
033: * under the [CDDL or GPL Version 2] license." If you do not indicate a
034: * single choice of license, a recipient has the option to distribute
035: * your version of this file under either the CDDL, the GPL Version 2 or
036: * to extend the choice of license to its licensees as provided above.
037: * However, if you add GPL Version 2 code and therefore, elected the GPL
038: * Version 2 license, then the option applies only if the new code is
039: * made subject to such option by the copyright holder.
040: */
041:
042: package org.netbeans.test.cvsmodule;
043:
044: import java.io.File;
045: import java.io.InputStream;
046: import junit.textui.TestRunner;
047: import org.netbeans.jellytools.JellyTestCase;
048: import org.netbeans.jellytools.OutputOperator;
049: import org.netbeans.jellytools.OutputTabOperator;
050: import org.netbeans.jellytools.ProjectsTabOperator;
051: import org.netbeans.jellytools.modules.javacvs.BrowseRepositoryFolderOperator;
052: import org.netbeans.jellytools.modules.javacvs.CVSRootStepOperator;
053: import org.netbeans.jellytools.modules.javacvs.EditCVSRootOperator;
054: import org.netbeans.jellytools.modules.javacvs.FolderToImportStepOperator;
055: import org.netbeans.jellytools.modules.javacvs.ImportWizardOperator;
056: import org.netbeans.jellytools.nodes.Node;
057: import org.netbeans.jemmy.TimeoutExpiredException;
058: import org.netbeans.jemmy.operators.JButtonOperator;
059: import org.netbeans.jemmy.operators.JCheckBoxOperator;
060: import org.netbeans.jemmy.operators.JComboBoxOperator;
061: import org.netbeans.jemmy.operators.JFileChooserOperator;
062: import org.netbeans.jemmy.operators.JLabelOperator;
063: import org.netbeans.jemmy.operators.JPasswordFieldOperator;
064: import org.netbeans.jemmy.operators.JProgressBarOperator;
065: import org.netbeans.jemmy.operators.JRadioButtonOperator;
066: import org.netbeans.jemmy.operators.JTextFieldOperator;
067: import org.netbeans.jemmy.operators.Operator;
068: import org.netbeans.jemmy.operators.Operator.DefaultStringComparator;
069: import org.netbeans.junit.NbTestSuite;
070:
071: /**
072: *
073: * @author peter
074: */
075: public class ImportWizardTest extends JellyTestCase {
076:
077: String os_name;
078: File file;
079: static String sessionCVSroot;
080: final String projectName = "ForImport";
081: final String pathToMain = "forimport|Main.java";
082: final String PROTOCOL_FOLDER = "protocol";
083: Operator.DefaultStringComparator comOperator;
084: Operator.DefaultStringComparator oldOperator;
085:
086: /**
087: * @param args the command line arguments
088: */
089: public static void main(String[] args) {
090: // TODO code application logic here
091:
092: TestRunner.run(suite());
093: }
094:
095: public static NbTestSuite suite() {
096:
097: NbTestSuite suite = new NbTestSuite();
098: suite.addTest(new ImportWizardTest("prepareProject"));
099: suite
100: .addTest(new ImportWizardTest(
101: "testImportWizardPserverUI"));
102: suite.addTest(new ImportWizardTest("testImportWizardLocalUI"));
103: suite.addTest(new ImportWizardTest("testImportWizardForkUI"));
104: suite.addTest(new ImportWizardTest("testImportWizardExtUI"));
105: suite.addTest(new ImportWizardTest("testImportWizardExt"));
106: suite.addTest(new ImportWizardTest("testImportWizardLocal"));
107: suite.addTest(new ImportWizardTest("testImportWizardFork"));
108: suite.addTest(new ImportWizardTest("testImportWizardPserver"));
109: suite.addTest(new ImportWizardTest(
110: "testImportWizardLoginSuccess"));
111: suite.addTest(new ImportWizardTest(
112: "testImportWizardSecondStepUI"));
113: suite.addTest(new ImportWizardTest("testImportWizardFinish"));
114: suite.addTest(new ImportWizardTest("removeAllData"));
115: //debug
116: //suite.addTest(new ImportWizardTest("prepareProject"));
117:
118: //suite.addTest(new ImportWizardTest("removeAllData"));
119: return suite;
120: }
121:
122: protected void setUp() throws Exception {
123:
124: os_name = System.getProperty("os.name");
125: //System.out.println(os_name);
126: System.out.println("### " + getName() + " ###");
127:
128: }
129:
130: protected boolean isUnix() {
131: boolean unix = false;
132: if (os_name.indexOf("Windows") == -1) {
133: unix = true;
134: }
135: return unix;
136: }
137:
138: /** Creates a new instance of ImportWizardTest */
139: public ImportWizardTest(String name) {
140: super (name);
141: }
142:
143: public void testImportWizardPserverUI() {
144: //JemmyProperties.setCurrentTimeout("ComponentOperator.WaitComponentTimeout", 36000);
145: //JemmyProperties.setCurrentTimeout("DialogWaiter.WaitDialogTimeout", 36000);
146: new ProjectsTabOperator().tree().clearSelection();
147: comOperator = new Operator.DefaultStringComparator(true, true);
148: oldOperator = (DefaultStringComparator) Operator
149: .getDefaultStringComparator();
150: Node node = new ProjectsTabOperator()
151: .getProjectRootNode(projectName);
152: Operator.setDefaultStringComparator(comOperator);
153: ImportWizardOperator iwo = ImportWizardOperator.invoke(node);
154: Operator.setDefaultStringComparator(oldOperator);
155:
156: CVSRootStepOperator crso = new CVSRootStepOperator();
157: crso.setCVSRoot(":local:/cvs");
158: //Invalid CVS Root
159: crso.setCVSRoot(":pserver:test");
160: try {
161: JLabelOperator inv = new JLabelOperator(crso,
162: "Invalid CVS Root");
163: } catch (TimeoutExpiredException e) {
164: throw e;
165: }
166:
167: crso.setCVSRoot(":pserver:test@localhost:2401/cvs");
168: //start test UI
169:
170: //combobox
171: try {
172: JComboBoxOperator combo = new JComboBoxOperator(crso);
173: JPasswordFieldOperator passwd = new JPasswordFieldOperator(
174: crso);
175: JButtonOperator btnEdit = new JButtonOperator(crso,
176: "Edit...");
177: JButtonOperator btnProxy = new JButtonOperator(crso,
178: "Proxy Configuration...");
179: JButtonOperator btnBack = new JButtonOperator(crso,
180: "< Back");
181: JButtonOperator btnNext = new JButtonOperator(crso,
182: "Next >");
183: JButtonOperator btnFinish = new JButtonOperator(crso,
184: "Finish");
185: JButtonOperator btnCancel = new JButtonOperator(crso,
186: "Cancel");
187: JButtonOperator btnHelp = new JButtonOperator(crso, "Help");
188: } catch (TimeoutExpiredException e) {
189: throw e;
190: }
191: //end test UI
192: iwo.cancel();
193: }
194:
195: public void testImportWizardLocalUI() {
196: //JemmyProperties.setCurrentTimeout("ComponentOperator.WaitComponentTimeout", 36000);
197: //JemmyProperties.setCurrentTimeout("DialogWaiter.WaitDialogTimeout", 36000);
198: new ProjectsTabOperator().tree().clearSelection();
199: comOperator = new Operator.DefaultStringComparator(true, true);
200: oldOperator = (DefaultStringComparator) Operator
201: .getDefaultStringComparator();
202: Node node = new ProjectsTabOperator()
203: .getProjectRootNode(projectName);
204: Operator.setDefaultStringComparator(comOperator);
205: ImportWizardOperator iwo = ImportWizardOperator.invoke(node);
206: Operator.setDefaultStringComparator(oldOperator);
207: CVSRootStepOperator crso = new CVSRootStepOperator();
208: crso.setCVSRoot(":local:/cvs");
209: //Invalid CVS Root
210: crso.setCVSRoot(":loca:");
211: try {
212: JLabelOperator inv = new JLabelOperator(crso,
213: "Only :pserver:, :local:, :ext: and :fork: connection methods supported");
214: } catch (TimeoutExpiredException e) {
215: throw e;
216: }
217: crso.setCVSRoot(":local:/cvs");
218: Exception ex;
219: //start test UI
220: //combobox
221: try {
222: JComboBoxOperator combo = new JComboBoxOperator(crso);
223: //JPasswordFieldOperator passwd = new JPasswordFieldOperator(crso);
224: JButtonOperator btnEdit = new JButtonOperator(crso,
225: "Edit...");
226: JButtonOperator btnBack = new JButtonOperator(crso,
227: "< Back");
228: JButtonOperator btnNext = new JButtonOperator(crso,
229: "Next >");
230: JButtonOperator btnFinish = new JButtonOperator(crso,
231: "Finish");
232: JButtonOperator btnCancel = new JButtonOperator(crso,
233: "Cancel");
234: JButtonOperator btnHelp = new JButtonOperator(crso, "Help");
235: } catch (TimeoutExpiredException e) {
236: throw e;
237: }
238: //end test UI
239:
240: iwo.cancel();
241: }
242:
243: public void testImportWizardForkUI() {
244: //JemmyProperties.setCurrentTimeout("ComponentOperator.WaitComponentTimeout", 36000);
245: //JemmyProperties.setCurrentTimeout("DialogWaiter.WaitDialogTimeout", 36000);
246: new ProjectsTabOperator().tree().clearSelection();
247: comOperator = new Operator.DefaultStringComparator(true, true);
248: oldOperator = (DefaultStringComparator) Operator
249: .getDefaultStringComparator();
250: Node node = new ProjectsTabOperator()
251: .getProjectRootNode(projectName);
252: Operator.setDefaultStringComparator(comOperator);
253: ImportWizardOperator iwo = ImportWizardOperator.invoke(node);
254: Operator.setDefaultStringComparator(oldOperator);
255: CVSRootStepOperator crso = new CVSRootStepOperator();
256: crso.setCVSRoot(":fork:/cvs");
257: //Invalid CVS Root
258: crso.setCVSRoot(":for:");
259: try {
260: JLabelOperator inv = new JLabelOperator(crso,
261: "Only :pserver:, :local:, :ext: and :fork: connection methods supported");
262: assertNotNull(inv);
263: } catch (TimeoutExpiredException e) {
264: throw e;
265: }
266:
267: crso.setCVSRoot(":fork:/cvs");
268: //start test UI
269:
270: try {
271: JComboBoxOperator combo = new JComboBoxOperator(crso);
272: //JPasswordFieldOperator passwd = new JPasswordFieldOperator(crso);
273: JButtonOperator btnEdit = new JButtonOperator(crso,
274: "Edit...");
275: JButtonOperator btnBack = new JButtonOperator(crso,
276: "< Back");
277: JButtonOperator btnNext = new JButtonOperator(crso,
278: "Next >");
279: JButtonOperator btnFinish = new JButtonOperator(crso,
280: "Finish");
281: JButtonOperator btnCancel = new JButtonOperator(crso,
282: "Cancel");
283: JButtonOperator btnHelp = new JButtonOperator(crso, "Help");
284: } catch (TimeoutExpiredException e) {
285: throw e;
286: }
287: //end test UI
288:
289: iwo.cancel();
290: }
291:
292: public void testImportWizardExtUI() {
293: //JemmyProperties.setCurrentTimeout("ComponentOperator.WaitComponentTimeout", 36000);
294: //JemmyProperties.setCurrentTimeout("DialogWaiter.WaitDialogTimeout", 36000);
295: new ProjectsTabOperator().tree().clearSelection();
296: comOperator = new Operator.DefaultStringComparator(true, true);
297: oldOperator = (DefaultStringComparator) Operator
298: .getDefaultStringComparator();
299: Node node = new ProjectsTabOperator()
300: .getProjectRootNode(projectName);
301: Operator.setDefaultStringComparator(comOperator);
302: ImportWizardOperator iwo = ImportWizardOperator.invoke(node);
303: Operator.setDefaultStringComparator(oldOperator);
304: CVSRootStepOperator crso = new CVSRootStepOperator();
305: crso.setCVSRoot(":ext:test@localhost:2401/cvs");
306: //Invalid CVS Root
307: crso.setCVSRoot(":ext:test");
308: try {
309: JLabelOperator inv = new JLabelOperator(crso,
310: "Invalid CVS Root");
311: } catch (TimeoutExpiredException e) {
312: throw e;
313: }
314:
315: crso.setCVSRoot(":ext:test@localhost:2401/cvs");
316: //start test UI
317: try {
318: JComboBoxOperator combo = new JComboBoxOperator(crso);
319: JPasswordFieldOperator passwd = new JPasswordFieldOperator(
320: crso);
321: JButtonOperator btnEdit = new JButtonOperator(crso,
322: "Edit...");
323: JButtonOperator btnProxy = new JButtonOperator(crso,
324: "Proxy Configuration...");
325: JRadioButtonOperator internal = new JRadioButtonOperator(
326: crso, "Use Internal SSH");
327: JRadioButtonOperator external = new JRadioButtonOperator(
328: crso, "Use External Shell");
329: JCheckBoxOperator remeber = new JCheckBoxOperator(crso,
330: "Remember Password");
331: JTextFieldOperator sshCommand = new JTextFieldOperator(crso);
332: JButtonOperator btnBack = new JButtonOperator(crso,
333: "< Back");
334: JButtonOperator btnNext = new JButtonOperator(crso,
335: "Next >");
336: JButtonOperator btnFinish = new JButtonOperator(crso,
337: "Finish");
338: JButtonOperator btnCancel = new JButtonOperator(crso,
339: "Cancel");
340: JButtonOperator btnHelp = new JButtonOperator(crso, "Help");
341: } catch (TimeoutExpiredException e) {
342: throw e;
343: }
344: //end test UI
345: System.setProperty("netbeans.t9y.cvs.connection.CVSROOT", "");
346: iwo.cancel();
347: }
348:
349: public void testImportWizardLoginSuccess() throws Exception {
350: //JemmyProperties.setCurrentTimeout("ComponentOperator.WaitComponentTimeout", 36000);
351: //JemmyProperties.setCurrentTimeout("DialogWaiter.WaitDialogTimeout", 36000);
352: new ProjectsTabOperator().tree().clearSelection();
353: comOperator = new Operator.DefaultStringComparator(true, true);
354: oldOperator = (DefaultStringComparator) Operator
355: .getDefaultStringComparator();
356: Node node = new ProjectsTabOperator()
357: .getProjectRootNode(projectName);
358: Operator.setDefaultStringComparator(comOperator);
359: ImportWizardOperator iwo = ImportWizardOperator.invoke(node);
360: Operator.setDefaultStringComparator(oldOperator);
361: final CVSRootStepOperator crso = new CVSRootStepOperator();
362: crso.setCVSRoot(":pserver:test@localhost:/cvs");
363: //crso.setPassword("test");
364:
365: //prepare stream for successful authentification and run PseudoCVSServer
366: InputStream in = TestKit.getStream(getDataDir()
367: .getCanonicalFile().toString()
368: + File.separator + PROTOCOL_FOLDER, "authorized.in");
369: if (in == null) {
370: System.err.println(getClass().getProtectionDomain()
371: .getCodeSource().getLocation().toExternalForm());
372: in.markSupported();
373: }
374: PseudoCvsServer cvss = new PseudoCvsServer(in);
375: new Thread(cvss).start();
376: cvss.ignoreProbe();
377: crso.setCVSRoot(cvss.getCvsRoot());
378:
379: crso.next();
380:
381: //Wizard proceeded to 2nd step.
382: FolderToImportStepOperator folderToImportOper = new FolderToImportStepOperator();
383: cvss.stop();
384: in.close();
385: System.setProperty("netbeans.t9y.cvs.connection.CVSROOT", "");
386: iwo.cancel();
387: }
388:
389: public void testImportWizardExt() {
390: //JemmyProperties.setCurrentTimeout("ComponentOperator.WaitComponentTimeout", 36000);
391: //JemmyProperties.setCurrentTimeout("DialogWaiter.WaitDialogTimeout", 36000);
392: new ProjectsTabOperator().tree().clearSelection();
393: comOperator = new Operator.DefaultStringComparator(true, true);
394: oldOperator = (DefaultStringComparator) Operator
395: .getDefaultStringComparator();
396: Node node = new ProjectsTabOperator()
397: .getProjectRootNode(projectName);
398: Operator.setDefaultStringComparator(comOperator);
399: ImportWizardOperator iwo = ImportWizardOperator.invoke(node);
400: Operator.setDefaultStringComparator(oldOperator);
401: CVSRootStepOperator crso = new CVSRootStepOperator();
402: crso.setCVSRoot(":ext:test@localhost:2401/cvs");
403: crso.rbUseInternalSSH().push();
404: crso.setPassword("test");
405: crso.cbRememberPassword().push();
406: crso.cbRememberPassword().push();
407: crso.rbUseExternalShell().push();
408: crso.setSSHCommand("plink.exe -l user -i private_key.ppk");
409: EditCVSRootOperator editOperator = crso.edit();
410: assertEquals("Wrong access method in Edit CVSRoot dialog",
411: "ext", editOperator.getAccessMethod());
412: assertEquals("Wrong username Edit CVSRoot dialog", "test",
413: editOperator.getUser());
414: assertEquals("Wrong hostname in Edit CVSRoot dialog",
415: "localhost", editOperator.getHost());
416: assertEquals("Wrong port Edit CVSRoot dialog", "2401",
417: editOperator.getPort());
418: assertEquals("Wrong repository path Edit CVSRoot dialog",
419: "/cvs", editOperator.getRepositoryPath());
420:
421: //change values in EditCVSRoot dialog but cancel it
422: editOperator.selectAccessMethod(editOperator.ITEM_EXT);
423: editOperator.setRepositoryPath("/cvs/repo");
424: editOperator.setHost("127.0.0.1");
425: editOperator.setUser("user");
426: editOperator.setPort("8080");
427: editOperator.cancel();
428: assertEquals("Values are propagated, but Cancel was push",
429: ":ext:test@localhost:2401/cvs", crso.getCVSRoot());
430:
431: //change values in EditCVSRoot dialog
432: editOperator = crso.edit();
433: editOperator.selectAccessMethod(editOperator.ITEM_EXT);
434: editOperator.setRepositoryPath("/cvs/repo");
435: editOperator.setHost("127.0.0.1");
436: editOperator.setUser("user");
437: editOperator.setPort("8080");
438: editOperator.ok();
439: assertEquals("Values are not propagated correctly",
440: ":ext:user@127.0.0.1:8080/cvs/repo", crso.getCVSRoot());
441: crso.cancel();
442: }
443:
444: public void testImportWizardLocal() {
445: //JemmyProperties.setCurrentTimeout("ComponentOperator.WaitComponentTimeout", 36000);
446: //JemmyProperties.setCurrentTimeout("DialogWaiter.WaitDialogTimeout", 36000);
447: new ProjectsTabOperator().tree().clearSelection();
448: comOperator = new Operator.DefaultStringComparator(true, true);
449: oldOperator = (DefaultStringComparator) Operator
450: .getDefaultStringComparator();
451: Node node = new ProjectsTabOperator()
452: .getProjectRootNode(projectName);
453: Operator.setDefaultStringComparator(comOperator);
454: ImportWizardOperator iwo = ImportWizardOperator.invoke(node);
455: Operator.setDefaultStringComparator(oldOperator);
456: CVSRootStepOperator crso = new CVSRootStepOperator();
457: crso.setCVSRoot(":local:/cvs");
458:
459: EditCVSRootOperator editOperator = crso.edit();
460: assertEquals("Wrong access method in Edit CVSRoot dialog",
461: "local", editOperator.getAccessMethod());
462: assertEquals("Wrong repository path in Edit CVSRoot dialog",
463: "/cvs", editOperator.getRepositoryPath());
464:
465: //change values in EditCVSRoot dialog but cancel it
466: editOperator.setRepositoryPath("/cvs/repo");
467: editOperator.cancel();
468: assertEquals("Values are propagated, but Cancel was push",
469: ":local:/cvs", crso.getCVSRoot());
470:
471: //change values in EditCVSRoot dialog
472: editOperator = crso.edit();
473: editOperator.setRepositoryPath("/cvs/repo");
474: editOperator.ok();
475: assertEquals("Values are propagated, but Cancel was push",
476: ":local:/cvs/repo", crso.getCVSRoot());
477: crso.cancel();
478: }
479:
480: public void testImportWizardFork() {
481: //JemmyProperties.setCurrentTimeout("ComponentOperator.WaitComponentTimeout", 36000);
482: //JemmyProperties.setCurrentTimeout("DialogWaiter.WaitDialogTimeout", 36000);
483: new ProjectsTabOperator().tree().clearSelection();
484: comOperator = new Operator.DefaultStringComparator(true, true);
485: oldOperator = (DefaultStringComparator) Operator
486: .getDefaultStringComparator();
487: Node node = new ProjectsTabOperator()
488: .getProjectRootNode(projectName);
489: Operator.setDefaultStringComparator(comOperator);
490: ImportWizardOperator iwo = ImportWizardOperator.invoke(node);
491: Operator.setDefaultStringComparator(oldOperator);
492: CVSRootStepOperator crso = new CVSRootStepOperator();
493: crso.setCVSRoot(":fork:/cvs");
494:
495: EditCVSRootOperator editOperator = crso.edit();
496: assertEquals("Wrong access method in Edit CVSRoot dialog",
497: "fork", editOperator.getAccessMethod());
498: assertEquals("Wrong repository path in Edit CVSRoot dialog",
499: "/cvs", editOperator.getRepositoryPath());
500:
501: //change values in EditCVSRoot dialog but cancel it
502: editOperator.setRepositoryPath("/cvs/repo");
503: editOperator.cancel();
504: assertEquals("Values are propagated, but Cancel was push",
505: ":fork:/cvs", crso.getCVSRoot());
506:
507: //change values in EditCVSRoot dialog
508: editOperator = crso.edit();
509: editOperator.setRepositoryPath("/cvs/repo");
510: editOperator.ok();
511: assertEquals("Values are propagated, but Cancel was push",
512: ":fork:/cvs/repo", crso.getCVSRoot());
513: crso.cancel();
514: }
515:
516: public void testImportWizardPserver() {
517: //JemmyProperties.setCurrentTimeout("ComponentOperator.WaitComponentTimeout", 36000);
518: //JemmyProperties.setCurrentTimeout("DialogWaiter.WaitDialogTimeout", 36000);
519: new ProjectsTabOperator().tree().clearSelection();
520: comOperator = new Operator.DefaultStringComparator(true, true);
521: oldOperator = (DefaultStringComparator) Operator
522: .getDefaultStringComparator();
523: Node node = new ProjectsTabOperator()
524: .getProjectRootNode(projectName);
525: Operator.setDefaultStringComparator(comOperator);
526: ImportWizardOperator iwo = ImportWizardOperator.invoke(node);
527: Operator.setDefaultStringComparator(oldOperator);
528: CVSRootStepOperator crso = new CVSRootStepOperator();
529:
530: crso.setCVSRoot(":pserver:test@localhost:2401/cvs");
531: crso.setPassword("test");
532:
533: //crso.cbRememberPassword().setSelected(true);
534: //crso.cbRememberPassword().setSelected(false);
535: EditCVSRootOperator editOperator = crso.edit();
536: assertEquals("Wrong access method in Edit CVSRoot dialog",
537: "pserver", editOperator.getAccessMethod());
538: assertEquals("Wrong username Edit CVSRoot dialog", "test",
539: editOperator.getUser());
540: assertEquals("Wrong hostname in Edit CVSRoot dialog",
541: "localhost", editOperator.getHost());
542: assertEquals("Wrong port Edit CVSRoot dialog", "2401",
543: editOperator.getPort());
544: assertEquals("Wrong repository path Edit CVSRoot dialog",
545: "/cvs", editOperator.getRepositoryPath());
546:
547: //change values in EditCVSRoot dialog but cancel it
548: editOperator.selectAccessMethod(editOperator.ITEM_PSERVER);
549: editOperator.setRepositoryPath("/cvs/repo");
550: editOperator.setHost("127.0.0.1");
551: editOperator.setUser("user");
552: editOperator.setPort("8080");
553: editOperator.cancel();
554: assertEquals("Values are propagated, but Cancel was push",
555: ":pserver:test@localhost:2401/cvs", crso.getCVSRoot());
556:
557: //change values in EditCVSRoot dialog
558: editOperator = crso.edit();
559: editOperator.selectAccessMethod(editOperator.ITEM_PSERVER);
560: editOperator.setRepositoryPath("/cvs/repo");
561: editOperator.setHost("127.0.0.1");
562: editOperator.setUser("user");
563: editOperator.setPort("8080");
564: editOperator.ok();
565: assertEquals("Values are not propagated correctly",
566: ":pserver:user@127.0.0.1:8080/cvs/repo", crso
567: .getCVSRoot());
568: crso.cancel();
569: System.setProperty("netbeans.t9y.cvs.connection.CVSROOT", "");
570: }
571:
572: public void testImportWizardSecondStepUI() throws Exception {
573: //JemmyProperties.setCurrentTimeout("ComponentOperator.WaitComponentTimeout", 36000);
574: //JemmyProperties.setCurrentTimeout("DialogWaiter.WaitDialogTimeout", 36000);
575: //JemmyProperties.setCurrentTimeout("ComponentOperator.WaitComponentTimeout", 3000);
576: new ProjectsTabOperator().tree().clearSelection();
577: comOperator = new Operator.DefaultStringComparator(true, true);
578: oldOperator = (DefaultStringComparator) Operator
579: .getDefaultStringComparator();
580: Node node = new ProjectsTabOperator()
581: .getProjectRootNode(projectName);
582: Operator.setDefaultStringComparator(comOperator);
583: ImportWizardOperator iwo = ImportWizardOperator.invoke(node);
584: Operator.setDefaultStringComparator(oldOperator);
585: final CVSRootStepOperator crso = new CVSRootStepOperator();
586: crso.setCVSRoot(":pserver:test@localhost:/cvs");
587: //crso.setPassword("test");
588:
589: //prepare stream for successful authentification and run PseudoCVSServer
590: InputStream in = TestKit.getStream(getDataDir()
591: .getCanonicalFile().toString()
592: + File.separator + PROTOCOL_FOLDER, "authorized.in");
593: if (in == null) {
594: System.err.println(getClass().getProtectionDomain()
595: .getCodeSource().getLocation().toExternalForm());
596: in.markSupported();
597: }
598: PseudoCvsServer cvss = new PseudoCvsServer(in);
599: new Thread(cvss).start();
600: cvss.ignoreProbe();
601: crso.setCVSRoot(cvss.getCvsRoot());
602: System.setProperty("netbeans.t9y.cvs.connection.CVSROOT", cvss
603: .getCvsRoot());
604: crso.next();
605:
606: //Wizard proceeded to 2nd step.
607:
608: FolderToImportStepOperator folderToImportOper = new FolderToImportStepOperator();
609: cvss.stop();
610: in.close();
611: folderToImportOper.setFolderToImport(getWorkDirPath());
612: JFileChooserOperator browseFolder = folderToImportOper
613: .browseFolderToImport();
614: assertEquals(
615: "Directory set in wizard not propagated to file chooser:",
616: getWorkDir().getAbsolutePath(), browseFolder
617: .getCurrentDirectory().getAbsolutePath()); // NOI18N
618: browseFolder.cancel();
619: folderToImportOper.setImportMessage("Import message"); //NOI18N
620:
621: in = TestKit.getStream(getDataDir().getCanonicalFile()
622: .toString()
623: + File.separator + PROTOCOL_FOLDER,
624: "repository_browsing.in");
625: cvss = new PseudoCvsServer(in);
626: new Thread(cvss).start();
627: String CVSroot = cvss.getCvsRoot();
628: System.setProperty("netbeans.t9y.cvs.connection.CVSROOT",
629: CVSroot);
630:
631: folderToImportOper.setRepositoryFolder("folder");
632: BrowseRepositoryFolderOperator browseRepositoryOper = folderToImportOper
633: .browseRepositoryFolder();
634: browseRepositoryOper.selectFolder(""); // NOI18N
635: browseRepositoryOper.ok();
636: folderToImportOper.checkCheckoutAfterImport(false);
637: iwo.cancel();
638: cvss.stop();
639: System.setProperty("netbeans.t9y.cvs.connection.CVSROOT", "");
640: }
641:
642: public void testImportWizardFinish() throws Exception {
643: //JemmyProperties.setCurrentTimeout("ComponentOperator.WaitComponentTimeout", 36000);
644: //JemmyProperties.setCurrentTimeout("DialogWaiter.WaitDialogTimeout", 36000);
645: String CVSroot;
646: PseudoCvsServer cvss;
647: OutputOperator oo = OutputOperator.invoke();
648: TestKit.unversionProject(file, projectName);
649:
650: new ProjectsTabOperator().tree().clearSelection();
651: comOperator = new Operator.DefaultStringComparator(true, true);
652: oldOperator = (DefaultStringComparator) Operator
653: .getDefaultStringComparator();
654: Node node = new ProjectsTabOperator()
655: .getProjectRootNode(projectName);
656: Operator.setDefaultStringComparator(comOperator);
657: ImportWizardOperator iwo = ImportWizardOperator.invoke(node);
658: Operator.setDefaultStringComparator(oldOperator);
659: CVSRootStepOperator crso = new CVSRootStepOperator();
660: JComboBoxOperator combo = new JComboBoxOperator(crso, 0);
661: crso.setCVSRoot(":pserver:test@localhost:/cvs");
662: //crso.setPassword("test");
663:
664: //prepare stream for successful authentification and run PseudoCVSServer
665: InputStream in = TestKit.getStream(getDataDir()
666: .getCanonicalFile().toString()
667: + File.separator + PROTOCOL_FOLDER, "authorized.in");
668: if (in == null) {
669: System.err.println(getClass().getProtectionDomain()
670: .getCodeSource().getLocation().toExternalForm());
671: in.markSupported();
672: }
673: cvss = new PseudoCvsServer(in);
674: new Thread(cvss).start();
675: cvss.ignoreProbe();
676: CVSroot = cvss.getCvsRoot();
677: sessionCVSroot = CVSroot;
678: System.setProperty("netbeans.t9y.cvs.connection.CVSROOT",
679: CVSroot);
680: crso.setCVSRoot(CVSroot);
681: crso.next();
682:
683: //Wizard proceeded to 2nd step.
684:
685: FolderToImportStepOperator folderToImportOper = new FolderToImportStepOperator();
686: cvss.stop();
687: in.close();
688: folderToImportOper.setImportMessage("initial import");
689: folderToImportOper.checkCheckoutAfterImport(false);
690: in = TestKit.getStream(getDataDir().getCanonicalFile()
691: .toString()
692: + File.separator + PROTOCOL_FOLDER, "import_finish.in");
693: cvss = new PseudoCvsServer(in);
694: new Thread(cvss).start();
695: CVSroot = cvss.getCvsRoot();
696: System.setProperty("netbeans.t9y.cvs.connection.CVSROOT",
697: CVSroot);
698: //cvss.ignoreProbe();
699:
700: //crso.setCVSRoot(CVSroot);/
701: folderToImportOper.finish();
702:
703: //System.out.println(CVSroot);
704: OutputTabOperator oto = new OutputTabOperator(sessionCVSroot);
705: oto.getTimeouts().setTimeout(
706: "ComponentOperator.WaitStateTimeout", 30000);
707: oto.waitText("Importing finished");
708: cvss.stop();
709: in.close();
710: System.setProperty("netbeans.t9y.cvs.connection.CVSROOT", "");
711: //TestKit.removeAllData(projectName, file);
712: }
713:
714: public void prepareProject() throws Exception {
715: TestKit.closeProject(projectName);
716: file = TestKit.prepareProject("Java", "Java Application",
717: projectName, "Main.java");
718: }
719:
720: public void removeAllData() throws Exception {
721: TestKit.closeProject(projectName);
722: System.setProperty("netbeans.t9y.cvs.connection.CVSROOT", "");
723: }
724: }
|