1 package tests.org.w3c.dom;
2 
3 import org.w3c.dom.Element;
4 import org.w3c.dom.Document;
5 import org.w3c.dom.Attr;
6 
7 import javax.xml.parsers.DocumentBuilder;
8 
9 /**
10  * The method hasAttribute returns true when an attribute with a given name is
11  * specified on this element or has a default value, false otherwise Invoke the
12  * hasAttribute method to check if the documentElement has attributres.
13  *
14  * @author IBM
15  * @author Neil Delima
16  * @see <a
17  *      href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeHasAttrs">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeHasAttrs</a>
18  */
19 public final class ElementHasAttribute extends DOMTestCase {
20 
21     DOMDocumentBuilderFactory factory;
22 
23     DocumentBuilder builder;
24 
setUp()25     protected void setUp() throws Exception {
26         super.setUp();
27         try {
28             factory = new DOMDocumentBuilderFactory(DOMDocumentBuilderFactory
29                     .getConfiguration1());
30             builder = factory.getBuilder();
31         } catch (Exception e) {
32             fail("Unexpected exception" + e.getMessage());
33         }
34     }
35 
tearDown()36     protected void tearDown() throws Exception {
37         factory = null;
38         builder = null;
39         super.tearDown();
40     }
41 
42     /**
43      * Runs the test case.
44      *
45      * @throws Throwable
46      *             Any uncaught exception causes test to fail
47      */
testHasAttribute1()48     public void testHasAttribute1() throws Throwable {
49         Document doc;
50         Element element;
51         boolean state;
52         doc = (Document) load("staff", builder);
53         element = doc.getDocumentElement();
54         state = element.hasAttribute("");
55         assertFalse("elementhasattribute01", state);
56     }
57 
58 // Assumes validation.
59 //    public void testHasAttribute2() throws Throwable {
60 //        Document doc;
61 //        Element element;
62 //        boolean state;
63 //        NodeList elementList;
64 //        doc = (Document) load("staffNS", builder);
65 //        elementList = doc.getElementsByTagName("emp:employee");
66 //        element = (Element) elementList.item(0);
67 //        assertNotNull("empEmployeeNotNull", element);
68 //        state = element.hasAttribute("defaultAttr");
69 //        assertTrue("elementhasattribute02", state);
70 //    }
testHasAttribute3()71     public void testHasAttribute3() throws Throwable {
72         Document doc;
73         Element element;
74         boolean state;
75         Attr attribute;
76 
77         doc = (Document) load("staff", builder);
78         element = doc.createElement("address");
79         attribute = doc.createAttribute("domestic");
80         state = element.hasAttribute("domestic");
81         assertFalse("elementhasattribute03_False", state);
82         element.setAttributeNode(attribute);
83         state = element.hasAttribute("domestic");
84         assertTrue("elementhasattribute03_True", state);
85     }
testHasAttribute4()86     public void testHasAttribute4() throws Throwable {
87         Document doc;
88         Element element;
89         boolean state;
90         Attr attribute;
91 
92         doc = (Document) load("staff", builder);
93         element = doc.createElement("address");
94         attribute = doc.createAttribute("domestic");
95         element.setAttributeNode(attribute);
96         state = element.hasAttribute("domestic");
97         assertTrue("elementhasattribute04", state);
98     }
99 }
100