001: /*
002: * UpdateErrorTest.java
003: *
004: * Created on 25 August 2006, 16:42
005: *
006: * To change this template, choose Tools | Template Manager
007: * and open the template in the editor.
008: */
009:
010: package org.netbeans.test.cvsmodule;
011:
012: import java.io.File;
013: import java.io.InputStream;
014: import junit.textui.TestRunner;
015: import org.netbeans.jellytools.EditorOperator;
016: import org.netbeans.jellytools.JellyTestCase;
017: import org.netbeans.jellytools.NbDialogOperator;
018: import org.netbeans.jellytools.OutputOperator;
019: import org.netbeans.jellytools.OutputTabOperator;
020: import org.netbeans.jellytools.ProjectsTabOperator;
021: import org.netbeans.jellytools.modules.javacvs.CVSRootStepOperator;
022: import org.netbeans.jellytools.modules.javacvs.CheckoutWizardOperator;
023: import org.netbeans.jellytools.modules.javacvs.CommitOperator;
024: import org.netbeans.jellytools.modules.javacvs.ModuleToCheckoutStepOperator;
025: import org.netbeans.jellytools.modules.javacvs.VersioningOperator;
026: import org.netbeans.jellytools.nodes.Node;
027: import org.netbeans.jellytools.nodes.SourcePackagesNode;
028: import org.netbeans.jemmy.JemmyProperties;
029: import org.netbeans.jemmy.QueueTool;
030: import org.netbeans.jemmy.TimeoutExpiredException;
031: import org.netbeans.jemmy.operators.JButtonOperator;
032: import org.netbeans.jemmy.operators.JProgressBarOperator;
033: import org.netbeans.jemmy.operators.JTableOperator;
034: import org.netbeans.jemmy.operators.Operator;
035: import org.netbeans.jemmy.operators.Operator.DefaultStringComparator;
036: import org.netbeans.junit.NbTestSuite;
037: import org.netbeans.junit.ide.ProjectSupport;
038:
039: /**
040: *
041: * @author peter
042: */
043: public class UpdateErrorTest extends JellyTestCase {
044:
045: String os_name;
046: static String sessionCVSroot;
047: final String projectName = "ForImport";
048: final String pathToMain = "forimport|Main.java";
049: static File cacheFolder;
050: String PROTOCOL_FOLDER = "protocol";
051: Operator.DefaultStringComparator comOperator;
052: Operator.DefaultStringComparator oldOperator;
053:
054: /**
055: * Creates a new instance of UpdateErrorTest
056: */
057: public UpdateErrorTest(String name) {
058: super (name);
059: }
060:
061: public static void main(String[] args) {
062: // TODO code application logic here
063: TestRunner.run(suite());
064: }
065:
066: protected void setUp() throws Exception {
067: os_name = System.getProperty("os.name");
068: //System.out.println(os_name);
069: System.out.println("### " + getName() + " ###");
070: }
071:
072: public static NbTestSuite suite() {
073: NbTestSuite suite = new NbTestSuite();
074: suite.addTest(new UpdateErrorTest("testCheckOutProject"));
075: suite.addTest(new UpdateErrorTest("testUpdate"));
076: suite.addTest(new UpdateErrorTest("removeAllData"));
077: return suite;
078: }
079:
080: public void testCheckOutProject() throws Exception {
081: PROTOCOL_FOLDER = "protocol";
082: //JemmyProperties.setCurrentTimeout("ComponentOperator.WaitComponentTimeout", 18000);
083: //JemmyProperties.setCurrentTimeout("DialogWaiter.WaitDialogTimeout", 18000);
084: TestKit.closeProject(projectName);
085: new ProjectsTabOperator().tree().clearSelection();
086: comOperator = new Operator.DefaultStringComparator(true, true);
087: oldOperator = (DefaultStringComparator) Operator
088: .getDefaultStringComparator();
089: Operator.setDefaultStringComparator(comOperator);
090: CheckoutWizardOperator cwo = CheckoutWizardOperator.invoke();
091: Operator.setDefaultStringComparator(oldOperator);
092: CVSRootStepOperator crso = new CVSRootStepOperator();
093: //JComboBoxOperator combo = new JComboBoxOperator(crso, 0);
094: crso.setCVSRoot(":pserver:anoncvs@localhost:/cvs");
095: //crso.setPassword("");
096: //crso.setPassword("test");
097:
098: //prepare stream for successful authentification and run PseudoCVSServer
099: InputStream in = TestKit.getStream(getDataDir()
100: .getCanonicalFile().toString()
101: + File.separator + PROTOCOL_FOLDER, "authorized.in");
102: PseudoCvsServer cvss = new PseudoCvsServer(in);
103: new Thread(cvss).start();
104: cvss.ignoreProbe();
105: String CVSroot = cvss.getCvsRoot();
106: sessionCVSroot = CVSroot;
107: //System.out.println(sessionCVSroot);
108: crso.setCVSRoot(CVSroot);
109: System.setProperty("netbeans.t9y.cvs.connection.CVSROOT",
110: CVSroot);
111: crso.next();
112:
113: //second step of checkoutwizard
114: //2nd step of CheckOutWizard
115:
116: File tmp = new File("/tmp"); // NOI18N
117: File work = new File(tmp, "" + File.separator
118: + System.currentTimeMillis());
119: cacheFolder = new File(work, projectName + File.separator
120: + "src" + File.separator + "forimport" + File.separator
121: + "CVS" + File.separator + "RevisionCache");
122: tmp.mkdirs();
123: work.mkdirs();
124: tmp.deleteOnExit();
125: ModuleToCheckoutStepOperator moduleCheck = new ModuleToCheckoutStepOperator();
126: cvss.stop();
127: in.close();
128: moduleCheck.setModule("ForImport");
129: moduleCheck.setLocalFolder(work.getAbsolutePath()); // NOI18N
130:
131: //Pseudo CVS server for finishing check out wizard
132: in = TestKit.getStream(getDataDir().getCanonicalFile()
133: .toString()
134: + File.separator + PROTOCOL_FOLDER,
135: "checkout_finish_2.in");
136: cvss = new PseudoCvsServer(in);
137: new Thread(cvss).start();
138: CVSroot = cvss.getCvsRoot();
139: //cvss.ignoreProbe();
140:
141: //crso.setCVSRoot(CVSroot);
142: //combo.setSelectedItem(CVSroot);
143: System.setProperty("netbeans.t9y.cvs.connection.CVSROOT",
144: CVSroot);
145: cwo.finish();
146:
147: OutputOperator oo = OutputOperator.invoke();
148: //System.out.println(CVSroot);
149:
150: OutputTabOperator oto = oo.getOutputTab(sessionCVSroot);
151: oto.waitText("Checking out finished");
152: cvss.stop();
153: in.close();
154: NbDialogOperator nbdialog = new NbDialogOperator(
155: "Checkout Completed");
156: JButtonOperator open = new JButtonOperator(nbdialog,
157: "Open Project");
158: open.push();
159:
160: ProjectSupport.waitScanFinished();
161: TestKit.waitForQueueEmpty();
162: ProjectSupport.waitScanFinished();
163:
164: System.setProperty("netbeans.t9y.cvs.connection.CVSROOT", "");
165: }
166:
167: public void testUpdate() throws Exception {
168: //JemmyProperties.setCurrentTimeout("ComponentOperator.WaitComponentTimeout", 18000);
169: PseudoCvsServer cvss, cvss2, cvss3;
170: InputStream in, in2, in3;
171: CommitOperator co;
172: String CVSroot, color;
173: JTableOperator table;
174: OutputOperator oo;
175: OutputTabOperator oto;
176: VersioningOperator vo;
177: String[] expected;
178: String[] actual;
179: String allCVSRoots;
180: org.openide.nodes.Node nodeIDE;
181: PROTOCOL_FOLDER = "protocol" + File.separator
182: + "update_access_denied";
183:
184: vo = VersioningOperator.invoke();
185: oo = OutputOperator.invoke();
186: oto = oo.getOutputTab(sessionCVSroot);
187:
188: Node node = new Node(new SourcePackagesNode("ForImport"),
189: "forimport|Main.java");
190: node.performPopupAction("Open");
191: EditorOperator eo = new EditorOperator("Main.java");
192: eo.deleteLine(2);
193: eo.insert(" a", 3, 4);
194: eo.save();
195: //
196: oto = oo.getOutputTab(sessionCVSroot);
197: oto.getTimeouts().setTimeout(
198: "ComponentOperator.WaitStateTimeout", 30000);
199: in = TestKit.getStream(getDataDir().getCanonicalFile()
200: .toString()
201: + File.separator + PROTOCOL_FOLDER,
202: "show_changes_package.in");
203: cvss = new PseudoCvsServer(in);
204: new Thread(cvss).start();
205: CVSroot = cvss.getCvsRoot();
206: System.setProperty("netbeans.t9y.cvs.connection.CVSROOT",
207: CVSroot);
208: node = new Node(new SourcePackagesNode("ForImport"),
209: "forimport");
210: node.performPopupAction("CVS|Show Changes");
211: Thread.sleep(1000);
212: oto.waitText("Refreshing");
213: oto.waitText("finished");
214: cvss.stop();
215:
216: assertEquals("File should be listed in Versioning view",
217: "Main.java", vo.tabFiles().getValueAt(0, 0).toString());
218:
219: node = new Node(new SourcePackagesNode("ForImport"),
220: "forimport|Main.java");
221: nodeIDE = (org.openide.nodes.Node) node.getOpenideNode();
222: color = TestKit.getColor(nodeIDE.getHtmlDisplayName());
223: assertEquals("Wrong color of node!!!", TestKit.MODIFIED_COLOR,
224: color);
225:
226: in = TestKit.getStream(getDataDir().getCanonicalFile()
227: .toString()
228: + File.separator + PROTOCOL_FOLDER,
229: "update_access_denied.in");
230: cvss = new PseudoCvsServer(in);
231: new Thread(cvss).start();
232: CVSroot = cvss.getCvsRoot();
233: System.setProperty("netbeans.t9y.cvs.connection.CVSROOT",
234: CVSroot);
235: node = ProjectsTabOperator.invoke().getProjectRootNode(
236: "ForImport");
237: //oto = oo.getOutputTab(sessionCVSroot);
238: oto.getTimeouts().setTimeout(
239: "ComponentOperator.WaitStateTimeout", 30000);
240: node.performPopupAction("CVS|Update");
241: Thread.sleep(1000);
242: cvss.stop();
243: oto.waitText("Updating");
244: oto.waitText("finished");
245:
246: NbDialogOperator dialog = new NbDialogOperator("Command");
247: JButtonOperator btn = new JButtonOperator(dialog, "Ok");
248: btn.push();
249:
250: Thread.sleep(1000);
251: node = new Node(new SourcePackagesNode("ForImport"),
252: "forimport|Main.java");
253: nodeIDE = (org.openide.nodes.Node) node.getOpenideNode();
254: color = TestKit.getColor(nodeIDE.getHtmlDisplayName());
255: assertEquals(
256: "Wrong color of node. Modified file can't be changed to up-to-date. See issue http://www.netbeans.org/issues/show_bug.cgi?id=83476!!!",
257: TestKit.MODIFIED_COLOR, color);
258: System.setProperty("netbeans.t9y.cvs.connection.CVSROOT", "");
259:
260: }
261:
262: public void removeAllData() throws Exception {
263: TestKit.closeProject(projectName);
264: System.setProperty("netbeans.t9y.cvs.connection.CVSROOT", "");
265: }
266:
267: }
|