KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > xml > api > model > GrammarQueryManagerTest


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.xml.api.model;
21
22 import java.net.URL JavaDoc;
23 import java.util.ArrayList JavaDoc;
24 import java.util.Arrays JavaDoc;
25 import java.util.Enumeration JavaDoc;
26 import java.util.List JavaDoc;
27 import junit.framework.*;
28 import org.netbeans.ProxyClassLoader;
29 import org.openide.filesystems.FileSystem;
30 import org.openide.filesystems.Repository;
31 import org.openide.filesystems.XMLFileSystem;
32 import org.openide.util.Lookup;
33 import org.xml.sax.InputSource JavaDoc;
34
35 /**
36  * The test always fails because you cannot register
37  * test class in lookup using layer. I would like to
38  * see FolderLookup tests for system FS.
39  * <p>
40  * Last test version passes but kills system class loader.
41  *
42  * @author Petr Kuzel
43  */

44 public class GrammarQueryManagerTest extends TestCase {
45     
46     public GrammarQueryManagerTest(java.lang.String JavaDoc testName) {
47         super(testName);
48     }
49     
50     /** Test of getDefault method, of class org.netbeans.modules.xml.text.completion.api.GrammarQueryManager. */
51     public void testGetDefault() throws Exception JavaDoc {
52         System.out.println("testGetDefault");
53
54         FileSystem def = Repository.getDefault().getDefaultFileSystem();
55         org.netbeans.core.projects.SystemFileSystem system =
56             (org.netbeans.core.projects.SystemFileSystem) def;
57         FileSystem[] original = system.getLayers();
58         ProxyClassLoader testLoader = new ProxyClassLoader(
59             new ClassLoader JavaDoc[] {SampleGrammarQueryManager.class.getClassLoader()}
60         );
61                 
62         try {
63             
64             // modify default FS content
65

66             URL JavaDoc source = getClass().getResource("data/filesystem.xml");
67             XMLFileSystem xmlfs = new XMLFileSystem(source);
68             List JavaDoc layers = new ArrayList JavaDoc(Arrays.asList(original));
69             layers.add(xmlfs);
70             FileSystem[] fss = (FileSystem[]) layers.toArray(new FileSystem[0]);
71             system.setLayers(fss);
72             
73             // adjust system classloader
74

75             ClassLoader JavaDoc loader = (ClassLoader JavaDoc) Lookup.getDefault().lookup(ClassLoader JavaDoc.class);
76             ProxyClassLoader systemLoader = (ProxyClassLoader) loader;
77             systemLoader.append(new ClassLoader JavaDoc[] {testLoader});
78             
79             // test
80

81             GrammarQueryManager manager = GrammarQueryManager.getDefault();
82             GrammarEnvironment env = new GrammarEnvironment(org.openide.util.Enumerations.empty(), new InputSource JavaDoc(), null);
83             Enumeration JavaDoc trigger = manager.enabled(env);
84             assertTrue("No grammar found!", trigger!=null);
85         } finally {
86             
87             // rollback
88

89             system.setLayers(original);
90             
91             testLoader.destroy();
92         }
93     }
94     
95 }
96
Popular Tags