1
/* Copyright 2005 Elliotte Rusty Harold
3
This library is free software; you can redistribute it and/or modify
4
it under the terms of version 2.1 of the GNU Lesser General Public
5
License as published by the Free Software Foundation.
7
This library is distributed in the hope that it will be useful,
8
but WITHOUT ANY WARRANTY; without even the implied warranty of
9
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10
GNU Lesser General Public License for more details.
12
You should have received a copy of the GNU Lesser General Public
13
License along with this library; if not, write to the
14
Free Software Foundation, Inc., 59 Temple Place, Suite 330,
15
Boston, MA 02111-1307 USA
17
You can contact Elliotte Rusty Harold by sending e-mail to
18
elharo@metalab.unc.edu. Please include the word "XOM" in the
19
subject line. The XOM home page is located at http://www.xom.nu/
23
import junit.framework.ComparisonFailure;
24
import nu.xom.Attribute;
25
import nu.xom.Comment;
26
import nu.xom.Element;
27
import nu.xom.Namespace;
33
* Unit tests for XOMTestCase. Added after the first bug discovered in
34
* XOM 1.0 showed up in XOMTestCase.
37
* @author Elliotte Rusty Harold
41
public class XOMTestCaseTest extends XOMTestCase {
44
public XOMTestCaseTest(String name) {
49
public void testNullCheck() {
51
Text t = new Text("");
53
assertEquals(t, null);
54
fail("Allowed comparison with null");
56
catch (ComparisonFailure ex) {
57
assertNotNull(ex.getMessage());
61
assertEquals(null, t);
62
fail("Allowed comparison with null");
64
catch (ComparisonFailure ex) {
65
assertNotNull(ex.getMessage());
71
public void testNamespaceEqualsItself() {
72
Namespace ns = new Namespace("pre", "http://www.example.org", null);
77
public void testCompareMismatchedTypes() {
79
Node n1 = new Text("");
80
Node n2 = new Attribute("name", "value");
84
fail("Text equals Attribute?!");
86
catch (ComparisonFailure ex) {
87
assertNotNull(ex.getMessage());
92
fail("Text equals Attribute?!");
94
catch (ComparisonFailure ex) {
95
assertNotNull(ex.getMessage());
101
public void testCompareMismatchedNullNodeTypes() {
103
Node n1 = new Text("");
107
assertEquals(n1, n2);
108
fail("Text equals null?!");
110
catch (ComparisonFailure ex) {
111
assertNotNull(ex.getMessage());
117
public void testCompareAttributesAsNodes() {
119
Node a1 = new Attribute("test", "value");
121
assertEquals(a1, a2);
126
public void testCombineTextNodes() {
128
Element e1 = new Element("test");
131
Element e2 = new Element("test");
132
e2.appendChild("12");
133
assertEquals(e1, e2);
134
assertEquals(2, e1.getChildCount());
139
public void testTrickyCombineTextNodes() {
141
Element e1 = new Element("test");
142
e1.appendChild("12");
144
Element e2 = new Element("test");
146
e2.appendChild("23");
147
assertEquals(e1, e2);
148
assertEquals(2, e1.getChildCount());
153
public void testCombineThreeTextNodes() {
155
Element e1 = new Element("test");
159
Element e2 = new Element("test");
160
e2.appendChild("123");
161
assertEquals(e1, e2);
166
public void testCombineThreeTextNodes2() {
168
Element e1 = new Element("test");
169
e1.appendChild("\n");
170
e1.appendChild(new Element("p"));
174
Element e2 = new Element("test");
175
e2.appendChild("\n");
176
e2.appendChild(new Element("p"));
177
e2.appendChild("123");
178
assertEquals(e2, e1);
183
public void testUnequalElements() {
185
Element e1 = new Element("test");
187
e1.appendChild(new Element("b"));
189
Element e2 = new Element("test");
191
e2.appendChild(new Element("c"));
194
assertEquals(e1, e2);
195
fail("Unequal elements compared equal");
197
catch (ComparisonFailure success) {
198
assertNotNull(success.getMessage());
204
public void testCompareXMLBaseAttributes() {
206
Node a1 = new Attribute("xml:base", Namespace.XML_NAMESPACE, "value.xml");
207
Node a2 = new Attribute("xml:base", Namespace.XML_NAMESPACE, "./value.xml");
208
assertEquals(a1, a2);
213
public void testCompareChildren() {
215
Element e1 = new Element("e");
216
Element e2 = new Element("e");
217
e1.appendChild(new Comment("a"));
218
e2.appendChild(new Comment("b"));
220
assertEquals("BOO!", e1, e2);
221
fail("didn't check children");
223
catch (ComparisonFailure ex) {
224
assertTrue(ex.getMessage().indexOf("BOO!") >= 0 );