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