KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > editor > mimelookup > MimePathLookupTest


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.editor.mimelookup;
21
22 import java.util.Collection JavaDoc;
23 import org.netbeans.api.editor.mimelookup.MimeLookup;
24 import org.netbeans.api.editor.mimelookup.MimePath;
25 import org.netbeans.junit.NbTestCase;
26 import org.openide.util.Lookup;
27 import org.openide.util.LookupEvent;
28 import org.openide.util.LookupListener;
29
30 /**
31  *
32  * @author vita
33  */

34 public class MimePathLookupTest extends NbTestCase {
35
36     /** Creates a new instance of MimePathLookupTest */
37     public MimePathLookupTest(String JavaDoc name) {
38         super(name);
39     }
40
41     protected void setUp() throws java.lang.Exception JavaDoc {
42         // Set up the default lookup, repository, etc.
43
EditorTestLookup.setLookup(new String JavaDoc[0], getWorkDir(), new Object JavaDoc[] {},
44             getClass().getClassLoader()
45         );
46     }
47     
48     public void testAddingMimeDataProvider() throws Exception JavaDoc {
49         checkAddingMimeDataProvider(
50             "Services/org-netbeans-modules-editor-mimelookup-DummyMimeDataProvider.instance",
51             DummyMimeDataProvider.Marker.class
52         );
53         checkAddingMimeDataProvider(
54             "Services/org-netbeans-modules-editor-mimelookup-DummyMimeLookupInitializer.instance",
55             DummyMimeLookupInitializer.Marker.class
56         );
57     }
58     
59     private <T> void checkAddingMimeDataProvider(String JavaDoc instanceFile, Class JavaDoc<T> markerClass) throws Exception JavaDoc {
60         MimePath path = MimePath.get("text/x-java");
61         Lookup lookup = MimeLookup.getLookup(path);
62         
63         Collection JavaDoc markers = lookup.lookupAll(markerClass);
64         assertEquals("There should be no markers", 0, markers.size());
65         
66         // Add the data provider
67
TestUtilities.createFile(getWorkDir(), instanceFile);
68         TestUtilities.sleepForWhile();
69         
70         markers = lookup.lookupAll(markerClass);
71         assertEquals("No markers found", 1, markers.size());
72     }
73
74     public void testAddingMimeDataProvider2() throws Exception JavaDoc {
75         checkAddingMimeDataProvider(
76             "Services/org-netbeans-modules-editor-mimelookup-DummyMimeDataProvider.instance",
77             DummyMimeDataProvider.Marker.class
78         );
79         checkAddingMimeDataProvider(
80             "Services/org-netbeans-modules-editor-mimelookup-DummyMimeLookupInitializer.instance",
81             DummyMimeLookupInitializer.Marker.class
82         );
83     }
84     
85     private <T> void checkAddingMimeDataProvider2(String JavaDoc instanceFile, Class JavaDoc<T> markerClass) throws Exception JavaDoc {
86         MimePath path = MimePath.get("text/x-java");
87         
88         Lookup.Result result = MimeLookup.getLookup(path).lookupResult(markerClass);
89         Collection JavaDoc markers = result.allInstances();
90         assertEquals("There should be no markers", 0, markers.size());
91
92         L listener = new L();
93         result.addLookupListener(listener);
94         assertEquals("There should be no changes received", 0, listener.resultChangedCnt);
95         
96         // Add the data provider
97
TestUtilities.createFile(getWorkDir(), instanceFile);
98         TestUtilities.sleepForWhile();
99         
100         assertEquals("No changes received", 1, listener.resultChangedCnt);
101         markers = result.allInstances();
102         assertEquals("No markers found", 1, markers.size());
103     }
104     
105     public void testRemovingMimeDataProvider() throws Exception JavaDoc {
106         checkRemovingMimeDataProvider(
107             "Services/org-netbeans-modules-editor-mimelookup-DummyMimeDataProvider.instance",
108             DummyMimeDataProvider.Marker.class
109         );
110         checkRemovingMimeDataProvider(
111             "Services/org-netbeans-modules-editor-mimelookup-DummyMimeLookupInitializer.instance",
112             DummyMimeLookupInitializer.Marker.class
113         );
114     }
115     
116     private <T> void checkRemovingMimeDataProvider(String JavaDoc instanceFile, Class JavaDoc<T> markerClass) throws Exception JavaDoc {
117         TestUtilities.createFile(getWorkDir(), instanceFile);
118         TestUtilities.sleepForWhile();
119
120         MimePath path = MimePath.get("text/x-java");
121         Lookup lookup = MimeLookup.getLookup(path);
122         
123         Collection JavaDoc markers = lookup.lookupAll(markerClass);
124         assertEquals("No markers found", 1, markers.size());
125
126         TestUtilities.deleteFile(getWorkDir(), instanceFile);
127         TestUtilities.sleepForWhile();
128         
129         markers = lookup.lookupAll(markerClass);
130         assertEquals("There should be no markers", 0, markers.size());
131     }
132
133     public void testRemovingMimeDataProvider2() throws Exception JavaDoc {
134         checkRemovingMimeDataProvider2(
135             "Services/org-netbeans-modules-editor-mimelookup-DummyMimeDataProvider.instance",
136             DummyMimeDataProvider.Marker.class
137         );
138         checkRemovingMimeDataProvider2(
139             "Services/org-netbeans-modules-editor-mimelookup-DummyMimeLookupInitializer.instance",
140             DummyMimeLookupInitializer.Marker.class
141         );
142     }
143     
144     private <T> void checkRemovingMimeDataProvider2(String JavaDoc instanceFile, Class JavaDoc<T> markerClass) throws Exception JavaDoc {
145         TestUtilities.createFile(getWorkDir(), instanceFile);
146         TestUtilities.sleepForWhile();
147
148         MimePath path = MimePath.get("text/x-java");
149         Lookup.Result result = MimeLookup.getLookup(path).lookupResult(markerClass);
150         Collection JavaDoc markers = result.allInstances();
151         assertEquals("No markers found", 1, markers.size());
152
153         L listener = new L();
154         result.addLookupListener(listener);
155         assertEquals("There should be no changes received", 0, listener.resultChangedCnt);
156
157         // Remove the data provider
158
TestUtilities.deleteFile(getWorkDir(), instanceFile);
159         TestUtilities.sleepForWhile();
160         
161         assertEquals("No changes received", 1, listener.resultChangedCnt);
162         markers = result.allInstances();
163         assertEquals("There should be no markers", 0, markers.size());
164     }
165     
166     private static class L implements LookupListener {
167         public int resultChangedCnt = 0;
168         
169         public void resultChanged(LookupEvent ev) {
170             resultChangedCnt++;
171         }
172     } // End of L class
173
}
174
Popular Tags