01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17: package org.apache.cocoon.xml.dom;
18:
19: import junit.framework.TestCase;
20:
21: import org.w3c.dom.Document;
22: import org.xml.sax.Attributes;
23: import org.xml.sax.SAXException;
24: import org.xml.sax.helpers.AttributesImpl;
25:
26: /**
27: * JUnit Testcase for {@link DOMBuilder}.
28: *
29: * @version CVS $Id: DOMBuilderTestCase.java 433543 2006-08-22 06:22:54Z crossley $
30: */
31: public class DOMBuilderTestCase extends TestCase {
32:
33: /**
34: * Constructor.
35: * @param name
36: */
37: public DOMBuilderTestCase(String name) {
38: super (name);
39: }
40:
41: /**
42: * Test if two consecutive "characters" events result in two text nodes
43: * whose concatenation is equal to the concatenation
44: * of the two strings (cfr. bug #26219).
45: *
46: * @throws SAXException
47: */
48: public void testMultipleCharactersEvents() throws SAXException {
49: DOMBuilder builder = new DOMBuilder();
50: Attributes attrs = new AttributesImpl();
51: char c1[] = "ABC".toCharArray();
52: char c2[] = "DEF".toCharArray();
53: builder.startDocument();
54: builder.startElement("", "test", "test", attrs);
55: builder.characters(c1, 0, 3);
56: builder.characters(c2, 0, 3);
57: builder.endElement("", "test", "test");
58: builder.endDocument();
59: Document dom = builder.getDocument();
60: StringBuffer value = new StringBuffer();
61: for (int i = 0; i < dom.getDocumentElement().getChildNodes()
62: .getLength(); ++i) {
63: value.append(dom.getDocumentElement().getChildNodes().item(
64: i).getNodeValue());
65: }
66: assertEquals("Content of root element not what expected",
67: "ABCDEF", value.toString());
68: }
69: }
|