1package tests.org.w3c.dom;
2
3import dalvik.annotation.TestTargets;
4import dalvik.annotation.TestLevel;
5import dalvik.annotation.TestTargetNew;
6import dalvik.annotation.TestTargetClass;
7
8import org.w3c.dom.Element;
9import org.w3c.dom.Document;
10import org.w3c.dom.NodeList;
11
12import javax.xml.parsers.DocumentBuilder;
13
14/**
15 * The method getElementsByTagNameNS returns a NodeList of all the Elements with
16 * a given local name and namespace URI in the order in which they are
17 * encountered in a preorder traversal of the Document tree. Invoke
18 * getElementsByTagNameNS on the documentElement with values for namespaceURI
19 * '*' and localName '*'. Verify if this returns a nodeList of 0 elements.
20 *
21 * @author IBM
22 * @author Neil Delima
23 * @see <a
24 *      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>
25 */
26@TestTargetClass(Element.class)
27public final class ElementGetElementsByTagNameNS extends DOMTestCase {
28
29    DOMDocumentBuilderFactory factory;
30
31    DocumentBuilder builder;
32
33    protected void setUp() throws Exception {
34        super.setUp();
35        try {
36            factory = new DOMDocumentBuilderFactory(DOMDocumentBuilderFactory
37                    .getConfiguration2());
38            builder = factory.getBuilder();
39        } catch (Exception e) {
40            fail("Unexpected exception" + e.getMessage());
41        }
42    }
43
44    protected void tearDown() throws Exception {
45        factory = null;
46        builder = null;
47        super.tearDown();
48    }
49
50    /**
51     * Runs the test case.
52     *
53     * @throws Throwable
54     *             Any uncaught exception causes test to fail
55     */
56    @TestTargetNew(
57        level = TestLevel.PARTIAL,
58        notes = "Doesn't verify DOMException.",
59        method = "getElementsByTagNameNS",
60        args = {java.lang.String.class, java.lang.String.class}
61    )
62    public void testGetElementsByTagNameNS1() throws Throwable {
63        Document doc;
64        Element element;
65        NodeList elementList;
66        doc = (Document) load("staffNS", builder);
67        element = doc.getDocumentElement();
68        elementList = element.getElementsByTagNameNS("**", "*");
69        assertEquals("elementgetelementsbytagnamens02", 0, elementList
70                .getLength());
71    }
72    @TestTargetNew(
73        level = TestLevel.PARTIAL,
74        notes = "Doesn't verify DOMException.",
75        method = "getElementsByTagNameNS",
76        args = {java.lang.String.class, java.lang.String.class}
77    )
78    public void testGetElementsByTagNameNS4() throws Throwable {
79        Document doc;
80        Element element;
81        Element child1;
82        Element child2;
83        Element child3;
84
85        NodeList elementList;
86        String nullNS = null;
87
88        doc = (Document) load("staffNS", builder);
89        element = doc.createElementNS("http://www.w3.org/DOM", "root");
90        child1 = doc.createElementNS("http://www.w3.org/DOM/Level1",
91                "dom:child");
92        child2 = doc.createElementNS(nullNS, "child");
93        child3 = doc.createElementNS("http://www.w3.org/DOM/Level2",
94                "dom:child");
95        element.appendChild(child1);
96        element.appendChild(child2);
97        element.appendChild(child3);
98        elementList = element.getElementsByTagNameNS(nullNS, "child");
99        assertEquals("elementgetelementsbytagnamens04_1", 1, elementList
100                .getLength());
101        elementList = element.getElementsByTagNameNS("*", "child");
102        assertEquals("elementgetelementsbytagnamens04_2", 3, elementList
103                .getLength());
104    }
105    @TestTargetNew(
106        level = TestLevel.PARTIAL,
107        notes = "Doesn't verify DOMException.",
108        method = "getElementsByTagNameNS",
109        args = {java.lang.String.class, java.lang.String.class}
110    )
111    public void testGetElementsByTagNameNS5() throws Throwable {
112        Document doc;
113        Element element;
114        NodeList elementList;
115        doc = (Document) load("staffNS", builder);
116        element = doc.getDocumentElement();
117        elementList = element.getElementsByTagNameNS(
118                "http://www.altavista.com", "*");
119        assertEquals("elementgetelementsbytagnamens05", 1, elementList
120                .getLength());
121    }
122}
123