1 9 10 package org.netbeans.test.subversion.main.delete; 11 12 import java.io.File ; 13 import java.io.PrintStream ; 14 import junit.textui.TestRunner; 15 import org.netbeans.jellytools.JellyTestCase; 16 import org.netbeans.jellytools.NbDialogOperator; 17 import org.netbeans.jellytools.OutputOperator; 18 import org.netbeans.jellytools.OutputTabOperator; 19 import org.netbeans.jellytools.nodes.Node; 20 import org.netbeans.jellytools.nodes.SourcePackagesNode; 21 import org.netbeans.jemmy.JemmyProperties; 22 import org.netbeans.jemmy.QueueTool; 23 import org.netbeans.jemmy.operators.JButtonOperator; 24 import org.netbeans.jemmy.operators.JTableOperator; 25 import org.netbeans.jemmy.operators.JTextFieldOperator; 26 import org.netbeans.jemmy.operators.Operator; 27 import org.netbeans.jemmy.operators.Operator.DefaultStringComparator; 28 import org.netbeans.junit.NbTestSuite; 29 import org.netbeans.junit.ide.ProjectSupport; 30 import org.netbeans.test.subversion.operators.CheckoutWizardOperator; 31 import org.netbeans.test.subversion.operators.CommitOperator; 32 import org.netbeans.test.subversion.operators.RefactoringOperator; 33 import org.netbeans.test.subversion.operators.RepositoryStepOperator; 34 import org.netbeans.test.subversion.operators.VersioningOperator; 35 import org.netbeans.test.subversion.operators.WorkDirStepOperator; 36 import org.netbeans.test.subversion.utils.RepositoryMaintenance; 37 import org.netbeans.test.subversion.utils.TestKit; 38 39 43 public class RefactoringTest extends JellyTestCase { 44 45 public static final String TMP_PATH = "/tmp"; 46 public static final String REPO_PATH = "repo"; 47 public static final String WORK_PATH = "work"; 48 public static final String PROJECT_NAME = "JavaApp"; 49 public File projectPath; 50 public PrintStream stream; 51 String os_name; 52 Operator.DefaultStringComparator comOperator; 53 Operator.DefaultStringComparator oldOperator; 54 55 56 public RefactoringTest(String name) { 57 super(name); 58 } 59 60 protected void setUp() throws Exception { 61 os_name = System.getProperty("os.name"); 62 System.out.println("### "+getName()+" ###"); 64 65 } 66 67 protected boolean isUnix() { 68 boolean unix = false; 69 if (os_name.indexOf("Windows") == -1) { 70 unix = true; 71 } 72 return unix; 73 } 74 75 public static void main(String [] args) { 76 TestRunner.run(suite()); 78 } 79 80 public static NbTestSuite suite() { 81 NbTestSuite suite = new NbTestSuite(); 82 suite.addTest(new RefactoringTest("testRefactoring")); 83 return suite; 84 } 85 86 public void testRefactoring() throws Exception { 87 try { 90 TestKit.closeProject(PROJECT_NAME); 91 OutputOperator.invoke(); 92 JTableOperator table; 93 stream = new PrintStream (new File (getWorkDir(), getName() + ".log")); 94 VersioningOperator vo = VersioningOperator.invoke(); 95 comOperator = new Operator.DefaultStringComparator(true, true); 96 oldOperator = (DefaultStringComparator) Operator.getDefaultStringComparator(); 97 Operator.setDefaultStringComparator(comOperator); 98 CheckoutWizardOperator co = CheckoutWizardOperator.invoke(); 99 Operator.setDefaultStringComparator(oldOperator); 100 RepositoryStepOperator rso = new RepositoryStepOperator(); 101 102 File work = new File (TMP_PATH + File.separator + WORK_PATH + File.separator + "w" + System.currentTimeMillis()); 104 new File (TMP_PATH).mkdirs(); 105 work.mkdirs(); 106 RepositoryMaintenance.deleteFolder(new File (TMP_PATH + File.separator + REPO_PATH)); 107 RepositoryMaintenance.createRepository(TMP_PATH + File.separator + REPO_PATH); 109 RepositoryMaintenance.loadRepositoryFromFile(TMP_PATH + File.separator + REPO_PATH, getDataDir().getCanonicalPath() + File.separator + "repo_dump"); 110 rso.setRepositoryURL(RepositoryStepOperator.ITEM_FILE + RepositoryMaintenance.changeFileSeparator(TMP_PATH + File.separator + REPO_PATH, false)); 111 112 rso.next(); 113 WorkDirStepOperator wdso = new WorkDirStepOperator(); 114 wdso.setRepositoryFolder("trunk/" + PROJECT_NAME); 115 wdso.setLocalFolder(work.getCanonicalPath()); 116 wdso.checkCheckoutContentOnly(false); 117 OutputTabOperator oto = new OutputTabOperator("file:///tmp/repo"); 118 oto.getTimeouts().setTimeout("ComponentOperator.WaitStateTimeout", 30000); 119 oto.clear(); 120 wdso.finish(); 121 oto.waitText("Checking out... finished."); 123 NbDialogOperator nbdialog = new NbDialogOperator("Checkout Completed"); 124 JButtonOperator open = new JButtonOperator(nbdialog, "Open Project"); 125 open.push(); 126 127 ProjectSupport.waitScanFinished(); 128 new QueueTool().waitEmpty(1000); 129 ProjectSupport.waitScanFinished(); 130 131 oto = new OutputTabOperator("file:///tmp/repo"); 132 oto.getTimeouts().setTimeout("ComponentOperator.WaitStateTimeout", 30000); 133 oto.clear(); 134 Node node = new Node(new SourcePackagesNode(PROJECT_NAME), ""); 135 node.performPopupAction("Subversion|Show Changes"); 136 oto.waitText("Refreshing... finished."); 137 node = new Node(new SourcePackagesNode(PROJECT_NAME), "javaapp"); 138 node.select(); 139 node.performPopupActionNoBlock("Refactor|Rename..."); 140 NbDialogOperator dialog = new NbDialogOperator("Rename"); 141 JTextFieldOperator txt = new JTextFieldOperator(dialog); 142 txt.setText("javaapp_ren"); 143 JButtonOperator btn = new JButtonOperator(dialog, "Refactor"); 144 btn.push(); 145 dialog.waitClosed(); 146 Thread.sleep(2000); 147 148 154 155 vo = VersioningOperator.invoke(); 156 String [] expected = new String [] {"Main.java", "Main.java", "javaapp_ren"}; 157 String [] actual = new String [vo.tabFiles().getRowCount()]; 158 for (int i = 0; i < vo.tabFiles().getRowCount(); i++) { 159 actual[i] = vo.tabFiles().getValueAt(i, 0).toString().trim(); 160 } 161 int result = TestKit.compareThem(expected, actual, false); 162 assertEquals("Wrong files in Versioning View", 3, result); 163 164 expected = new String [] {"Locally Deleted", "Locally New", "Locally Copied"}; 165 actual = new String [vo.tabFiles().getRowCount()]; 166 for (int i = 0; i < vo.tabFiles().getRowCount(); i++) { 167 actual[i] = vo.tabFiles().getValueAt(i, 1).toString().trim(); 168 } 169 result = TestKit.compareThem(expected, actual, false); 170 assertEquals("Wrong status in Versioning View", 3, result); 171 172 oto = new OutputTabOperator("file:///tmp/repo"); 173 oto.getTimeouts().setTimeout("ComponentOperator.WaitStateTimeout", 30000); 174 oto.clear(); 175 node = new Node(new SourcePackagesNode(PROJECT_NAME), ""); 176 CommitOperator cmo = CommitOperator.invoke(node); 177 expected = new String [] {"Main.java", "Main.java", "javaapp_ren"}; 178 actual = new String [cmo.tabFiles().getRowCount()]; 179 for (int i = 0; i < actual.length; i++) { 180 actual[i] = cmo.tabFiles().getValueAt(i, 0).toString(); 181 } 182 result = TestKit.compareThem(expected, actual, false); 183 assertEquals("Wrong files in Commit dialog", 3, result); 184 185 expected = new String [] {"Locally Deleted", "Locally New", "Locally Copied"}; 186 actual = new String [cmo.tabFiles().getRowCount()]; 187 for (int i = 0; i < actual.length; i++) { 188 actual[i] = cmo.tabFiles().getValueAt(i, 1).toString(); 189 } 190 result = TestKit.compareThem(expected, actual, false); 191 assertEquals("Wrong status in Commit dialog", 3, result); 192 cmo.commit(); 193 oto.waitText("Committing... finished."); 194 195 Exception e = null; 196 try { 197 vo = VersioningOperator.invoke(); 198 table = vo.tabFiles(); 199 } catch (Exception ex) { 200 e = ex; 201 } 202 assertNotNull("Unexpected behavior - Versioning view should be empty!!!", e); 203 204 e = null; 205 try { 206 node = new Node(new SourcePackagesNode(PROJECT_NAME), "javaapp|Main.java"); 207 } catch (Exception ex) { 208 e = ex; 209 } 210 assertNotNull("Unexpected behavior - File shouldn't be in explorer!!!", e); 211 212 } catch (Exception e) { 213 throw new Exception ("Test failed: " + e); 214 } finally { 215 TestKit.closeProject(PROJECT_NAME); 216 } 217 } 218 } 219 | Popular Tags |