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.NamedNodeMap;
9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.w3c.dom.Document;
10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.w3c.dom.Attr;
11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.w3c.dom.Node;
12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.w3c.dom.NodeList;
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport javax.xml.parsers.DocumentBuilder;
15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/**
17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The "getNamedItemNS(namespaceURI,localName)" method for a NamedNodeMap should
18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * return a node specified by localName and namespaceURI
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Retrieve a list of elements with tag name "address". Access the second
21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * element from the list and get its attributes. Try to retrieve the attribute
22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * node with local name "domestic" and namespace uri "http://www.usa.com" with
23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * method getNamedItemNS(namespaceURI,localName).
24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @author NIST
26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @author Mary Brady
27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see <a
28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *      href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-F68D095">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-F68D095</a>
29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project@TestTargetClass(NamedNodeMap.class)
31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic final class GetNamedItemNS extends DOMTestCase {
32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    DOMDocumentBuilderFactory factory;
34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    DocumentBuilder builder;
36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    protected void setUp() throws Exception {
38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        super.setUp();
39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            factory = new DOMDocumentBuilderFactory(DOMDocumentBuilderFactory
41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                    .getConfiguration2());
42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            builder = factory.getBuilder();
43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (Exception e) {
44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Unexpected exception" + e.getMessage());
45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    protected void tearDown() throws Exception {
49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        factory = null;
50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        builder = null;
51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        super.tearDown();
52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Runs the test case.
56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @throws Throwable
58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             Any uncaught exception causes test to fail
59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.PARTIAL,
62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "Doesn't verify DOMException.",
63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "getNamedItem",
64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class}
65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void testGetNamedItemNS1() throws Throwable {
67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Document doc;
68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        NodeList elementList;
69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Node testEmployee;
70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        NamedNodeMap attributes;
71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Attr domesticAttr;
72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String attrName;
73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        doc = (Document) load("staffNS", builder);
74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        elementList = doc.getElementsByTagName("address");
75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        testEmployee = elementList.item(1);
76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        attributes = testEmployee.getAttributes();
77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        domesticAttr = (Attr) attributes.getNamedItemNS("http://www.usa.com",
78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "domestic");
79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        attrName = domesticAttr.getNodeName();
80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("attrName", "dmstc:domestic", attrName);
81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.PARTIAL,
84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "Doesn't verify DOMException.",
85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "getNamedItemNS",
86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class, java.lang.String.class}
87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void testGetNamedItemNS2() throws Throwable {
89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String namespaceURI = "http://www.usa.com";
90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String localName = "domest";
91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Document doc;
92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        NodeList elementList;
93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Node testEmployee;
94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        NamedNodeMap attributes;
95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Attr newAttr;
96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        doc = (Document) load("staffNS", builder);
97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        elementList = doc.getElementsByTagName("address");
98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        testEmployee = elementList.item(1);
99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        attributes = testEmployee.getAttributes();
100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        newAttr = (Attr) attributes.getNamedItemNS(namespaceURI, localName);
101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertNull("throw_Null", newAttr);
102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// Assumes validation.
105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//    public void testGetNamedItemNS3() throws Throwable {
106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        Document doc;
107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        DocumentType docType;
108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        NamedNodeMap entities;
109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        Entity entity;
110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        String nullNS = null;
111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//
112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        doc = (Document) load("staffNS", builder);
113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        docType = doc.getDoctype();
114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        entities = docType.getEntities();
115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        assertNotNull("entitiesNotNull", entities);
116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        entity = (Entity) entities.getNamedItemNS(nullNS, "ent1");
117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        assertNotNull("entityNull", entity);
118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//    }
119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project// Assumes validation.
121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//    public void testGetNamedItemNS4() throws Throwable {
122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        Document doc;
123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        DocumentType docType;
124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        NamedNodeMap notations;
125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        Notation notation;
126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        String nullNS = null;
127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//
128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        doc = (Document) load("staffNS", builder);
129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        docType = doc.getDoctype();
130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        notations = docType.getNotations();
131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        assertNotNull("notationsNotNull", notations);
132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        notation = (Notation) notations.getNamedItemNS(nullNS, "notation1");
133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        assertNotNull("notationNull", notation);
134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//    }
135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
136