vmassol 2003/03/05 00:46:50
Modified: integration/ant/src/test/org/apache/cactus/integration/ant
TestWebMerge.java
Log:
Improved the test which led to WebMerge not passing it anymore... :-) Hehe ... "with
more data, all applications have bug"
Revision Changes Path
1.3 +81 -22
jakarta-cactus/integration/ant/src/test/org/apache/cactus/integration/ant/TestWebMerge.java
Index: TestWebMerge.java
===================================================================
RCS file:
/home/cvs/jakarta-cactus/integration/ant/src/test/org/apache/cactus/integration/ant/TestWebMerge.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TestWebMerge.java 4 Mar 2003 21:56:06 -0000 1.2
+++ TestWebMerge.java 5 Mar 2003 08:46:49 -0000 1.3
@@ -94,11 +94,11 @@
+ " <servlet-name>s2</servlet-name>".trim()
+ " <servlet-class>sclass2</servlet-class>".trim()
+ " </servlet>".trim()
+ + " <security-constraint/>".trim()
+ " <security-role>".trim()
+ " <description>Test role</description>".trim()
+ " <role-name>test</role-name>".trim()
+ " </security-role>".trim()
- + " <security-constraint/>".trim()
+ "</web-app>".trim();
WebMerge webMerge = new WebMerge();
return webMerge.parse(new ByteArrayInputStream(xml.getBytes()));
@@ -120,11 +120,15 @@
+ " <servlet-name>s4</servlet-name>".trim()
+ " <servlet-class>sclass4</servlet-class>".trim()
+ " </servlet>".trim()
+ + " <security-constraint/>".trim()
+ " <login-config>".trim()
+ " <auth-method>BASIC</auth-method>".trim()
+ " <realm-name>Test</realm-name>".trim()
+ " </login-config>".trim()
- + " <security-constraint/>".trim()
+ + " <security-role>".trim()
+ + " <description>Test role</description>".trim()
+ + " <role-name>test</role-name>".trim()
+ + " </security-role>".trim()
+ "</web-app>".trim();
WebMerge webMerge = new WebMerge();
@@ -138,26 +142,63 @@
return doc;
}
- private void verifyMergedDocument(Node theCurrent)
+ private Document createResultDocument() throws Exception
{
- assertEquals("servlet", theCurrent.getNodeName());
- assertEquals("s3",
- theCurrent.getFirstChild().getFirstChild().getNodeValue());
+ String xml =
+ "<web-app>".trim()
+ + " <filter>".trim()
+ + " <filter-name>f1</filter-name>".trim()
+ + " <filter-class>fclass1</filter-class>".trim()
+ + " </filter>".trim()
+ + " <servlet>".trim()
+ + " <servlet-name>s3</servlet-name>".trim()
+ + " <servlet-class>sclass3</servlet-class>".trim()
+ + " </servlet>".trim()
+ + " <servlet>".trim()
+ + " <servlet-name>s4</servlet-name>".trim()
+ + " <servlet-class>sclass4</servlet-class>".trim()
+ + " </servlet>".trim()
+ + " <servlet>".trim()
+ + " <servlet-name>s1</servlet-name>".trim()
+ + " <servlet-class>sclass1</servlet-class>".trim()
+ + " </servlet>".trim()
+ + " <servlet>".trim()
+ + " <servlet-name>s2</servlet-name>".trim()
+ + " <servlet-class>sclass2</servlet-class>".trim()
+ + " </servlet>".trim()
+ + " <security-constraint/>".trim()
+ + " <login-config>".trim()
+ + " <auth-method>BASIC</auth-method>".trim()
+ + " <realm-name>Test</realm-name>".trim()
+ + " </login-config>".trim()
+ + " <security-role>".trim()
+ + " <description>Test role</description>".trim()
+ + " <role-name>test</role-name>".trim()
+ + " </security-role>".trim()
+ + "</web-app>".trim();
- theCurrent = theCurrent.getNextSibling();
- assertEquals("servlet", theCurrent.getNodeName());
- assertEquals("s4",
- theCurrent.getFirstChild().getFirstChild().getNodeValue());
+ WebMerge webMerge = new WebMerge();
+ return webMerge.parse(new ByteArrayInputStream(xml.getBytes()));
+ }
- theCurrent = theCurrent.getNextSibling();
- assertEquals("servlet", theCurrent.getNodeName());
- assertEquals("s1",
- theCurrent.getFirstChild().getFirstChild().getNodeValue());
+ private void verifyNode(Node theTemplateNode, Node theNode)
+ {
+ NodeList childrenTemplate = theTemplateNode.getChildNodes();
+ NodeList children = theNode.getChildNodes();
- theCurrent = theCurrent.getNextSibling();
- assertEquals("servlet", theCurrent.getNodeName());
- assertEquals("s2",
- theCurrent.getFirstChild().getFirstChild().getNodeValue());
+ assertEquals(childrenTemplate.getLength(), children.getLength());
+
+ for (int i = 0; i < childrenTemplate.getLength(); i++)
+ {
+ Node childTemplate = childrenTemplate.item(i);
+ Node child = children.item(i);
+
+ assertEquals(childTemplate.getNodeName(), child.getNodeName());
+ assertEquals(childTemplate.getNodeType(), child.getNodeType());
+ assertEquals(childTemplate.getNodeValue(),child.getNodeValue());
+
+ verifyNode(childTemplate, child);
+ }
}
public void testInsertBeforeWithNodeListOk() throws Exception
@@ -175,7 +216,25 @@
webMerge.insertBefore(nl, node);
Node current = originalDoc.getElementsByTagName("servlet").item(0);
- verifyMergedDocument(current);
+
+ assertEquals("servlet", current.getNodeName());
+ assertEquals("s3",
+ current.getFirstChild().getFirstChild().getNodeValue());
+
+ current = current.getNextSibling();
+ assertEquals("servlet", current.getNodeName());
+ assertEquals("s4",
+ current.getFirstChild().getFirstChild().getNodeValue());
+
+ current = current.getNextSibling();
+ assertEquals("servlet", current.getNodeName());
+ assertEquals("s1",
+ current.getFirstChild().getFirstChild().getNodeValue());
+
+ current = current.getNextSibling();
+ assertEquals("servlet", current.getNodeName());
+ assertEquals("s2",
+ current.getFirstChild().getFirstChild().getNodeValue());
}
public void testInsertTagServletElementsExist() throws Exception
@@ -266,8 +325,8 @@
WebMerge webMerge = new WebMerge();
Document resultDoc = webMerge.merge(originalDoc, overrideDoc);
- Node current = resultDoc.getElementsByTagName("servlet").item(0);
- verifyMergedDocument(current);
+ verifyNode(createResultDocument().getDocumentElement(),
+ resultDoc.getDocumentElement());
}
public void testMergeUniqueElements() throws Exception
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]