Home | History | Annotate | Download | only in dom
      1 package tests.org.w3c.dom;
      2 
      3 import dalvik.annotation.TestTargets;
      4 import dalvik.annotation.TestLevel;
      5 import dalvik.annotation.TestTargetNew;
      6 import dalvik.annotation.TestTargetClass;
      7 
      8 import org.w3c.dom.Element;
      9 import org.w3c.dom.Document;
     10 import org.w3c.dom.Attr;
     11 
     12 import javax.xml.parsers.DocumentBuilder;
     13 
     14 /**
     15  * The method hasAttribute returns true when an attribute with a given name is
     16  * specified on this element or has a default value, false otherwise Invoke the
     17  * hasAttribute method to check if the documentElement has attributres.
     18  *
     19  * @author IBM
     20  * @author Neil Delima
     21  * @see <a
     22  *      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>
     23  */
     24 @TestTargetClass(Element.class)
     25 public final class ElementHasAttribute extends DOMTestCase {
     26 
     27     DOMDocumentBuilderFactory factory;
     28 
     29     DocumentBuilder builder;
     30 
     31     protected void setUp() throws Exception {
     32         super.setUp();
     33         try {
     34             factory = new DOMDocumentBuilderFactory(DOMDocumentBuilderFactory
     35                     .getConfiguration1());
     36             builder = factory.getBuilder();
     37         } catch (Exception e) {
     38             fail("Unexpected exception" + e.getMessage());
     39         }
     40     }
     41 
     42     protected void tearDown() throws Exception {
     43         factory = null;
     44         builder = null;
     45         super.tearDown();
     46     }
     47 
     48     /**
     49      * Runs the test case.
     50      *
     51      * @throws Throwable
     52      *             Any uncaught exception causes test to fail
     53      */
     54     @TestTargetNew(
     55         level = TestLevel.PARTIAL_COMPLETE,
     56         notes = "Verifies hasAttribute method with empty string as a parameter.",
     57         method = "hasAttribute",
     58         args = {java.lang.String.class}
     59     )
     60     public void testHasAttribute1() throws Throwable {
     61         Document doc;
     62         Element element;
     63         boolean state;
     64         doc = (Document) load("staff", builder);
     65         element = doc.getDocumentElement();
     66         state = element.hasAttribute("");
     67         assertFalse("elementhasattribute01", state);
     68     }
     69 
     70 // Assumes validation.
     71 //    public void testHasAttribute2() throws Throwable {
     72 //        Document doc;
     73 //        Element element;
     74 //        boolean state;
     75 //        NodeList elementList;
     76 //        doc = (Document) load("staffNS", builder);
     77 //        elementList = doc.getElementsByTagName("emp:employee");
     78 //        element = (Element) elementList.item(0);
     79 //        assertNotNull("empEmployeeNotNull", element);
     80 //        state = element.hasAttribute("defaultAttr");
     81 //        assertTrue("elementhasattribute02", state);
     82 //    }
     83     @TestTargetNew(
     84         level = TestLevel.PARTIAL_COMPLETE,
     85         notes = "Verifies positive functionality.",
     86         method = "hasAttribute",
     87         args = {java.lang.String.class}
     88     )
     89     public void testHasAttribute3() throws Throwable {
     90         Document doc;
     91         Element element;
     92         boolean state;
     93         Attr attribute;
     94 
     95         doc = (Document) load("staff", builder);
     96         element = doc.createElement("address");
     97         attribute = doc.createAttribute("domestic");
     98         state = element.hasAttribute("domestic");
     99         assertFalse("elementhasattribute03_False", state);
    100         element.setAttributeNode(attribute);
    101         state = element.hasAttribute("domestic");
    102         assertTrue("elementhasattribute03_True", state);
    103     }
    104     @TestTargetNew(
    105         level = TestLevel.PARTIAL_COMPLETE,
    106         notes = "Verifies positive functionality.",
    107         method = "hasAttribute",
    108         args = {java.lang.String.class}
    109     )
    110     public void testHasAttribute4() throws Throwable {
    111         Document doc;
    112         Element element;
    113         boolean state;
    114         Attr attribute;
    115 
    116         doc = (Document) load("staff", builder);
    117         element = doc.createElement("address");
    118         attribute = doc.createAttribute("domestic");
    119         element.setAttributeNode(attribute);
    120         state = element.hasAttribute("domestic");
    121         assertTrue("elementhasattribute04", state);
    122     }
    123 }
    124