001: /*
002: * DeleteTest.java
003: *
004: * Created on 27 June 2006, 20:01
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.JellyTestCase;
016: import org.netbeans.jellytools.NbDialogOperator;
017: import org.netbeans.jellytools.OutputOperator;
018: import org.netbeans.jellytools.OutputTabOperator;
019: import org.netbeans.jellytools.ProjectsTabOperator;
020: import org.netbeans.jellytools.modules.javacvs.CVSRootStepOperator;
021: import org.netbeans.jellytools.modules.javacvs.CheckoutWizardOperator;
022: import org.netbeans.jellytools.modules.javacvs.ModuleToCheckoutStepOperator;
023: import org.netbeans.jellytools.modules.javacvs.VersioningOperator;
024: import org.netbeans.jellytools.nodes.Node;
025: import org.netbeans.jellytools.nodes.SourcePackagesNode;
026: import org.netbeans.jemmy.QueueTool;
027: import org.netbeans.jemmy.TimeoutExpiredException;
028: import org.netbeans.jemmy.operators.JButtonOperator;
029: import org.netbeans.jemmy.operators.JProgressBarOperator;
030: import org.netbeans.jemmy.operators.JTableOperator;
031: import org.netbeans.jemmy.operators.Operator;
032: import org.netbeans.jemmy.operators.Operator.DefaultStringComparator;
033: import org.netbeans.junit.NbTestSuite;
034: import org.netbeans.junit.ide.ProjectSupport;
035:
036: /**
037: *
038: * @author peter
039: */
040: public class DeleteTest extends JellyTestCase {
041:
042: String os_name;
043: static String sessionCVSroot;
044: final String projectName = "ForImport";
045: final String pathToMain = "forimport|Main.java";
046: final String PROTOCOL_FOLDER = "protocol";
047: static File cacheFolder;
048: Operator.DefaultStringComparator comOperator;
049: Operator.DefaultStringComparator oldOperator;
050:
051: /** Creates a new instance of DeleteTest */
052: public DeleteTest(String name) {
053: super (name);
054: }
055:
056: /**
057: * @param args the command line arguments
058: */
059: public static void main(String[] args) {
060: // TODO code application logic here
061: TestRunner.run(suite());
062: }
063:
064: public static NbTestSuite suite() {
065: NbTestSuite suite = new NbTestSuite();
066: suite.addTest(new DeleteTest("testCheckOutProject"));
067: suite.addTest(new DeleteTest("testDeleteFile"));
068: suite.addTest(new DeleteTest("removeAllData"));
069: return suite;
070: }
071:
072: protected void setUp() throws Exception {
073:
074: os_name = System.getProperty("os.name");
075: //System.out.println(os_name);
076: System.out.println("### " + getName() + " ###");
077:
078: }
079:
080: protected boolean isUnix() {
081: boolean unix = false;
082: if (os_name.indexOf("Windows") == -1) {
083: unix = true;
084: }
085: return unix;
086: }
087:
088: public void testCheckOutProject() throws Exception {
089: //JemmyProperties.setCurrentTimeout("ComponentOperator.WaitComponentTimeout", 36000);
090: //JemmyProperties.setCurrentTimeout("DialogWaiter.WaitDialogTimeout", 36000);
091: TestKit.closeProject(projectName);
092: new ProjectsTabOperator().tree().clearSelection();
093: comOperator = new Operator.DefaultStringComparator(true, true);
094: oldOperator = (DefaultStringComparator) Operator
095: .getDefaultStringComparator();
096: Operator.setDefaultStringComparator(comOperator);
097: CheckoutWizardOperator cwo = CheckoutWizardOperator.invoke();
098: Operator.setDefaultStringComparator(oldOperator);
099: CVSRootStepOperator crso = new CVSRootStepOperator();
100: //JComboBoxOperator combo = new JComboBoxOperator(crso, 0);
101: crso.setCVSRoot(":pserver:anoncvs@localhost:/cvs");
102: //crso.setPassword("");
103: //crso.setPassword("test");
104:
105: //prepare stream for successful authentification and run PseudoCVSServer
106: InputStream in = TestKit.getStream(getDataDir()
107: .getCanonicalFile().toString()
108: + File.separator + PROTOCOL_FOLDER, "authorized.in");
109: PseudoCvsServer cvss = new PseudoCvsServer(in);
110: new Thread(cvss).start();
111: cvss.ignoreProbe();
112: String CVSroot = cvss.getCvsRoot();
113: sessionCVSroot = CVSroot;
114: //System.out.println(sessionCVSroot);
115: crso.setCVSRoot(CVSroot);
116: System.setProperty("netbeans.t9y.cvs.connection.CVSROOT",
117: CVSroot);
118: crso.next();
119:
120: //second step of checkoutwizard
121: //2nd step of CheckOutWizard
122:
123: File tmp = new File("/tmp"); // NOI18N
124: File work = new File(tmp, "" + File.separator
125: + System.currentTimeMillis());
126: File cacheFolder = new File(work, projectName + File.separator
127: + "src" + File.separator + "forimport" + File.separator
128: + "CVS" + File.separator + "RevisionCache");
129: tmp.mkdirs();
130: work.mkdirs();
131: tmp.deleteOnExit();
132: ModuleToCheckoutStepOperator moduleCheck = new ModuleToCheckoutStepOperator();
133: cvss.stop();
134: in.close();
135: moduleCheck.setModule("ForImport");
136: moduleCheck.setLocalFolder(work.getAbsolutePath()); // NOI18N
137:
138: //Pseudo CVS server for finishing check out wizard
139: in = TestKit.getStream(getDataDir().getCanonicalFile()
140: .toString()
141: + File.separator + PROTOCOL_FOLDER,
142: "checkout_finish_2.in");
143: cvss = new PseudoCvsServer(in);
144: new Thread(cvss).start();
145: CVSroot = cvss.getCvsRoot();
146: //cvss.ignoreProbe();
147:
148: //crso.setCVSRoot(CVSroot);
149: //combo.setSelectedItem(CVSroot);
150: System.setProperty("netbeans.t9y.cvs.connection.CVSROOT",
151: CVSroot);
152: cwo.finish();
153: Thread.sleep(3000);
154:
155: OutputOperator oo = OutputOperator.invoke();
156: //System.out.println(CVSroot);
157:
158: OutputTabOperator oto = oo.getOutputTab(sessionCVSroot);
159: oto.waitText("Checking out finished");
160: cvss.stop();
161: in.close();
162: NbDialogOperator nbdialog = new NbDialogOperator(
163: "Checkout Completed");
164: JButtonOperator open = new JButtonOperator(nbdialog,
165: "Open Project");
166: open.push();
167:
168: ProjectSupport.waitScanFinished();
169: TestKit.waitForQueueEmpty();
170: ProjectSupport.waitScanFinished();
171:
172: System.setProperty("netbeans.t9y.cvs.connection.CVSROOT", "");
173: }
174:
175: public void testDeleteFile() throws Exception {
176: //JemmyProperties.setCurrentTimeout("ComponentOperator.WaitComponentTimeout", 18000);
177: PseudoCvsServer cvss, cvss2, cvss3;
178: InputStream in, in2, in3;
179: //OutputOperator oo;
180: OutputTabOperator oto;
181: org.openide.nodes.Node nodeIDE;
182: String color, CVSroot;
183: VersioningOperator vo;
184: JTableOperator table;
185:
186: oto = new OutputTabOperator(sessionCVSroot);
187: oto.getTimeouts().setTimeout(
188: "ComponentOperator.WaitStateTimeout", 30000);
189:
190: Node nodeMain = new Node(new SourcePackagesNode(projectName),
191: "forimport");
192: in = TestKit.getStream(getDataDir().getCanonicalFile()
193: .toString()
194: + File.separator + PROTOCOL_FOLDER,
195: "show_changes_package_1.in");
196: cvss = new PseudoCvsServer(in);
197: new Thread(cvss).start();
198: CVSroot = cvss.getCvsRoot();
199: System.setProperty("netbeans.t9y.cvs.connection.CVSROOT",
200: CVSroot);
201: nodeMain.performPopupAction("CVS|Show Changes");
202: Thread.sleep(1000);
203: vo = VersioningOperator.invoke();
204: cvss.stop();
205:
206: //delete file again and commit deletion
207: nodeMain = new Node(new SourcePackagesNode(projectName),
208: pathToMain);
209: nodeMain.performPopupActionNoBlock("Delete");
210: NbDialogOperator dialog = new NbDialogOperator("Safe Delete");
211: JButtonOperator btn = new JButtonOperator(dialog, "OK");
212: btn.push();
213: Thread.sleep(1000);
214: Exception e = null;
215: try {
216: table = vo.tabFiles();
217: assertEquals("Files should have been [Locally Deleted]",
218: "Locally Deleted", table.getValueAt(0, 1)
219: .toString());
220: } catch (Exception ex) {
221: e = ex;
222: }
223: assertNull(
224: "Unexpected behavior - file should appear in Versioning view!!!",
225: e);
226: }
227:
228: public void removeAllData() {
229: TestKit.closeProject(projectName);
230: System.setProperty("netbeans.t9y.cvs.connection.CVSROOT", "");
231: }
232: }
|