KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > dom > html > Test


1 /*
2  * The Apache Software License, Version 1.1
3  *
4  * Copyright (c) 1999-2000 The Apache Software Foundation. All rights
5  * reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  *
11  * 1. Redistributions of source code must retain the above copyright
12  * notice, this list of conditions and the following disclaimer.
13  *
14  * 2. Redistributions in binary form must reproduce the above copyright
15  * notice, this list of conditions and the following disclaimer in
16  * the documentation and/or other materials provided with the
17  * distribution.
18  *
19  * 3. The end-user documentation included with the redistribution,
20  * if any, must include the following acknowledgment:
21  * "This product includes software developed by the
22  * Apache Software Foundation (http://www.apache.org/)."
23  * Alternately, this acknowledgment may appear in the software itself,
24  * if and wherever such third-party acknowledgments normally appear.
25  *
26  * 4. The names "Xerces" and "Apache Software Foundation" must
27  * not be used to endorse or promote products derived from this
28  * software without prior written permission. For written
29  * permission, please contact apache\@apache.org.
30  *
31  * 5. Products derived from this software may not be called "Apache",
32  * nor may "Apache" appear in their name, without prior written
33  * permission of the Apache Software Foundation.
34  *
35  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
36  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
37  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
38  * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
39  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
41  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
42  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
43  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
44  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
45  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
46  * SUCH DAMAGE.
47  * ====================================================================
48  *
49  * This software consists of voluntary contributions made by many
50  * individuals on behalf of the Apache Software Foundation, and was
51  * originally based on software copyright (c) 1999, International
52  * Business Machines, Inc., http://www.ibm.com . For more information
53  * on the Apache Software Foundation, please see
54  * <http://www.apache.org/>.
55  */

56
57 /*
58  * $Id: Test.java,v 1.2 2005/01/26 08:28:45 jkjome Exp $
59  *
60  * @author Mark Diekhans
61  */

62
63 package dom.html;
64 import org.enhydra.apache.html.dom.HTMLDOMImplementationImpl;
65 import org.w3c.dom.Attr JavaDoc;
66 import org.w3c.dom.Element JavaDoc;
67 import org.w3c.dom.Node JavaDoc;
68 import org.w3c.dom.html.HTMLDOMImplementation;
69 import org.w3c.dom.html.HTMLDocument;
70 import org.w3c.dom.html.HTMLElement;
71 import org.w3c.dom.html.HTMLFormElement;
72 import org.w3c.dom.html.HTMLSelectElement;
73
74 import dom.util.Assertion;
75
76 /**
77  * HTML DOM regression tests
78  */

79 public class Test {
80     /**
81      * Create a basic HTML document.
82      */

83     private HTMLDocument createHTMLDocument() {
84         HTMLDOMImplementation domImpl = HTMLDOMImplementationImpl.getHTMLDOMImplementation();
85         return domImpl.createHTMLDocument("test document");
86     }
87
88     /**
89      * Test for HTML DOM Elements overriding hidden NodeList methods
90      * in ElementImpl. This occured because HTMLFormElement and
91      * HTMLSelectElement.
92      */

93     private void testNodeListShadowing() {
94         // Build up a test document
95
HTMLDocument document = createHTMLDocument();
96         HTMLElement body = document.getBody();
97
98         HTMLFormElement form = (HTMLFormElement)document.createElement("FORM");
99         body.appendChild(form);
100         Attr JavaDoc attr3 = document.createAttribute("action");
101         form.setAttributeNode(attr3);
102         
103         Node JavaDoc node4 = document.createTextNode("http://www.nowhere.com");
104         attr3.appendChild(node4);
105         
106         node4 = document.createComment(" comment 1 ");
107         form.appendChild(node4);
108         
109         node4 = document.createComment(" comment 2 ");
110         form.appendChild(node4);
111         
112         Element JavaDoc elem4 = document.createElement("INPUT");
113         form.appendChild(elem4);
114         Attr JavaDoc attr4 = document.createAttribute("type");
115         elem4.setAttributeNode(attr4);
116         
117         Node JavaDoc node5 = document.createTextNode("SUBMIT");
118         attr4.appendChild(node5);
119         attr4 = document.createAttribute("value");
120         elem4.setAttributeNode(attr4);
121         
122         node5 = document.createTextNode("Fred");
123         attr4.appendChild(node5);
124         
125         node4 = document.createComment(" comment 3 ");
126         form.appendChild(node4);
127         
128         HTMLSelectElement select = (HTMLSelectElement)document.createElement("SELECT");
129         body.appendChild(select);
130         
131         node4 = document.createComment(" comment 1 ");
132         select.appendChild(node4);
133         
134         node4 = document.createComment(" comment 2 ");
135         select.appendChild(node4);
136         
137         elem4 = document.createElement("OPTION");
138         select.appendChild(elem4);
139         
140         node5 = document.createTextNode("opt1");
141         elem4.appendChild(node5);
142         
143         elem4 = document.createElement("OPTION");
144         select.appendChild(elem4);
145         
146         node5 = document.createTextNode("opt2 ");
147         elem4.appendChild(node5);
148         
149         node5 = document.createComment(" comment 3 ");
150         elem4.appendChild(node5);
151         
152         Assertion.assertTrue(form.getChildNodes().getLength() == 4,
153                          "form.getChildNodes().getLength() != 4");
154         Assertion.assertTrue(form.getLength() == 1,
155                          "form.getLength() != 1");
156         Assertion.assertTrue(select.getChildNodes().getLength() == 4,
157                          "select.getChildNodes().getLength() != 4");
158         Assertion.assertTrue(select.getLength() == 2,
159                          "select.getLength() != 2");
160     }
161
162     /**
163      * Entry.
164      */

165     public static void main(String JavaDoc[] args) {
166         Test test = new Test();
167         test.testNodeListShadowing();
168     }
169 }
170
171
Popular Tags