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 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.DOMImplementation;
28import org.w3c.dom.Document;
29import org.w3c.dom.DocumentType;
30
31import javax.xml.parsers.DocumentBuilder;
32
33/**
34 * The method createDocumentType with valid values for qualifiedName, publicId
35 * and systemId should create an empty DocumentType node.
36 *
37 * Invoke createDocument on this DOMImplementation with a valid qualifiedName
38 * and different publicIds and systemIds. Check if the the DocumentType node was
39 * created with its ownerDocument attribute set to null.
40 *
41 * @author IBM
42 * @author Neil Delima
43 * @see <a
44 *      href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocument">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocument</a>
45 */
46public final class DOMImplementationCreateDocumentType extends DOMTestCase {
47
48    DOMDocumentBuilderFactory factory;
49
50    DocumentBuilder builder;
51
52    protected void setUp() throws Exception {
53        super.setUp();
54        try {
55            factory = new DOMDocumentBuilderFactory(DOMDocumentBuilderFactory
56                    .getConfiguration1());
57            builder = factory.getBuilder();
58        } catch (Exception e) {
59            fail("Unexpected exception" + e.getMessage());
60        }
61    }
62
63    protected void tearDown() throws Exception {
64        factory = null;
65        builder = null;
66        super.tearDown();
67    }
68
69    /**
70     * Runs the test case.
71     *
72     * @throws Throwable
73     *             Any uncaught exception causes test to fail
74     */
75    public void testCreateDocumentType1() throws Throwable {
76        Document doc;
77        DOMImplementation domImpl;
78        DocumentType newDocType;
79        Document ownerDocument;
80        String qualifiedName = "test:root";
81        String publicId;
82        String systemId;
83        List<String> publicIds = new ArrayList<String>();
84        publicIds.add("1234");
85        publicIds.add("test");
86
87        List<String> systemIds = new ArrayList<String>();
88        systemIds.add("");
89        systemIds.add("test");
90
91        doc = (Document) load("staffNS", builder);
92        domImpl = doc.getImplementation();
93        for (int indexN1005D = 0; indexN1005D < publicIds.size(); indexN1005D++) {
94            publicId = (String) publicIds.get(indexN1005D);
95            for (int indexN10061 = 0; indexN10061 < systemIds.size(); indexN10061++) {
96                systemId = (String) systemIds.get(indexN10061);
97                newDocType = domImpl.createDocumentType(qualifiedName,
98                        publicId, systemId);
99                assertNotNull(
100                        "domimplementationcreatedocumenttype01_newDocType",
101                        newDocType);
102                ownerDocument = newDocType.getOwnerDocument();
103                assertNull(
104                        "domimplementationcreatedocumenttype01_ownerDocument",
105                        ownerDocument);
106            }
107        }
108    }
109    public void testCreateDocumentType2() throws Throwable {
110        Document doc;
111        DOMImplementation domImpl;
112        DocumentType newDocType;
113        Document ownerDocument;
114        String publicId = "http://www.w3.org/DOM/Test/dom2.dtd";
115        String systemId = "dom2.dtd";
116        String qualifiedName;
117        List<String> qualifiedNames = new ArrayList<String>();
118        qualifiedNames.add("_:_");
119        qualifiedNames.add("_:h0");
120        qualifiedNames.add("_:test");
121        qualifiedNames.add("_:_.");
122        qualifiedNames.add("_:a-");
123        qualifiedNames.add("l_:_");
124        qualifiedNames.add("ns:_0");
125        qualifiedNames.add("ns:a0");
126        qualifiedNames.add("ns0:test");
127        qualifiedNames.add("ns:EEE.");
128        qualifiedNames.add("ns:_-");
129        qualifiedNames.add("a.b:c");
130        qualifiedNames.add("a-b:c.j");
131        qualifiedNames.add("a-b:c");
132
133        doc = (Document) load("staffNS", builder);
134        domImpl = doc.getImplementation();
135        for (int indexN10077 = 0; indexN10077 < qualifiedNames.size(); indexN10077++) {
136            qualifiedName = (String) qualifiedNames.get(indexN10077);
137            newDocType = domImpl.createDocumentType(qualifiedName, publicId,
138                    systemId);
139            assertNotNull("domimplementationcreatedocumenttype02_newDocType",
140                    newDocType);
141            ownerDocument = newDocType.getOwnerDocument();
142            assertNull("domimplementationcreatedocumenttype02_ownerDocument",
143                    ownerDocument);
144        }
145    }
146    public void testCreateDocumentType4() throws Throwable {
147        Document doc;
148        DOMImplementation domImpl;
149        DocumentType newDocType;
150        Document ownerDocument;
151        String publicId = "http://www.w3.org/DOM/Test/dom2.dtd";
152        String systemId = "dom2.dtd";
153        String qualifiedName;
154        List<String> qualifiedNames = new ArrayList<String>();
155        qualifiedNames.add("_:_");
156        qualifiedNames.add("_:h0");
157        qualifiedNames.add("_:test");
158        qualifiedNames.add("_:_.");
159        qualifiedNames.add("_:a-");
160        qualifiedNames.add("l_:_");
161        qualifiedNames.add("ns:_0");
162        qualifiedNames.add("ns:a0");
163        qualifiedNames.add("ns0:test");
164        qualifiedNames.add("ns:EEE.");
165        qualifiedNames.add("ns:_-");
166        qualifiedNames.add("a.b:c");
167        qualifiedNames.add("a-b:c.j");
168        qualifiedNames.add("a-b:c");
169
170        doc = (Document) load("staffNS", builder);
171        domImpl = doc.getImplementation();
172        for (int indexN10077 = 0; indexN10077 < qualifiedNames.size(); indexN10077++) {
173            qualifiedName = (String) qualifiedNames.get(indexN10077);
174            newDocType = domImpl.createDocumentType(qualifiedName, publicId,
175                    systemId);
176            assertNotNull("domimplementationcreatedocumenttype02_newDocType",
177                    newDocType);
178            ownerDocument = newDocType.getOwnerDocument();
179            assertNull("domimplementationcreatedocumenttype02_ownerDocument",
180                    ownerDocument);
181        }
182    }
183
184}
185