1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/*
2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project This Java source file was generated by test-to-java.xsl
3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project and is a derived work from the source document.
4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project The source document contained the following notice:
5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
8f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes Copyright (c) 2001-2003 World Wide Web Consortium,
9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project (Massachusetts Institute of Technology, Institut National de
10f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes Recherche en Informatique et en Automatique, Keio University).  All
11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Rights Reserved.  This program is distributed under the W3C's Software
12f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes Intellectual Property License.  This program is distributed in the
13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hope that it will be useful, but WITHOUT ANY WARRANTY; without even
14f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes PURPOSE.
16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project See W3C License http://www.w3.org/Consortium/Legal/ for more details.
18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage tests.org.w3c.dom;
23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.ArrayList;
25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.List;
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.Node;
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.Document;
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.Element;
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.Attr;
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.DocumentType;
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.EntityReference;
33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.ProcessingInstruction;
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.xml.parsers.DocumentBuilder;
36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/**
38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The method "isSupported(feature,version)" Tests whether the DOM
39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * implementation implements a specific feature and that feature is supported by
40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this node.
41f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes *
42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Call the isSupported method on the document element node with a combination
43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * of features versions and versions as below. Valid feature names are case
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * insensitive and versions "2.0", "1.0" and if the version is not specified,
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * supporting any version of the feature should return true. Check if the value
46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * returned value was true.
47f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes *
48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @author IBM
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @author Neil Delima
50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see <a
51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe 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>
52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic final class NodeIsSupported extends DOMTestCase {
54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    DOMDocumentBuilderFactory factory;
56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    DocumentBuilder builder;
58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected void setUp() throws Exception {
60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        super.setUp();
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            factory = new DOMDocumentBuilderFactory(DOMDocumentBuilderFactory
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    .getConfiguration1());
64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            builder = factory.getBuilder();
65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected exception" + e.getMessage());
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected void tearDown() throws Exception {
71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        factory = null;
72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        builder = null;
73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        super.tearDown();
74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Runs the test case.
78f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws Throwable
80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             Any uncaught exception causes test to fail
81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testIsSupported1() throws Throwable {
83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Document doc;
84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Element element;
85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String version = "";
86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String version1 = "1.0";
87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String version2 = "2.0";
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String featureCore;
89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String featureXML;
90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean success;
91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        List<String> featuresXML = new ArrayList<String>();
92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        featuresXML.add("XML");
93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        featuresXML.add("xmL");
94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        List<String> featuresCore = new ArrayList<String>();
96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        featuresCore.add("Core");
97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        featuresCore.add("CORE");
98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        doc = (Document) load("staffNS", builder);
100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        element = doc.getDocumentElement();
101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int indexN10063 = 0; indexN10063 < featuresXML.size(); indexN10063++) {
102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            featureXML = (String) featuresXML.get(indexN10063);
103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            success = element.isSupported(featureXML, version);
104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue("nodeissupported01_XML1", success);
105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            success = element.isSupported(featureXML, version1);
106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue("nodeissupported01_XML2", success);
107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int indexN1007C = 0; indexN1007C < featuresCore.size(); indexN1007C++) {
109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            featureCore = (String) featuresCore.get(indexN1007C);
110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            success = element.isSupported(featureCore, version);
111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue("nodeissupported01_Core1", success);
112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            success = element.isSupported(featureCore, version1);
113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            success = element.isSupported(featureCore, version2);
114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue("nodeissupported01_Core3", success);
115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testIsSupported2() throws Throwable {
118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Document doc;
119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Attr attribute;
120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String version = "";
121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String version1 = "1.0";
122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String version2 = "2.0";
123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String featureCore;
124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String featureXML;
125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean success;
126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        List<String> featuresXML = new ArrayList<String>();
127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        featuresXML.add("XML");
128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        featuresXML.add("xmL");
129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        List<String> featuresCore = new ArrayList<String>();
131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        featuresCore.add("Core");
132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        featuresCore.add("CORE");
133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        doc = (Document) load("staffNS", builder);
135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        attribute = doc.createAttribute("TestAttr");
136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int indexN10064 = 0; indexN10064 < featuresXML.size(); indexN10064++) {
137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            featureXML = (String) featuresXML.get(indexN10064);
138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            success = attribute.isSupported(featureXML, version);
139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue("nodeissupported02_XML1", success);
140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            success = attribute.isSupported(featureXML, version1);
141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue("nodeissupported02_XML2", success);
142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int indexN1007D = 0; indexN1007D < featuresCore.size(); indexN1007D++) {
144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            featureCore = (String) featuresCore.get(indexN1007D);
145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            success = attribute.isSupported(featureCore, version);
146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue("nodeissupported02_Core1", success);
147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            success = attribute.isSupported(featureCore, version1);
148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            success = attribute.isSupported(featureCore, version2);
149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue("nodeissupported02_Core3", success);
150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testIsSupported3() throws Throwable {
153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Document doc;
154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        DocumentType docType;
155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean success;
156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        doc = (Document) load("staffNS", builder);
157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        docType = doc.getDoctype();
158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        success = docType.isSupported("", "");
159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse("nodeissupported03", success);
160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testIsSupported4() throws Throwable {
162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Document doc;
163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        EntityReference entRef;
164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean success;
165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        doc = (Document) load("staffNS", builder);
166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        entRef = doc.createEntityReference("ent1");
167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNotNull("createdEntRefNotNull", entRef);
168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        success = entRef.isSupported("XML CORE", "");
169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse("nodeissupported04", success);
170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testIsSupported5() throws Throwable {
172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Document doc;
173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ProcessingInstruction pi;
174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        boolean success;
175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        doc = (Document) load("staffNS", builder);
176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pi = doc.createProcessingInstruction("PITarget", "PIData");
177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        success = pi.isSupported("-", "+");
178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse("nodeissupported05", success);
179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
181