KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > java > freeform > ui > SourceFoldersPanelTest


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.modules.java.freeform.ui;
21
22 import java.io.File JavaDoc;
23 import java.util.Arrays JavaDoc;
24 import java.util.Collections JavaDoc;
25 import java.util.HashSet JavaDoc;
26 import java.util.Map JavaDoc;
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 JavaDoc name) {
38         super(name);
39     }
40     
41     public void testGetDefaultLabel() throws Exception JavaDoc {
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         // #54428:
49
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 JavaDoc {
56         //new freeform:
57
File JavaDoc baseFolder = new File JavaDoc(egdir, "freeforminside/FreeForm");
58         File JavaDoc projectFolder = new File JavaDoc(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 JavaDoc[] {new File JavaDoc(baseFolder, "src")}, false, true).size());
65         
66         //tests for #58490:
67
File JavaDoc upperProject = new File JavaDoc(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 JavaDoc[] {new File JavaDoc(baseFolder, "src")}, false, true).size());
74         
75         baseFolder = new File JavaDoc(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 JavaDoc[] {new File JavaDoc(baseFolder, "src")}, false, true).size());
80         
81         baseFolder = new File JavaDoc(egdir, "freeforminside/FreeForm");
82         projectFolder = new File JavaDoc(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 JavaDoc[] {new File JavaDoc(baseFolder, "src")}, false, true).size());
87         
88         //invalid (owned by other project) sources are reported:
89
baseFolder = new File JavaDoc(egdir, "freeforminside/FreeForm");
90         projectFolder = new File JavaDoc(egdir, "freeforminside/FreeForm");
91         
92         File JavaDoc invalidFile1 = new File JavaDoc(egdir, "freeforminside/src");
93         File JavaDoc invalidFile2 = new File JavaDoc(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 JavaDoc[] {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 JavaDoc<File JavaDoc>(Arrays.asList(invalidFile1, invalidFile2)),
105                 SourceFoldersPanel.processRoots(model, new File JavaDoc[] {invalidFile1, invalidFile2}, false, true));
106         
107         //test isTests option:
108
File JavaDoc tests1 = new File JavaDoc(egdir, "tests1");
109         File JavaDoc tests2 = new File JavaDoc(egdir, "tests2");
110         File JavaDoc src1 = new File JavaDoc(egdir, "src1");
111         File JavaDoc src2 = new File JavaDoc(egdir, "src2");
112         
113         model = ProjectModel.createEmptyModel(baseFolder, projectFolder, evaluator);
114         
115         assertEquals("should accept free location", 0, SourceFoldersPanel.processRoots(model, new File JavaDoc[] {tests1}, true, true).size());
116         assertEquals("should accept free location", 0, SourceFoldersPanel.processRoots(model, new File JavaDoc[] {src1}, false, true).size());
117         assertEquals("should reject reregistration as test", Collections.singleton(src1),
118                 SourceFoldersPanel.processRoots(model, new File JavaDoc[] {tests1, src1, tests2}, true, true));
119         assertEquals("should reject reregistration as src", Collections.singleton(tests1),
120                 SourceFoldersPanel.processRoots(model, new File JavaDoc[] {tests1, src1, src2}, false, true));
121     }
122
123     protected void setUp() throws Exception JavaDoc {
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 JavaDoc getProperty(String JavaDoc prop) {
138             return properties.getProperty( prop );
139         }
140
141         public String JavaDoc evaluate(String JavaDoc text) {
142             return text;
143         }
144
145         public void removePropertyChangeListener(java.beans.PropertyChangeListener JavaDoc listener) {
146             // NOP
147
}
148
149         public void addPropertyChangeListener(java.beans.PropertyChangeListener JavaDoc listener) {
150             // NOP
151
}
152
153         public Map JavaDoc<String JavaDoc,String JavaDoc> getProperties() {
154             return properties;
155         }
156         
157     }
158 }
159
Popular Tags