1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage tests.org.w3c.dom;
2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.ArrayList;
4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.List;
5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.Document;
7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.Node;
8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.xml.parsers.DocumentBuilder;
10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/**
12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The "feature" parameter in the isSupported(feature,version)" method is the
13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * name of the feature and the version is the version number of the feature to
14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * test. XXX is NOT a legal value for the feature parameter. The method should
15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * return "false" since XXX is not a valid feature.
16f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes *
17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Retrieve the root node of the DOM document by invoking the
18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * "getDocumentElement()" method. This should create a node object on which the
19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * "isSupported(feature,version)" method is invoked with "feature" equal to
20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * "XXX" and version to "1.0". The method should return a boolean "false" since
21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * XXX is not a valid feature.
22f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes *
23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @author NIST
24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @author Mary Brady
25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see <a
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *      href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports</a>
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic final class IsSupported extends DOMTestCase {
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    DOMDocumentBuilderFactory factory;
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    DocumentBuilder builder;
33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected void setUp() throws Exception {
35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        super.setUp();
36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            factory = new DOMDocumentBuilderFactory(DOMDocumentBuilderFactory
38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    .getConfiguration1());
39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            builder = factory.getBuilder();
40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected exception" + e.getMessage());
42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected void tearDown() throws Exception {
46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        factory = null;
47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        builder = null;
48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        super.tearDown();
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Runs the test case.
53f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws Throwable
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             Any uncaught exception causes test to fail
56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testIsSupported1() throws Throwable {
58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Document doc;
59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Node rootNode;
60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean state;
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        doc = (Document) load("staff", builder);
62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        rootNode = doc.getDocumentElement();
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        state = rootNode.isSupported("XXX", "1.0");
64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse("throw_False", state);
65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testIsSupported2() throws Throwable {
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Document doc;
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Node rootNode;
69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean state;
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        doc = (Document) load("staff", builder);
71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        rootNode = doc.getDocumentElement();
72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        state = rootNode.isSupported("XML", "9.0");
73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse("throw_False", state);
74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testIsSupported4() throws Throwable {
76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Document doc;
77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Node rootNode;
78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean state;
79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        doc = (Document) load("staff", builder);
80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        rootNode = doc.getDocumentElement();
81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        state = rootNode.isSupported("xml", "1.0");
82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("throw_True", state);
83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testIsSupported5() throws Throwable {
85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Document doc;
86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Node rootNode;
87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean state;
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        doc = (Document) load("staff", builder);
89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        rootNode = doc.getDocumentElement();
90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        state = rootNode.isSupported("core", "2.0");
91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("throw_True", state);
92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testIsSupported6() throws Throwable {
94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Document doc;
95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Node rootNode;
96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean state;
97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        doc = (Document) load("staff", builder);
98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        rootNode = doc.getDocumentElement();
99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        state = rootNode.isSupported("xml", "2.0");
100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("throw_True", state);
101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testIsSupported7() throws Throwable {
103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Document doc;
104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Node rootNode;
105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean state;
106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        doc = (Document) load("staff", builder);
107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        rootNode = doc.getDocumentElement();
108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        state = rootNode.isSupported("XML", "");
109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("throw_True", state);
110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testIsSupported9() throws Throwable {
112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Document doc;
113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Node rootNode;
114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean state;
115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        doc = (Document) load("staff", builder);
116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        rootNode = doc.getDocumentElement();
117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        state = rootNode.isSupported("XML", "1.0");
118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("throw_True", state);
119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testIsSupported10() throws Throwable {
121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Document doc;
122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Node rootNode;
123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean state;
124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        doc = (Document) load("staff", builder);
125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        rootNode = doc.getDocumentElement();
126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        state = rootNode.isSupported("CORE", "2.0");
127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("throw_True", state);
128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testIsSupported11() throws Throwable {
130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Document doc;
131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Node rootNode;
132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean state;
133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        doc = (Document) load("staff", builder);
134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        rootNode = doc.getDocumentElement();
135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        state = rootNode.isSupported("XML", "2.0");
136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("throw_True", state);
137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
138f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testIsSupported12() throws Throwable {
140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        List<String> features = new ArrayList<String>();
141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        features.add("Core");
142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        features.add("XML");
143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        features.add("HTML");
144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        features.add("Views");
145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        features.add("StyleSheets");
146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        features.add("CSS");
147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        features.add("CSS2");
148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        features.add("Events");
149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        features.add("UIEvents");
150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        features.add("MouseEvents");
151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        features.add("MutationEvents");
152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        features.add("HTMLEvents");
153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        features.add("Range");
154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        features.add("Traversal");
155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        features.add("bogus.bogus.bogus");
156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Document doc;
158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Node rootNode;
159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String featureElement;
160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean state;
161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        doc = (Document) load("staff", builder);
162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        rootNode = doc.getDocumentElement();
163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        state = rootNode.isSupported("Core", "2.0");
164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Core2", state);
165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int indexN10078 = 0; indexN10078 < features.size(); indexN10078++) {
166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            featureElement = (String) features.get(indexN10078);
167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            state = rootNode.isSupported(featureElement, "1.0");
168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int indexN10083 = 0; indexN10083 < features.size(); indexN10083++) {
170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            featureElement = (String) features.get(indexN10083);
171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            state = rootNode.isSupported(featureElement, "2.0");
172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testIsSupported13() throws Throwable {
175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Document doc;
176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Node rootNode;
177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean state;
178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        doc = (Document) load("staff", builder);
179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        rootNode = doc.getDocumentElement();
180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        state = rootNode.isSupported("Core", "");
181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Core", state);
182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testIsSupported14() throws Throwable {
184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Document doc;
185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Node rootNode;
186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean state;
187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String nullString = null;
188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        doc = (Document) load("staff", builder);
190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        rootNode = doc.getDocumentElement();
191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        state = rootNode.isSupported("Core", nullString);
192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Core", state);
193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
195