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