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