1package tests.org.w3c.dom;
2
3import dalvik.annotation.TestTargets;
4import dalvik.annotation.TestLevel;
5import dalvik.annotation.TestTargetNew;
6import dalvik.annotation.TestTargetClass;
7
8import org.w3c.dom.Attr;
9import org.w3c.dom.Document;
10import org.w3c.dom.Element;
11import org.w3c.dom.Node;
12import org.w3c.dom.NodeList;
13import org.w3c.dom.NamedNodeMap;
14
15import javax.xml.parsers.DocumentBuilder;
16
17@TestTargetClass(Attr.class)
18public final class AttrGetOwnerElement extends DOMTestCase {
19
20    DOMDocumentBuilderFactory factory;
21
22    DocumentBuilder builder;
23
24    protected void setUp() throws Exception {
25        super.setUp();
26        try {
27            factory = new DOMDocumentBuilderFactory(DOMDocumentBuilderFactory
28                    .getConfiguration2());
29            builder = factory.getBuilder();
30        } catch (Exception e) {
31            fail("Unexpected exception " + e.getMessage());
32        }
33    }
34
35    protected void tearDown() throws Exception {
36        factory = null;
37        builder = null;
38        super.tearDown();
39    }
40
41// Assumes validation.
42//    public void testGetOwnerElement1() throws Throwable {
43//        Document doc;
44//        Attr attr;
45//        Element element;
46//        Element ownerElement;
47//        String ownerElementName;
48//        NodeList elementList;
49//        NamedNodeMap attributes;
50//        String nullNS = null;
51//
52//        doc = (Document) load("staffNS", builder);
53//
54//        elementList = doc.getElementsByTagNameNS("http://www.nist.gov",
55//                "employee");
56//        element = (Element) elementList.item(1);
57//        attributes = element.getAttributes();
58//        attr = (Attr) attributes.getNamedItemNS(nullNS, "defaultAttr");
59//        ownerElement = attr.getOwnerElement();
60//        ownerElementName = ownerElement.getNodeName();
61//        assertEquals("attrgetownerelement01", "emp:employee", ownerElementName);
62//
63//    }
64    @TestTargetNew(
65        level = TestLevel.PARTIAL,
66        notes = "Doesn't verify that getOwnerElement returns null if an attribute is not in use.",
67        method = "getOwnerElement",
68        args = {}
69    )
70    public void testGetOwnerElement2() throws Throwable {
71        Document doc;
72        Element element;
73        Element ownerElement;
74        String ownerElementName;
75        Attr attr;
76
77        doc = (Document) load("staffNS", builder);
78        element = doc.createElement("root");
79        attr = doc.createAttributeNS("http://www.w3.org/DOM/L1", "L1:att");
80        element.setAttributeNodeNS(attr);
81        ownerElement = attr.getOwnerElement();
82        ownerElementName = ownerElement.getNodeName();
83        assertEquals("attrgetownerelement02", "root", ownerElementName);
84    }
85    @TestTargetNew(
86        level = TestLevel.PARTIAL,
87        notes = "Verifies that getOwnerElement returns null if an attribute is not in use.",
88        method = "getOwnerElement",
89        args = {}
90    )
91    public void testGetOwnerElement3() throws Throwable {
92        Document doc;
93        Node ownerElement;
94        Attr attr;
95        doc = (Document) load("staffNS", builder);
96        attr = doc.createAttributeNS("http://www.w3.org/DOM", "dom:attr");
97        ownerElement = attr.getOwnerElement();
98        assertNull("attrgetownerelement03", ownerElement);
99    }
100    @TestTargetNew(
101        level = TestLevel.PARTIAL,
102        notes = "Verifies that getOwnerElement returns null if an attribute is not in use.",
103        method = "getOwnerElement",
104        args = {}
105    )
106    public void testGetOwnerElement4() throws Throwable {
107        Document doc;
108        Document docImp;
109        Node ownerElement;
110        Element element;
111        Attr attr;
112        Attr attrImp;
113        NodeList addresses;
114
115        doc = (Document) load("staffNS", builder);
116        docImp = (Document) load("staff", builder);
117
118        addresses = doc
119                .getElementsByTagNameNS("http://www.nist.gov", "address");
120        element = (Element) addresses.item(1);
121        assertNotNull("empAddressNotNull", element);
122        attr = element.getAttributeNodeNS("http://www.nist.gov", "zone");
123        attrImp = (Attr) docImp.importNode(attr, true);
124        ownerElement = attrImp.getOwnerElement();
125        assertNull("attrgetownerelement04", ownerElement);
126    }
127    @TestTargetNew(
128        level = TestLevel.PARTIAL,
129        notes = "Doesn't verify that getOwnerElement returns null if an attribute is not in use.",
130        method = "getOwnerElement",
131        args = {}
132    )
133    public void testGetOwnerElement5() throws Throwable {
134        Document doc;
135        Node element;
136        Element ownerElement;
137        Element parentElement;
138        NodeList elementList;
139        String ownerElementName;
140        Attr attr;
141
142        NamedNodeMap nodeMap;
143        String nullNS = null;
144
145        doc = (Document) load("staffNS", builder);
146        elementList = doc.getElementsByTagNameNS("*", "address");
147        element = elementList.item(1);
148        parentElement = (Element) element.getParentNode();
149        nodeMap = element.getAttributes();
150        parentElement.removeChild(element);
151        attr = (Attr) nodeMap.getNamedItemNS(nullNS, "street");
152        ownerElement = attr.getOwnerElement();
153        ownerElementName = ownerElement.getNodeName();
154        assertEquals("attrgetownerelement05", "address", ownerElementName);
155    }
156}
157