1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage tests.org.w3c.dom; 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.Attr; 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.Document; 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.Element; 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.Node; 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.NodeList; 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.NamedNodeMap; 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.xml.parsers.DocumentBuilder; 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic final class AttrGetOwnerElement extends DOMTestCase { 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project DOMDocumentBuilderFactory factory; 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project DocumentBuilder builder; 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void setUp() throws Exception { 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super.setUp(); 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project factory = new DOMDocumentBuilderFactory(DOMDocumentBuilderFactory 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .getConfiguration2()); 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project builder = factory.getBuilder(); 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected exception " + e.getMessage()); 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void tearDown() throws Exception { 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project factory = null; 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project builder = null; 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super.tearDown(); 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 35f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes// Assumes validation. 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// public void testGetOwnerElement1() throws Throwable { 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// Document doc; 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// Attr attr; 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// Element element; 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// Element ownerElement; 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// String ownerElementName; 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// NodeList elementList; 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// NamedNodeMap attributes; 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// String nullNS = null; 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// doc = (Document) load("staffNS", builder); 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// elementList = doc.getElementsByTagNameNS("http://www.nist.gov", 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// "employee"); 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// element = (Element) elementList.item(1); 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// attributes = element.getAttributes(); 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// attr = (Attr) attributes.getNamedItemNS(nullNS, "defaultAttr"); 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// ownerElement = attr.getOwnerElement(); 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// ownerElementName = ownerElement.getNodeName(); 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// assertEquals("attrgetownerelement01", "emp:employee", ownerElementName); 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetOwnerElement2() throws Throwable { 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document doc; 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Element element; 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Element ownerElement; 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String ownerElementName; 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Attr attr; 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project doc = (Document) load("staffNS", builder); 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project element = doc.createElement("root"); 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project attr = doc.createAttributeNS("http://www.w3.org/DOM/L1", "L1:att"); 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project element.setAttributeNodeNS(attr); 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ownerElement = attr.getOwnerElement(); 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ownerElementName = ownerElement.getNodeName(); 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("attrgetownerelement02", "root", ownerElementName); 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetOwnerElement3() throws Throwable { 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document doc; 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Node ownerElement; 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Attr attr; 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project doc = (Document) load("staffNS", builder); 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project attr = doc.createAttributeNS("http://www.w3.org/DOM", "dom:attr"); 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ownerElement = attr.getOwnerElement(); 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("attrgetownerelement03", ownerElement); 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetOwnerElement4() throws Throwable { 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document doc; 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document docImp; 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Node ownerElement; 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Element element; 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Attr attr; 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Attr attrImp; 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project NodeList addresses; 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project doc = (Document) load("staffNS", builder); 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project docImp = (Document) load("staff", builder); 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project addresses = doc 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .getElementsByTagNameNS("http://www.nist.gov", "address"); 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project element = (Element) addresses.item(1); 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull("empAddressNotNull", element); 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project attr = element.getAttributeNodeNS("http://www.nist.gov", "zone"); 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project attrImp = (Attr) docImp.importNode(attr, true); 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ownerElement = attrImp.getOwnerElement(); 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("attrgetownerelement04", ownerElement); 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetOwnerElement5() throws Throwable { 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document doc; 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Node element; 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Element ownerElement; 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Element parentElement; 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project NodeList elementList; 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String ownerElementName; 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Attr attr; 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project NamedNodeMap nodeMap; 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String nullNS = null; 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project doc = (Document) load("staffNS", builder); 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project elementList = doc.getElementsByTagNameNS("*", "address"); 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project element = elementList.item(1); 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parentElement = (Element) element.getParentNode(); 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project nodeMap = element.getAttributes(); 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parentElement.removeChild(element); 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project attr = (Attr) nodeMap.getNamedItemNS(nullNS, "street"); 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ownerElement = attr.getOwnerElement(); 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ownerElementName = ownerElement.getNodeName(); 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("attrgetownerelement05", "address", ownerElementName); 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 127