blob: 703730bcda58f81903c98e8985ef6c65e789e460 [file] [log] [blame]
The Android Open Source Projectb5de22c2012-04-01 00:00:00 -07001package tests.org.w3c.dom;
2
3import java.util.ArrayList;
4import java.util.List;
5
6import org.w3c.dom.DOMImplementation;
7import org.w3c.dom.Document;
8
9import javax.xml.parsers.DocumentBuilder;
10
11/**
12 * The "feature" parameter in the "hasFeature(feature,version)" method is the
13 * package name of the feature. Legal values are XML and HTML and CORE. (Test
14 * for feature core, lower case)
15 *
16 * Retrieve the entire DOM document and invoke its "getImplementation()" method.
17 * This should create a DOMImplementation object whose "hasFeature(feature,
18 * version)" method is invoked with feature equal to "core". The method should
19 * return a boolean "true".
20 *
21 * @author NIST
22 * @author Mary Brady
23 * @see <a
24 * href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-5CED94D7">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-5CED94D7</a>
25 */
26public final class DOMImplementationHasFeature extends DOMTestCase {
27
28 DOMDocumentBuilderFactory factory;
29
30 DocumentBuilder builder;
31
32 protected void setUp() throws Exception {
33 super.setUp();
34 try {
35 factory = new DOMDocumentBuilderFactory(DOMDocumentBuilderFactory
36 .getConfiguration1());
37 builder = factory.getBuilder();
38 } catch (Exception e) {
39 fail("Unexpected exception" + e.getMessage());
40 }
41 }
42
43 protected void tearDown() throws Exception {
44 factory = null;
45 builder = null;
46 super.tearDown();
47 }
48
49 /**
50 * Runs the test case.
51 *
52 * @throws Throwable
53 * Any uncaught exception causes test to fail
54 */
55 public void testHasFeatureCore() throws Throwable {
56 Document doc;
57 DOMImplementation domImpl;
58 boolean state;
59 doc = (Document) load("staff", builder);
60 domImpl = doc.getImplementation();
61 state = domImpl.hasFeature("core", "2.0");
62 assertTrue("domimplementationFeaturecoreAssert", state);
63 }
64 public void testHasFeatureXml() throws Throwable {
65 Document doc;
66 DOMImplementation domImpl;
67 boolean state;
68 doc = (Document) load("staff", builder);
69 domImpl = doc.getImplementation();
70 state = domImpl.hasFeature("xml", "2.0");
71 assertTrue("domimplementationFeaturexmlVersion2Assert", state);
72 }
73 public void testHasFeature1() throws Throwable {
74 Document doc;
75 DOMImplementation domImpl;
76 String version = "";
77 String version1 = "1.0";
78 String version2 = "2.0";
79 String featureCore;
80 String featureXML;
81 boolean success;
82 List<String> featuresXML = new ArrayList<String>();
83 featuresXML.add("XML");
84 featuresXML.add("xmL");
85
86 List<String> featuresCore = new ArrayList<String>();
87 featuresCore.add("Core");
88 featuresCore.add("CORE");
89
90 doc = (Document) load("staffNS", builder);
91 domImpl = doc.getImplementation();
92 for (int indexN10063 = 0; indexN10063 < featuresXML.size(); indexN10063++) {
93 featureXML = (String) featuresXML.get(indexN10063);
94 success = domImpl.hasFeature(featureXML, version);
95 assertTrue("domimplementationhasfeature01_XML_1", success);
96 success = domImpl.hasFeature(featureXML, version1);
97 assertTrue("domimplementationhasfeature01_XML_2", success);
98 }
99 for (int indexN1007C = 0; indexN1007C < featuresCore.size(); indexN1007C++) {
100 featureCore = (String) featuresCore.get(indexN1007C);
101 success = domImpl.hasFeature(featureCore, version);
102 assertTrue("domimplementationhasfeature01_Core_1", success);
103 success = domImpl.hasFeature(featureCore, version1);
104 success = domImpl.hasFeature(featureCore, version2);
105 assertTrue("domimplementationhasfeature01_Core_3", success);
106 }
107 }
108 public void testHasFeature2() throws Throwable {
109 Document doc;
110 DOMImplementation domImpl;
111 boolean success;
112 doc = (Document) load("staffNS", builder);
113 domImpl = doc.getImplementation();
114 success = domImpl.hasFeature("Blah Blah", "");
115 assertFalse("domimplementationhasfeature02", success);
116 }
117}