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