--- /dev/null
+package tests.org.w3c.dom;
+
+import dalvik.annotation.TestTargets;
+import dalvik.annotation.TestLevel;
+import dalvik.annotation.TestTargetNew;
+import dalvik.annotation.TestTargetClass;
+
+import org.w3c.dom.Element;
+import org.w3c.dom.Document;
+import org.w3c.dom.Attr;
+
+import javax.xml.parsers.DocumentBuilder;
+
+/**
+ * The method hasAttribute returns true when an attribute with a given name is
+ * specified on this element or has a default value, false otherwise Invoke the
+ * hasAttribute method to check if the documentElement has attributres.
+ *
+ * @author IBM
+ * @author Neil Delima
+ * @see <a
+ * 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>
+ */
+@TestTargetClass(Element.class)
+public final class ElementHasAttribute extends DOMTestCase {
+
+ DOMDocumentBuilderFactory factory;
+
+ DocumentBuilder builder;
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ try {
+ factory = new DOMDocumentBuilderFactory(DOMDocumentBuilderFactory
+ .getConfiguration1());
+ builder = factory.getBuilder();
+ } catch (Exception e) {
+ fail("Unexpected exception" + e.getMessage());
+ }
+ }
+
+ protected void tearDown() throws Exception {
+ factory = null;
+ builder = null;
+ super.tearDown();
+ }
+
+ /**
+ * Runs the test case.
+ *
+ * @throws Throwable
+ * Any uncaught exception causes test to fail
+ */
+ @TestTargetNew(
+ level = TestLevel.PARTIAL_COMPLETE,
+ notes = "Verifies hasAttribute method with empty string as a parameter.",
+ method = "hasAttribute",
+ args = {java.lang.String.class}
+ )
+ public void testHasAttribute1() throws Throwable {
+ Document doc;
+ Element element;
+ boolean state;
+ doc = (Document) load("staff", builder);
+ element = doc.getDocumentElement();
+ state = element.hasAttribute("");
+ assertFalse("elementhasattribute01", state);
+ }
+
+// Assumes validation.
+// public void testHasAttribute2() throws Throwable {
+// Document doc;
+// Element element;
+// boolean state;
+// NodeList elementList;
+// doc = (Document) load("staffNS", builder);
+// elementList = doc.getElementsByTagName("emp:employee");
+// element = (Element) elementList.item(0);
+// assertNotNull("empEmployeeNotNull", element);
+// state = element.hasAttribute("defaultAttr");
+// assertTrue("elementhasattribute02", state);
+// }
+ @TestTargetNew(
+ level = TestLevel.PARTIAL_COMPLETE,
+ notes = "Verifies positive functionality.",
+ method = "hasAttribute",
+ args = {java.lang.String.class}
+ )
+ public void testHasAttribute3() throws Throwable {
+ Document doc;
+ Element element;
+ boolean state;
+ Attr attribute;
+
+ doc = (Document) load("staff", builder);
+ element = doc.createElement("address");
+ attribute = doc.createAttribute("domestic");
+ state = element.hasAttribute("domestic");
+ assertFalse("elementhasattribute03_False", state);
+ element.setAttributeNode(attribute);
+ state = element.hasAttribute("domestic");
+ assertTrue("elementhasattribute03_True", state);
+ }
+ @TestTargetNew(
+ level = TestLevel.PARTIAL_COMPLETE,
+ notes = "Verifies positive functionality.",
+ method = "hasAttribute",
+ args = {java.lang.String.class}
+ )
+ public void testHasAttribute4() throws Throwable {
+ Document doc;
+ Element element;
+ boolean state;
+ Attr attribute;
+
+ doc = (Document) load("staff", builder);
+ element = doc.createElement("address");
+ attribute = doc.createAttribute("domestic");
+ element.setAttributeNode(attribute);
+ state = element.hasAttribute("domestic");
+ assertTrue("elementhasattribute04", state);
+ }
+}