1 19 20 package org.netbeans.modules.java.freeform.ui; 21 22 import java.io.File ; 23 import java.util.Arrays ; 24 import java.util.Collections ; 25 import java.util.HashSet ; 26 import java.util.Map ; 27 import org.netbeans.api.project.FileOwnerQuery; 28 import org.netbeans.api.project.Project; 29 import org.netbeans.api.project.ProjectManager; 30 import org.netbeans.modules.ant.freeform.TestBase; 31 import org.netbeans.spi.project.support.ant.EditableProperties; 32 import org.netbeans.spi.project.support.ant.PropertyEvaluator; 33 import org.openide.filesystems.FileUtil; 34 35 public class SourceFoldersPanelTest extends TestBase { 36 37 public SourceFoldersPanelTest(String name) { 38 super(name); 39 } 40 41 public void testGetDefaultLabel() throws Exception { 42 char sep = File.separatorChar; 43 assertEquals("foo", SourceFoldersPanel.getDefaultLabel("foo", false)); 44 assertEquals("foo", SourceFoldersPanel.getDefaultLabel("foo", true)); 45 assertEquals("foo" + sep + "bar", SourceFoldersPanel.getDefaultLabel("foo/bar", false)); 46 assertEquals("foo", SourceFoldersPanel.getDefaultLabel("${project.dir}/foo", false)); 47 assertEquals(sep + "else" + sep + "where", SourceFoldersPanel.getDefaultLabel("/else/where", false)); 48 assertEquals("Source Packages", SourceFoldersPanel.getDefaultLabel(".", false)); 50 assertEquals("Test Packages", SourceFoldersPanel.getDefaultLabel(".", true)); 51 assertEquals("Source Packages", SourceFoldersPanel.getDefaultLabel("${project.dir}", false)); 52 assertEquals("Test Packages", SourceFoldersPanel.getDefaultLabel("${project.dir}", true)); 53 } 54 55 public void testProcessRoots() throws Exception { 56 File baseFolder = new File (egdir, "freeforminside/FreeForm"); 58 File projectFolder = new File (egdir, "freeforminside/FreeForm"); 59 PropertyEvaluator evaluator = new PlainPropertyEvaluator(new EditableProperties()); 60 ProjectModel model = null; 61 62 model = ProjectModel.createEmptyModel(baseFolder, projectFolder, evaluator); 63 64 assertEquals("should accept free location", 0, SourceFoldersPanel.processRoots(model, new File [] {new File (baseFolder, "src")}, false, true).size()); 65 66 File upperProject = new File (egdir, "freeforminside"); 68 69 Project upper = ProjectManager.getDefault().findProject(FileUtil.toFileObject(upperProject)); 70 71 model = ProjectModel.createEmptyModel(baseFolder, projectFolder, evaluator); 72 73 assertEquals("should accept location under the newly created project", 0, SourceFoldersPanel.processRoots(model, new File [] {new File (baseFolder, "src")}, false, true).size()); 74 75 baseFolder = new File (egdir, "simple3"); 76 77 model = ProjectModel.createEmptyModel(baseFolder, projectFolder, evaluator); 78 79 assertEquals("should accept location under the newly created project", 0, SourceFoldersPanel.processRoots(model, new File [] {new File (baseFolder, "src")}, false, true).size()); 80 81 baseFolder = new File (egdir, "freeforminside/FreeForm"); 82 projectFolder = new File (egdir, "simple3"); 83 84 model = ProjectModel.createEmptyModel(baseFolder, projectFolder, evaluator); 85 86 assertEquals("should accept location under the newly created project", 0, SourceFoldersPanel.processRoots(model, new File [] {new File (baseFolder, "src")}, false, true).size()); 87 88 baseFolder = new File (egdir, "freeforminside/FreeForm"); 90 projectFolder = new File (egdir, "freeforminside/FreeForm"); 91 92 File invalidFile1 = new File (egdir, "freeforminside/src"); 93 File invalidFile2 = new File (egdir, "simple3/src"); 94 95 model = ProjectModel.createEmptyModel(baseFolder, projectFolder, evaluator); 96 97 assertEquals("should reject invalid location", Collections.singleton(invalidFile1), 98 SourceFoldersPanel.processRoots(model, new File [] {invalidFile1, invalidFile2}, false, true)); 99 100 FileOwnerQuery.markExternalOwner(FileUtil.toFileObject(invalidFile2), upper, FileOwnerQuery.EXTERNAL_ALGORITHM_TRANSIENT); 101 102 model = ProjectModel.createEmptyModel(baseFolder, projectFolder, evaluator); 103 104 assertEquals("should reject invalid location", new HashSet <File >(Arrays.asList(invalidFile1, invalidFile2)), 105 SourceFoldersPanel.processRoots(model, new File [] {invalidFile1, invalidFile2}, false, true)); 106 107 File tests1 = new File (egdir, "tests1"); 109 File tests2 = new File (egdir, "tests2"); 110 File src1 = new File (egdir, "src1"); 111 File src2 = new File (egdir, "src2"); 112 113 model = ProjectModel.createEmptyModel(baseFolder, projectFolder, evaluator); 114 115 assertEquals("should accept free location", 0, SourceFoldersPanel.processRoots(model, new File [] {tests1}, true, true).size()); 116 assertEquals("should accept free location", 0, SourceFoldersPanel.processRoots(model, new File [] {src1}, false, true).size()); 117 assertEquals("should reject reregistration as test", Collections.singleton(src1), 118 SourceFoldersPanel.processRoots(model, new File [] {tests1, src1, tests2}, true, true)); 119 assertEquals("should reject reregistration as src", Collections.singleton(tests1), 120 SourceFoldersPanel.processRoots(model, new File [] {tests1, src1, src2}, false, true)); 121 } 122 123 protected void setUp() throws Exception { 124 125 super.setUp(); 126 } 127 128 private static class PlainPropertyEvaluator implements PropertyEvaluator { 129 130 private EditableProperties properties; 131 132 PlainPropertyEvaluator( EditableProperties properties ) { 133 this.properties = properties; 134 } 135 136 137 public String getProperty(String prop) { 138 return properties.getProperty( prop ); 139 } 140 141 public String evaluate(String text) { 142 return text; 143 } 144 145 public void removePropertyChangeListener(java.beans.PropertyChangeListener listener) { 146 } 148 149 public void addPropertyChangeListener(java.beans.PropertyChangeListener listener) { 150 } 152 153 public Map <String ,String > getProperties() { 154 return properties; 155 } 156 157 } 158 } 159 | Popular Tags |