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