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