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