1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage tests.org.w3c.dom;
2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.Element;
4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.Document;
5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.NodeList;
6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.xml.parsers.DocumentBuilder;
8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/**
10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The method getElementsByTagNameNS returns a NodeList of all the Elements with
11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * a given local name and namespace URI in the order in which they are
12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * encountered in a preorder traversal of the Document tree. Invoke
13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * getElementsByTagNameNS on the documentElement with values for namespaceURI
14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * '*' and localName '*'. Verify if this returns a nodeList of 0 elements.
15f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes *
16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @author IBM
17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @author Neil Delima
18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see <a
19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *      href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS</a>
20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic final class ElementGetElementsByTagNameNS extends DOMTestCase {
22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    DOMDocumentBuilderFactory factory;
24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    DocumentBuilder builder;
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected void setUp() throws Exception {
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        super.setUp();
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            factory = new DOMDocumentBuilderFactory(DOMDocumentBuilderFactory
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    .getConfiguration2());
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            builder = factory.getBuilder();
33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Unexpected exception" + e.getMessage());
35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected void tearDown() throws Exception {
39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        factory = null;
40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        builder = null;
41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        super.tearDown();
42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    /**
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * Runs the test case.
46f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes     *
47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     * @throws Throwable
48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     *             Any uncaught exception causes test to fail
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project     */
50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testGetElementsByTagNameNS1() throws Throwable {
51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Document doc;
52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Element element;
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        NodeList elementList;
54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        doc = (Document) load("staffNS", builder);
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        element = doc.getDocumentElement();
56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        elementList = element.getElementsByTagNameNS("**", "*");
57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("elementgetelementsbytagnamens02", 0, elementList
58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getLength());
59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testGetElementsByTagNameNS4() throws Throwable {
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Document doc;
62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Element element;
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Element child1;
64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Element child2;
65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Element child3;
66f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        NodeList elementList;
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String nullNS = null;
69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        doc = (Document) load("staffNS", builder);
71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        element = doc.createElementNS("http://www.w3.org/DOM", "root");
72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        child1 = doc.createElementNS("http://www.w3.org/DOM/Level1",
73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                "dom:child");
74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        child2 = doc.createElementNS(nullNS, "child");
75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        child3 = doc.createElementNS("http://www.w3.org/DOM/Level2",
76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                "dom:child");
77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        element.appendChild(child1);
78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        element.appendChild(child2);
79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        element.appendChild(child3);
80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        elementList = element.getElementsByTagNameNS(nullNS, "child");
81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("elementgetelementsbytagnamens04_1", 1, elementList
82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getLength());
83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        elementList = element.getElementsByTagNameNS("*", "child");
84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("elementgetelementsbytagnamens04_2", 3, elementList
85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getLength());
86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testGetElementsByTagNameNS5() throws Throwable {
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Document doc;
89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Element element;
90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        NodeList elementList;
91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        doc = (Document) load("staffNS", builder);
92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        element = doc.getDocumentElement();
93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        elementList = element.getElementsByTagNameNS(
94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                "http://www.altavista.com", "*");
95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("elementgetelementsbytagnamens05", 1, elementList
96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                .getLength());
97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
99