1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage tests.org.w3c.dom;
2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.ArrayList;
4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.List;
5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.DOMImplementation;
7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.Document;
8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.DocumentType;
9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.DOMException;
10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.xml.parsers.DocumentBuilder;
12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/**
14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The createDocument method with valid arguments, should create a DOM Document
15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * of the specified type.
16f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes *
17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Call the createDocument on this DOMImplementation with createDocument
18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * ("http://www.w3.org/DOMTest/L2",see the array below for valid QNames,null).
19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Check if the returned Document object is is empty with no Document Element.
20f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes *
21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @author IBM
22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @author Neil Delima
23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see <a
24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *      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>
25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic final class DOMImplementationCreateDocument extends DOMTestCase {
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    DOMDocumentBuilderFactory factory;
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    DocumentBuilder builder;
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected void setUp() throws Exception {
33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        super.setUp();
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            factory = new DOMDocumentBuilderFactory(DOMDocumentBuilderFactory
36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    .getConfiguration1());
37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            builder = factory.getBuilder();
38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected exception" + e.getMessage());
40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected void tearDown() throws Exception {
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        factory = null;
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        builder = null;
46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        super.tearDown();
47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Runs the test case.
51f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws Throwable
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             Any uncaught exception causes test to fail
54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testCreateDocument3() throws Throwable {
56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Document doc;
57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        DOMImplementation domImpl;
58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Document newDoc;
59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        DocumentType docType = null;
60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String namespaceURI = "http://www.w3.org/DOMTest/L2";
62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String qualifiedName;
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        List<String> qualifiedNames = new ArrayList<String>();
64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        qualifiedNames.add("_:_");
65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        qualifiedNames.add("_:h0");
66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        qualifiedNames.add("_:test");
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        qualifiedNames.add("l_:_");
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        qualifiedNames.add("ns:_0");
69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        qualifiedNames.add("ns:a0");
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        qualifiedNames.add("ns0:test");
71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        qualifiedNames.add("a.b:c");
72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        qualifiedNames.add("a-b:c");
73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        qualifiedNames.add("a-b:c");
74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        doc = (Document) load("staffNS", builder);
76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        domImpl = doc.getImplementation();
77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int indexN1006B = 0; indexN1006B < qualifiedNames.size(); indexN1006B++) {
78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            qualifiedName = (String) qualifiedNames.get(indexN1006B);
79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            newDoc = domImpl.createDocument(namespaceURI, qualifiedName,
80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    docType);
81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertNotNull("domimplementationcreatedocument03", newDoc);
82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testCreateDocument4() throws Throwable {
85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Document doc;
86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        DOMImplementation domImpl;
87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String namespaceURI = null;
89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String qualifiedName = "dom:root";
91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        DocumentType docType = null;
92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        doc = (Document) load("staffNS", builder);
94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        domImpl = doc.getImplementation();
95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        {
97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            boolean success = false;
98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            try {
99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                domImpl.createDocument(namespaceURI, qualifiedName, docType);
100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            } catch (DOMException ex) {
101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                success = (ex.code == DOMException.NAMESPACE_ERR);
102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            }
103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue("domimplementationcreatedocument04", success);
104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testCreateDocument5() throws Throwable {
107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Document doc;
108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        DOMImplementation domImpl;
109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String namespaceURI = "http://www.w3.org/xml/1998/namespace";
111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String qualifiedName = "xml:root";
112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        DocumentType docType = null;
113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        doc = (Document) load("staffNS", builder);
115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        domImpl = doc.getImplementation();
116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        {
118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            boolean success = false;
119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            try {
120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                domImpl.createDocument(namespaceURI, qualifiedName, docType);
121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            } catch (DOMException ex) {
122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                success = (ex.code == DOMException.NAMESPACE_ERR);
123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            }
124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue("domimplementationcreatedocument05", success);
125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testCreateDocument7() throws Throwable {
128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Document doc;
129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        DOMImplementation domImpl;
130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String namespaceURI = "http://www.w3.org/DOMTest/level2";
132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        DocumentType docType = null;
133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        doc = (Document) load("staffNS", builder);
135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        domImpl = doc.getImplementation();
136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        {
138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            boolean success = false;
139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            try {
140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                domImpl.createDocument(namespaceURI, ":", docType);
141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            } catch (DOMException ex) {
142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                success = (ex.code == DOMException.NAMESPACE_ERR);
143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            }
144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue("domimplementationcreatedocument07", success);
145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
148