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