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.Node;
9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.w3c.dom.Document;
10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.w3c.dom.DocumentFragment;
11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.w3c.dom.Text;
12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport javax.xml.parsers.DocumentBuilder;
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/**
16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Create a document fragment with two adjacent text nodes, normalize and see if
17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the text nodes were combined.
18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @author Curt Arnold
20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see <a
21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *      href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-F68D095">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-F68D095</a>
22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @see <a
23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *      href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-B63ED1A3">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-B63ED1A3</a>
24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project@TestTargetClass(Node.class)
26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic final class HCNodeDocumentFragmentNormalize extends DOMTestCase {
27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    DOMDocumentBuilderFactory factory;
29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    DocumentBuilder builder;
31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    protected void setUp() throws Exception {
33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        super.setUp();
34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            factory = new DOMDocumentBuilderFactory(DOMDocumentBuilderFactory
36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                    .getConfiguration1());
37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            builder = factory.getBuilder();
38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (Exception e) {
39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Unexpected exception" + e.getMessage());
40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    protected void tearDown() throws Exception {
44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        factory = null;
45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        builder = null;
46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        super.tearDown();
47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Runs the test case.
51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @throws Throwable
53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *             Any uncaught exception causes test to fail
54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargets({
56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        @TestTargetNew(
57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            level = TestLevel.PARTIAL,
58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            notes = "Verifies positive functionality of getNodeValue method, and that getNextSibling method returns null.",
59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            method = "getNodeValue",
60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            args = {}
61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ),
62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        @TestTargetNew(
63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            level = TestLevel.PARTIAL,
64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            notes = "Verifies positive functionality of getNodeValue method, and that getNextSibling method returns null.",
65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            method = "getNextSibling",
66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            args = {}
67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        )
68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    })
69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void testNodeDocumentFragmentNormalize1() throws Throwable {
70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Document doc;
71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        DocumentFragment docFragment;
72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String nodeValue;
73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Text txtNode;
74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Node retval;
75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        doc = (Document) load("hc_staff", builder);
77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        docFragment = doc.createDocumentFragment();
78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        txtNode = doc.createTextNode("foo");
79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        retval = docFragment.appendChild(txtNode);
80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        txtNode = doc.createTextNode("bar");
81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        retval = docFragment.appendChild(txtNode);
82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        docFragment.normalize();
83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        txtNode = (Text) docFragment.getFirstChild();
84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        nodeValue = txtNode.getNodeValue();
85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("normalizedNodeValue", "foobar", nodeValue);
86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        retval = txtNode.getNextSibling();
87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertNull("singleChild", retval);
88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.PARTIAL,
91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "Verifies that getFirstChild method returns null.",
92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "getFirstChild",
93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void testNodeDocumentFragmentNormalize2() throws Throwable {
96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Document doc;
97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        DocumentFragment docFragment;
98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Text txtNode;
99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        doc = (Document) load("hc_staff", builder);
101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        docFragment = doc.createDocumentFragment();
102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        txtNode = doc.createTextNode("");
103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        docFragment.appendChild(txtNode);
104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        docFragment.normalize();
105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        txtNode = (Text) docFragment.getFirstChild();
106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertNull("noChild", txtNode);
107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
109