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