1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage tests.org.w3c.dom; 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.Element; 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.Document; 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport org.w3c.dom.NodeList; 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.xml.parsers.DocumentBuilder; 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The "hasAttribute()" method for an Element should return true if the element 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * has an attribute with the given name. Retrieve the first "address" element 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * and the "hasAttribute()" method should return false since the element does 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * not have a default value. 14f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @author NIST 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @author Mary Brady 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see <a 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElHasAttr">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElHasAttr</a> 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic final class HasAttribute extends DOMTestCase { 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project DOMDocumentBuilderFactory factory; 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project DocumentBuilder builder; 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void setUp() throws Exception { 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super.setUp(); 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project factory = new DOMDocumentBuilderFactory(DOMDocumentBuilderFactory 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .getConfiguration1()); 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project builder = factory.getBuilder(); 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpected exception" + e.getMessage()); 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void tearDown() throws Exception { 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project factory = null; 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project builder = null; 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super.tearDown(); 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Runs the test case. 45f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws Throwable 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Any uncaught exception causes test to fail 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testHasAttribute1() throws Throwable { 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document doc; 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project NodeList elementList; 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Element testNode; 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean state; 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project doc = (Document) load("staff", builder); 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project elementList = doc.getElementsByTagName("address"); 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testNode = (Element) elementList.item(4); 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project state = testNode.hasAttribute("domestic"); 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse("throw_False", state); 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// Assumes validation. 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// public void testHasAttribute2() throws Throwable { 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// Document doc; 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// NodeList elementList; 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// Element testNode; 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// boolean state; 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// doc = (Document) load("staff", builder); 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// elementList = doc.getElementsByTagName("address"); 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// testNode = (Element) elementList.item(0); 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// state = testNode.hasAttribute("street"); 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// assertTrue("throw_True", state); 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project// } 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testHasAttribute3() throws Throwable { 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document doc; 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project NodeList elementList; 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Element testNode; 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean state; 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project doc = (Document) load("staff", builder); 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project elementList = doc.getElementsByTagName("address"); 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testNode = (Element) elementList.item(0); 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project state = testNode.hasAttribute("nomatch"); 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse("throw_False", state); 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testHasAttribute4() throws Throwable { 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Document doc; 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project NodeList elementList; 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Element testNode; 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean state; 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project doc = (Document) load("staffNS", builder); 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project elementList = doc.getElementsByTagName("address"); 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testNode = (Element) elementList.item(0); 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project state = testNode.hasAttribute("dmstc:domestic"); 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("hasDomesticAttr", state); 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 96