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.Attr;
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 getAttributeNodeNS retrieves an Attr node by local name and
11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * namespace URI. Create a new element node and add 2 new attribute nodes to it
12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * that have the same local name but different namespaceURIs and prefixes.
13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Retrieve an attribute using namespace and localname and check its value, name
14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * and namespaceURI.
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-ElGetAtNodeNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElGetAtNodeNS</a>
20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic final class ElementGetAttributeNodeNS 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 testGetAttributeNodeNS1() throws Throwable {
51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Document doc;
52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Element element;
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Attr attribute1;
54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Attr attribute2;
55f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
56f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Attr attribute;
58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String attrValue;
59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String attrName;
60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String attNodeName;
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String attrLocalName;
62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String attrNS;
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        doc = (Document) load("staffNS", builder);
64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        element = doc.createElementNS("namespaceURI", "root");
65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        attribute1 = doc.createAttributeNS("http://www.w3.org/DOM/Level2",
66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                "l2:att");
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        element.setAttributeNodeNS(attribute1);
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        attribute2 = doc.createAttributeNS("http://www.w3.org/DOM/Level1",
69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                "att");
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        element.setAttributeNodeNS(attribute2);
71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        attribute = element.getAttributeNodeNS("http://www.w3.org/DOM/Level2",
72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                "att");
73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        attrValue = attribute.getNodeValue();
74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        attrName = attribute.getName();
75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        attNodeName = attribute.getNodeName();
76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        attrLocalName = attribute.getLocalName();
77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        attrNS = attribute.getNamespaceURI();
78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("elementgetattributenodens01_attrValue", "", attrValue);
79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("elementgetattributenodens01_attrName", "l2:att", attrName);
80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("elementgetattributenodens01_attrNodeName", "l2:att",
81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                attNodeName);
82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("elementgetattributenodens01_attrLocalName", "att",
83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                attrLocalName);
84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("elementgetattributenodens01_attrNs",
85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                "http://www.w3.org/DOM/Level2", attrNS);
86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testGetAttributeNodeNS2() throws Throwable {
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Document doc;
89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Element element;
90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Attr attribute;
91f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String attrValue;
93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        doc = (Document) load("staffNS", builder);
94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        element = doc.createElementNS("namespaceURI", "root");
95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        attribute = doc.createAttributeNS("http://www.w3.org/DOM/Level2",
96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                "l2:att");
97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        element.setAttributeNodeNS(attribute);
98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        attribute = element.getAttributeNodeNS("http://www.w3.org/DOM/Level2",
99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                "att");
100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        attrValue = attribute.getNodeValue();
101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("elementgetattributenodens02", "", attrValue);
102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// Assumes validation.
105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//    public void testGetAttributeNodeNS3() throws Throwable {
106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        Document doc;
107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        Element element;
108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        Attr attribute;
109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        String attrValue;
110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        NodeList childList;
111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        String nullNS = null;
112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//
113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        doc = (Document) load("staffNS", builder);
114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        childList = doc.getElementsByTagNameNS("http://www.nist.gov",
115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//                "employee");
116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        element = (Element) childList.item(1);
117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        attribute = element.getAttributeNodeNS(nullNS, "defaultAttr");
118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        attrValue = attribute.getNodeValue();
119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//        assertEquals("elementgetattributenodens03", "defaultVal", attrValue);
120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project//    }
121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
122