From: <bo...@us...> - 2009-06-19 09:26:22
|
Revision: 346 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=346&view=rev Author: bodewig Date: 2009-06-19 09:26:16 +0000 (Fri, 19 Jun 2009) Log Message: ----------- fix issue 2807167 Modified Paths: -------------- branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/DifferenceEngine.java branches/xmlunit-1.x/src/user-guide/XMLUnit-Java.xml branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_Diff.java Modified: branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/DifferenceEngine.java =================================================================== --- branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/DifferenceEngine.java 2009-06-09 11:45:58 UTC (rev 345) +++ branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/DifferenceEngine.java 2009-06-19 09:26:16 UTC (rev 346) @@ -397,6 +397,30 @@ boolean matchFound = false; + /* + * XMLUnit 1.2 and earlier don't check whether the + * "matched" test node has already been matched to a + * different control node and will happily match the same + * test node to each and every control node, if necessary. + * + * I (Stefan) feel this is wrong but can't change it + * without breaking backwards compatibility + * (testXpathLocation12 in test_DifferenceEngine which + * predates XMLUnit 1.0 fails, so at one point it has been + * the expected and intended behaviour). + * + * As a side effect it may leave test nodes inside the + * unmatched list, see + * https://sourceforge.net/tracker/?func=detail&aid=2807167&group_id=23187&atid=377768 + * + * To overcome the later problem the code will now prefer + * test nodes that haven't already been matched to any + * other node and falls back to the first + * (multiply-)matched node if none could be found. Yes, + * this is strange. + */ + int fallbackMatch = -1; + while (!matchFound) { Node t = (Node) testChildren.get(j); if (findNodeType == t.getNodeType() @@ -407,6 +431,18 @@ .qualifyForComparison((Element) nextControl, (Element) t); } + if (matchFound && !unmatchedTestNodes.contains(t)) { + /* + * test node already matched to a different + * control node, try the other test nodes first + * but keep this as "fallback" (unless there + * already is a fallback) + */ + if (fallbackMatch < 0) { + fallbackMatch = j; + } + matchFound = false; + } if (!matchFound) { ++j; if (j > lastTestNode) { @@ -418,6 +454,10 @@ } } } + if (!matchFound && fallbackMatch >= 0) { + matchFound = true; + j = fallbackMatch; + } if (matchFound) { matchingNodes.put(nextControl, testChildren.get(j)); matchingNodeIndexes.put(nextControl, new Integer(j)); Modified: branches/xmlunit-1.x/src/user-guide/XMLUnit-Java.xml =================================================================== --- branches/xmlunit-1.x/src/user-guide/XMLUnit-Java.xml 2009-06-09 11:45:58 UTC (rev 345) +++ branches/xmlunit-1.x/src/user-guide/XMLUnit-Java.xml 2009-06-19 09:26:16 UTC (rev 346) @@ -3542,8 +3542,15 @@ a <literal>ATTR_NAME_NOT_FOUND_ID</literal> kind of difference), the XPath expressions of the node details have been random. <ulink - url="https://sourceforge.net/tracker/index.php?func=detail&aid=2386807&group_id=23187&atid=377768">Issue 2386807</ulink>. + url="https://sourceforge.net/tracker/index.php?func=detail&aid=2386807&group_id=23187&atid=377768">Issue 2386807</ulink>. </listitem> + <listitem> + In some cases XMLUnit matched test nodes to multiple + control nodes and then created a "missing child" + difference for remaining test nodes even though they would + have been valid targets for control node matches as well. + <ulink url="https://sourceforge.net/tracker/?func=detail&aid=2807167&group_id=23187&atid=377768">Issue 2807167</ulink>. + </listitem> </itemizedlist> </section> </section> Modified: branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_Diff.java =================================================================== --- branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_Diff.java 2009-06-09 11:45:58 UTC (rev 345) +++ branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_Diff.java 2009-06-19 09:26:16 UTC (rev 346) @@ -882,5 +882,31 @@ XMLUnit.setExpandEntityReferences(false); } } + + /** + * @see https://sourceforge.net/tracker/?func=detail&aid=2807167&group_id=23187&atid=377768 + */ + public void testIssue2807167() throws Exception { + String test = "<tag>" + + "<child amount=\"100\" />" + + "<child amount=\"100\" />" + + "<child amount=\"100\" />" + + "<child amount=\"250\" />" + + "<child amount=\"100\" />" + + "</tag>"; + + String control = "<tag>" + + "<child amount=\"100\" />" + + "<child amount=\"100\" />" + + "<child amount=\"250\" />" + + "<child amount=\"100\" />" + + "<child amount=\"100\" />" + + "</tag>"; + + Diff diff = new Diff(control, test); + diff.overrideElementQualifier(new + ElementNameAndAttributeQualifier()); + assertTrue(diff.toString(), diff.similar()); + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2009-09-18 15:29:43
|
Revision: 353 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=353&view=rev Author: bodewig Date: 2009-09-18 15:29:36 +0000 (Fri, 18 Sep 2009) Log Message: ----------- disable XMLUnit's behavior where it matches unmatched nodes against each other even if they don't qualify for comparision. Issue 2758280 Modified Paths: -------------- branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/DifferenceEngine.java branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/XMLUnit.java branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_DetailedDiff.java Modified: branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/DifferenceEngine.java =================================================================== --- branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/DifferenceEngine.java 2009-08-17 07:38:21 UTC (rev 352) +++ branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/DifferenceEngine.java 2009-09-18 15:29:36 UTC (rev 353) @@ -454,7 +454,8 @@ } } } - if (!matchFound && fallbackMatch >= 0) { + if (!matchFound && XMLUnit.getCompareUnmatched() + && fallbackMatch >= 0) { matchFound = true; j = fallbackMatch; } @@ -472,7 +473,8 @@ Node nextControl = (Node) controlChildren.get(i); Node nextTest = (Node) matchingNodes.get(nextControl); Integer testIndex = (Integer) matchingNodeIndexes.get(nextControl); - if (nextTest == null && !unmatchedTestNodes.isEmpty()) { + if (nextTest == null && XMLUnit.getCompareUnmatched() + && !unmatchedTestNodes.isEmpty()) { nextTest = (Node) unmatchedTestNodes.get(0); testIndex = new Integer(testChildren.indexOf(nextTest)); unmatchedTestNodes.remove(0); Modified: branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/XMLUnit.java =================================================================== --- branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/XMLUnit.java 2009-08-17 07:38:21 UTC (rev 352) +++ branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/XMLUnit.java 2009-09-18 15:29:36 UTC (rev 353) @@ -83,6 +83,7 @@ private static String xsltVersion = "1.0"; private static String xpathFactoryName = null; private static boolean expandEntities = false; + private static boolean compareUnmatched = true; private static final String XSLT_VERSION_START = " version=\""; private static final String XSLT_VERSION_END = "\">"; @@ -881,5 +882,22 @@ public static boolean getExpandEntityReferences() { return expandEntities; } + + /** + * Whether to compare unmatched control nodes to unmatched test nodes. + * + * <p>Defaults to true.</p> + */ + public static void setCompareUnmatched(boolean b) { + compareUnmatched = b; + } + + /** + * Whether unmatched control nodes should be compared to unmatched + * test nodes. + */ + public static boolean getCompareUnmatched() { + return compareUnmatched; + } } Modified: branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_DetailedDiff.java =================================================================== --- branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_DetailedDiff.java 2009-08-17 07:38:21 UTC (rev 352) +++ branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_DetailedDiff.java 2009-09-18 15:29:36 UTC (rev 353) @@ -323,4 +323,58 @@ secondForecast = "<weather><today temp=\"20\"/></weather>"; } + /** + * https://sourceforge.net/tracker/?func=detail&aid=2758280&group_id=23187&atid=377768 + */ + public void testCompareUnmatched() throws Exception { + String control = "<root><a>1</a>" + + "<b>1</b>" + + "<c>1</c>" + + "<d>1</d>" + + "<e>1</e></root>"; + String test = "<root><a>1</a>" + + "<b>1</b>" + + "<z>1</z>" + + "<d>1</d>" + + "<e>1</e></root>"; + DetailedDiff d = (DetailedDiff) buildDiff(control, test); + List l = d.getAllDifferences(); + assertEquals(1, l.size()); + Difference diff = (Difference) l.get(0); + assertEquals(DifferenceConstants.ELEMENT_TAG_NAME_ID, diff.getId()); + } + + /** + * https://sourceforge.net/tracker/?func=detail&aid=2758280&group_id=23187&atid=377768 + */ + public void testDontCompareUnmatched() throws Exception { + String control = "<root><a>1</a>" + + "<b>1</b>" + + "<c>1</c>" + + "<d>1</d>" + + "<e>1</e></root>"; + String test = "<root><a>1</a>" + + "<b>1</b>" + + "<z>1</z>" + + "<d>1</d>" + + "<e>1</e></root>"; + try { + XMLUnit.setCompareUnmatched(false); + DetailedDiff d = (DetailedDiff) buildDiff(control, test); + List l = d.getAllDifferences(); + assertEquals(2, l.size()); + Difference diff = (Difference) l.get(0); + assertEquals(DifferenceConstants.CHILD_NODE_NOT_FOUND_ID, + diff.getId()); + assertNotNull(diff.getControlNodeDetail().getNode()); + assertNull(diff.getTestNodeDetail().getNode()); + diff = (Difference) l.get(1); + assertEquals(DifferenceConstants.CHILD_NODE_NOT_FOUND_ID, + diff.getId()); + assertNull(diff.getControlNodeDetail().getNode()); + assertNotNull(diff.getTestNodeDetail().getNode()); + } finally { + XMLUnit.setCompareUnmatched(true); + } + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2009-09-21 19:39:08
|
Revision: 358 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=358&view=rev Author: bodewig Date: 2009-09-21 19:39:02 +0000 (Mon, 21 Sep 2009) Log Message: ----------- bump version Modified Paths: -------------- branches/xmlunit-1.x/LICENSE.txt branches/xmlunit-1.x/build.xml Modified: branches/xmlunit-1.x/LICENSE.txt =================================================================== --- branches/xmlunit-1.x/LICENSE.txt 2009-09-21 19:37:43 UTC (rev 357) +++ branches/xmlunit-1.x/LICENSE.txt 2009-09-21 19:39:02 UTC (rev 358) @@ -1,6 +1,6 @@ /* ****************************************************************** -Copyright (c) 2001-2007, Jeff Martin, Tim Bacon +Copyright (c) 2001-2009, Jeff Martin, Tim Bacon All rights reserved. Redistribution and use in source and binary forms, with or without Modified: branches/xmlunit-1.x/build.xml =================================================================== --- branches/xmlunit-1.x/build.xml 2009-09-21 19:37:43 UTC (rev 357) +++ branches/xmlunit-1.x/build.xml 2009-09-21 19:39:02 UTC (rev 358) @@ -37,7 +37,7 @@ <property file="build.properties"/> <!-- Version --> - <property name="xmlunit.version" value="1.3alpha"/> + <property name="xmlunit.version" value="1.4alpha"/> <!-- some locations --> <property name="src.dir" value="src"/> @@ -264,7 +264,7 @@ </target> <target name="dist" - depends="clean,bindist,srcdist,compile-userguide-examples" + depends="bindist,srcdist,compile-userguide-examples" description="creates the distribution files"> <checksum algorithm="md5"> <fileset dir="${dist.dir}"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2011-04-20 12:31:17
|
Revision: 494 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=494&view=rev Author: bodewig Date: 2011-04-20 12:31:11 +0000 (Wed, 20 Apr 2011) Log Message: ----------- assertXPathEqual doesn't work if one XPath matches an Attr node, Issue 3290264 Modified Paths: -------------- branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/XMLAssert.java branches/xmlunit-1.x/src/user-guide/XMLUnit-Java.xml branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_XMLTestCase.java Modified: branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/XMLAssert.java =================================================================== --- branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/XMLAssert.java 2011-03-16 15:33:58 UTC (rev 493) +++ branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/XMLAssert.java 2011-04-20 12:31:11 UTC (rev 494) @@ -1,6 +1,6 @@ /* ****************************************************************** -Copyright (c) 2001-2007, Jeff Martin, Tim Bacon +Copyright (c) 2001-2007,2011 Jeff Martin, Tim Bacon All rights reserved. Redistribution and use in source and binary forms, with or without @@ -46,8 +46,10 @@ import javax.xml.parsers.DocumentBuilder; import junit.framework.Assert; +import org.w3c.dom.Attr; import org.w3c.dom.Document; import org.w3c.dom.Element; +import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.InputSource; import org.xml.sax.SAXException; @@ -1114,7 +1116,12 @@ d.appendChild(root); final int length = nodes.getLength(); for (int i = 0; i < length; i++) { - root.appendChild(d.importNode(nodes.item(i), true)); + Node n = d.importNode(nodes.item(i), true); + if (n instanceof Attr) { + root.setAttributeNodeNS((Attr) n); + } else { + root.appendChild(n); + } } return d; } Modified: branches/xmlunit-1.x/src/user-guide/XMLUnit-Java.xml =================================================================== --- branches/xmlunit-1.x/src/user-guide/XMLUnit-Java.xml 2011-03-16 15:33:58 UTC (rev 493) +++ branches/xmlunit-1.x/src/user-guide/XMLUnit-Java.xml 2011-04-20 12:31:11 UTC (rev 494) @@ -3615,6 +3615,37 @@ </section> </section> + <section id="Changes 1.4"> + <title>Changes from XMLUnit 1.3 to 1.4</title> + + <section id="Breaking Changes 1.3"> + <title>Breaking Changes</title> + + <!--itemizedlist> + </itemizedlist--> + </section> + + <section id="New Features 1.4"> + <title>New Features</title> + + <!--itemizedlist> + </itemizedlist--> + </section> + + <section id="Bugfixes 1.4"> + <title>Important Bug Fixes</title> + + <itemizedlist> + <listitem> + <literal>XMLTestCase</literal>'s and <literal>XMLAssert</literal>'s + <literal>assertXpathsEqual</literal> methods threw an + exception at least one XPath matched an attribute. <ulink + url="https://sourceforge.net/tracker/?func=detail&aid=3290264&group_id=23187&atid=377768">Issue 377768</ulink>. + </listitem> + </itemizedlist> + </section> + </section> + </appendix> </article> Modified: branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_XMLTestCase.java =================================================================== --- branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_XMLTestCase.java 2011-03-16 15:33:58 UTC (rev 493) +++ branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_XMLTestCase.java 2011-04-20 12:31:11 UTC (rev 494) @@ -1,6 +1,6 @@ /* ****************************************************************** -Copyright (c) 200, Jeff Martin, Tim Bacon +Copyright (c) 2001-2011, Jeff Martin, Tim Bacon All rights reserved. Redistribution and use in source and binary forms, with or without @@ -50,7 +50,7 @@ /** * Test case used to test the XMLTestCase */ -public class test_XMLTestCase extends XMLTestCase{ +public class test_XMLTestCase extends XMLTestCase { private static final String PREFIX = "foo"; private static final String TEST_NS = "urn:org.example"; private static final NamespaceContext NS_CONTEXT; @@ -572,6 +572,16 @@ assertXpathExists("/axrtable/schema", xmlDocument); } + // bug 3290264 + public void testAssertXpathEqualsAndAttributes() throws Exception { + assertXpathsNotEqual("/foo/Bar/@a", "/foo/Bar", + "<foo><Bar a=\"1\" /></foo>"); + assertXpathsNotEqual("/foo/Bar/@a", "/foo/Bar/@b", + "<foo><Bar a=\"1\" b=\"1\"/></foo>"); + assertXpathsEqual("/foo/Bar/@a", "/foo/Bar/@a", + "<foo><Bar a=\"1\" b=\"2\"/></foo>"); + } + public test_XMLTestCase(String name) { super(name); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2013-02-01 16:30:10
|
Revision: 499 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=499&view=rev Author: bodewig Date: 2013-02-01 16:30:03 +0000 (Fri, 01 Feb 2013) Log Message: ----------- partial fix for comparison of XSI type attribute values. See Bug 3602981 Modified Paths: -------------- branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/DifferenceEngine.java branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/XMLConstants.java branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_Diff.java Property Changed: ---------------- branches/xmlunit-1.x/ Property changes on: branches/xmlunit-1.x ___________________________________________________________________ Added: svn:ignore + build Modified: branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/DifferenceEngine.java =================================================================== --- branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/DifferenceEngine.java 2011-11-02 07:59:58 UTC (rev 498) +++ branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/DifferenceEngine.java 2013-02-01 16:30:03 UTC (rev 499) @@ -1,6 +1,6 @@ /* ****************************************************************** -Copyright (c) 2001-2009, Jeff Martin, Tim Bacon +Copyright (c) 2001-2013, Jeff Martin, Tim Bacon All rights reserved. Redistribution and use in source and binary forms, with or without @@ -704,6 +704,18 @@ } /** + * @param attr + * @return true if the attribute is an XML Schema Instance + * namespace attribute XMLUnit treats in a special way. + */ + private boolean isXMLSchemaTypeAttribute(Attr attr) { + return XMLConstants + .W3C_XML_SCHEMA_INSTANCE_NS_URI.equals(attr.getNamespaceURI()) + && XMLConstants.W3C_XML_SCHEMA_INSTANCE_TYPE_ATTR + .equals(attr.getLocalName()); + } + + /** * Compare two attributes * @param control * @param test @@ -717,15 +729,41 @@ compare(control.getPrefix(), test.getPrefix(), control, test, listener, NAMESPACE_PREFIX); - - compare(control.getValue(), test.getValue(), control, test, - listener, ATTR_VALUE); - + if (isXMLSchemaTypeAttribute(control) + && isXMLSchemaTypeAttribute(test)) { + compareXMLSchemaTypeAttributeValues(control, test, listener); + } else { + compare(control.getValue(), test.getValue(), control, test, + listener, ATTR_VALUE); + } compare(control.getSpecified() ? Boolean.TRUE : Boolean.FALSE, test.getSpecified() ? Boolean.TRUE : Boolean.FALSE, control, test, listener, ATTR_VALUE_EXPLICITLY_SPECIFIED); } + private void compareXMLSchemaTypeAttributeValues(Attr control, Attr test, + DifferenceListener listener) + throws DifferenceFoundException { + String controlValue = control.getValue(); + String testValue = test.getValue(); + + String controlLocal = controlValue; + String controlPrefix = ""; + String testLocal = testValue; + String testPrefix = ""; + int controlColon = controlValue.indexOf(":"); + if (controlColon > 0) { + controlLocal = controlValue.substring(controlColon); + controlPrefix = controlValue.substring(0, controlColon); + } + int testColon = testValue.indexOf(":"); + if (testColon > 0) { + testLocal = testValue.substring(testColon); + testPrefix = testValue.substring(0, testColon); + } + compare(controlLocal, testLocal, control, test, listener, ATTR_VALUE); + } + /** * Compare two CDATA sections - unused, kept for backwards compatibility * @param control Modified: branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/XMLConstants.java =================================================================== --- branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/XMLConstants.java 2011-11-02 07:59:58 UTC (rev 498) +++ branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/XMLConstants.java 2013-02-01 16:30:03 UTC (rev 499) @@ -1,6 +1,6 @@ /* ****************************************************************** -Copyright (c) 2001-2007 Jeff Martin, Tim Bacon +Copyright (c) 2001-2013 Jeff Martin, Tim Bacon All rights reserved. Redistribution and use in source and binary forms, with or without @@ -157,4 +157,10 @@ */ String W3C_XML_SCHEMA_INSTANCE_NO_NAMESPACE_SCHEMA_LOCATION_ATTR = "noNamespaceSchemaLocation"; + + /** + * "type" + */ + public static final String W3C_XML_SCHEMA_INSTANCE_TYPE_ATTR + = "type"; } Modified: branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_Diff.java =================================================================== --- branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_Diff.java 2011-11-02 07:59:58 UTC (rev 498) +++ branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_Diff.java 2013-02-01 16:30:03 UTC (rev 499) @@ -1,6 +1,6 @@ /* ****************************************************************** -Copyright (c) 2001-2008, Jeff Martin, Tim Bacon +Copyright (c) 2001-2013, Jeff Martin, Tim Bacon All rights reserved. Redistribution and use in source and binary forms, with or without @@ -908,5 +908,34 @@ ElementNameAndAttributeQualifier()); assertTrue(diff.toString(), diff.similar()); } + + /** + * @see http://sourceforge.net/tracker/?func=detail&atid=377768&aid=3602981&group_id=23187 + */ + public void testXsiTypeSpecialCase() throws Exception { + String test = "<ns1:Square xsi:type=\"ns1:Shape\" " + + "xmlns:ns1=\"http://example.com/\" " + + "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"/>"; + + String control = "<ns2:Square xsi:type=\"ns2:Shape\" " + + "xmlns:ns2=\"http://example.com/\" " + + "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"/>"; + Diff diff = new Diff(control, test); + assertTrue(diff.toString(), diff.similar()); + } + + public void XtestXsiTypeSpecialCaseDoesntIgnorePrefix() throws Exception { + String test = "<ns1:Square xsi:type=\"ns1:Shape\" " + + "xmlns:ns1=\"http://example.com/\" " + + "xmlns:ns2=\"http://example.com/another-uri/\" " + + "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"/>"; + + String control = "<ns1:Square xsi:type=\"ns2:Shape\" " + + "xmlns:ns1=\"http://example.com/\" " + + "xmlns:ns2=\"http://example.com/another-uri/\" " + + "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"/>"; + Diff diff = new Diff(control, test); + assertFalse(diff.toString(), diff.similar()); + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2013-02-02 06:52:31
|
Revision: 501 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=501&view=rev Author: bodewig Date: 2013-02-02 06:52:23 +0000 (Sat, 02 Feb 2013) Log Message: ----------- compare NS URI for xsi:type attributes. Modified Paths: -------------- branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/DifferenceEngine.java branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/XMLConstants.java branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_Diff.java Modified: branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/DifferenceEngine.java =================================================================== --- branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/DifferenceEngine.java 2013-02-01 16:39:16 UTC (rev 500) +++ branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/DifferenceEngine.java 2013-02-02 06:52:23 UTC (rev 501) @@ -752,16 +752,19 @@ String testLocal = testValue; String testPrefix = ""; int controlColon = controlValue.indexOf(":"); - if (controlColon > 0) { - controlLocal = controlValue.substring(controlColon); + if (controlColon >= 0 && controlColon < controlValue.length() - 1) { + controlLocal = controlValue.substring(controlColon + 1); controlPrefix = controlValue.substring(0, controlColon); } int testColon = testValue.indexOf(":"); - if (testColon > 0) { - testLocal = testValue.substring(testColon); + if (testColon >= 0 && testColon < testValue.length() - 1) { + testLocal = testValue.substring(testColon + 1); testPrefix = testValue.substring(0, testColon); } compare(controlLocal, testLocal, control, test, listener, ATTR_VALUE); + compare(findNamespaceURIForPrefix(control, controlPrefix), + findNamespaceURIForPrefix(test, testPrefix), control, test, + listener, ATTR_VALUE); } /** @@ -979,6 +982,34 @@ } /** + * Try to find the namespace URI that is mapped to the given + * prefix at the given node. + */ + private String findNamespaceURIForPrefix(Node onNode, String prefix) { + if (onNode != null && onNode instanceof Attr) { + onNode = ((Attr) onNode).getOwnerElement(); + } + while (onNode != null && onNode.getNodeType() != Node.ELEMENT_NODE) { + onNode = onNode.getParentNode(); + } + if (onNode == null) { + return null; + } + + NamedNodeMap attrs = onNode.getAttributes(); + Attr attr = null; + if (prefix == null || "".equals(prefix)) { + attr = (Attr) attrs.getNamedItem(XMLConstants.XMLNS_PREFIX); + } else { + attr = (Attr) attrs.getNamedItemNS(XMLConstants.XMLNS_ATTRIBUTE_URI, prefix); + } + if (attr != null) { + return attr.getValue(); + } + return findNamespaceURIForPrefix(onNode.getParentNode(), prefix); + } + + /** * Marker exception thrown by the protected compare() method and passed * upwards through the call stack to the public compare() method. */ Modified: branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/XMLConstants.java =================================================================== --- branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/XMLConstants.java 2013-02-01 16:39:16 UTC (rev 500) +++ branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/XMLConstants.java 2013-02-02 06:52:23 UTC (rev 501) @@ -53,6 +53,11 @@ public static final String XMLNS_PREFIX = "xmlns"; /** + * xmlns URI + */ + public static final String XMLNS_ATTRIBUTE_URI = "http://www.w3.org/2000/xmlns/"; + + /** * "<" */ public static final String OPEN_START_NODE = "<"; Modified: branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_Diff.java =================================================================== --- branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_Diff.java 2013-02-01 16:39:16 UTC (rev 500) +++ branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_Diff.java 2013-02-02 06:52:23 UTC (rev 501) @@ -924,7 +924,45 @@ assertTrue(diff.toString(), diff.similar()); } - public void XtestXsiTypeSpecialCaseDoesntIgnorePrefix() throws Exception { + public void testXsiTypeSpecialCaseShortLocalName() throws Exception { + String test = "<ns1:Square xsi:type=\"ns1:a\" " + + "xmlns:ns1=\"http://example.com/\" " + + "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"/>"; + + String control = "<ns2:Square xsi:type=\"ns2:a\" " + + "xmlns:ns2=\"http://example.com/\" " + + "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"/>"; + Diff diff = new Diff(control, test); + assertTrue(diff.toString(), diff.similar()); + } + + public void testXsiTypeSpecialCaseWorksWithDefaultNs() throws Exception { + String test = "<Square xsi:type=\"Shape\" " + + "xmlns=\"http://example.com/\" " + + "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"/>"; + + String control = "<ns2:Square xsi:type=\"ns2:Shape\" " + + "xmlns:ns2=\"http://example.com/\" " + + "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"/>"; + Diff diff = new Diff(control, test); + assertTrue(diff.toString(), diff.similar()); + } + + public void testXsiTypeSpecialCaseInheritsParentNs() throws Exception { + String test = "<ns1:Shapes xmlns:ns1=\"http://example.com/\">" + + "<ns1:Square xsi:type=\"ns1:Shape\" " + + "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"/>" + + "</ns1:Shapes>"; + + String control = "<ns2:Shapes xmlns:ns2=\"http://example.com/\">" + + "<ns2:Square xsi:type=\"ns2:Shape\" " + + "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"/>" + + "</ns2:Shapes>"; + Diff diff = new Diff(control, test); + assertTrue(diff.toString(), diff.similar()); + } + + public void testXsiTypeSpecialCaseDoesntIgnorePrefix() throws Exception { String test = "<ns1:Square xsi:type=\"ns1:Shape\" " + "xmlns:ns1=\"http://example.com/\" " + "xmlns:ns2=\"http://example.com/another-uri/\" " This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2013-02-03 11:25:33
|
Revision: 513 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=513&view=rev Author: bodewig Date: 2013-02-03 11:25:27 +0000 (Sun, 03 Feb 2013) Log Message: ----------- improve PDF generation Modified Paths: -------------- branches/xmlunit-1.x/docbook.xml Property Changed: ---------------- branches/xmlunit-1.x/ branches/xmlunit-1.x/src/user-guide/ Property changes on: branches/xmlunit-1.x ___________________________________________________________________ Modified: svn:ignore - build + build build.properties docbook.properties Modified: branches/xmlunit-1.x/docbook.xml =================================================================== --- branches/xmlunit-1.x/docbook.xml 2013-02-03 11:24:34 UTC (rev 512) +++ branches/xmlunit-1.x/docbook.xml 2013-02-03 11:25:27 UTC (rev 513) @@ -77,6 +77,7 @@ <target name="users-guide-pdf" depends="-define-dblatex" description="Creates the PDF version of the User's Guide"> + <copy file="${src.dir}/site/xmlunit.png" toDir="${src.userguide.dir}"/> <dblatex sourcefile="${src.userguide.dir}/${user.guide}.xml"/> <move file="${src.userguide.dir}/${user.guide}.pdf" todir="${userguide.docs.dir}"/> Property changes on: branches/xmlunit-1.x/src/user-guide ___________________________________________________________________ Added: svn:ignore + xmlunit.png This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2013-02-03 11:29:24
|
Revision: 514 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=514&view=rev Author: bodewig Date: 2013-02-03 11:29:17 +0000 (Sun, 03 Feb 2013) Log Message: ----------- somehow forgot Apache License 1.1 requires boilerplate license everywhere Modified Paths: -------------- branches/xmlunit-1.x/docbook.xml branches/xmlunit-1.x/src/user-guide/XMLUnit-Java.xml Modified: branches/xmlunit-1.x/docbook.xml =================================================================== --- branches/xmlunit-1.x/docbook.xml 2013-02-03 11:25:27 UTC (rev 513) +++ branches/xmlunit-1.x/docbook.xml 2013-02-03 11:29:17 UTC (rev 514) @@ -1,3 +1,35 @@ +<!-- +Copyright (c) 2001-2013, Jeff Martin, Tim Bacon +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of the xmlunit.sourceforge.net nor the names + of its contributors may be used to endorse or promote products + derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +--> <project> <!-- allow overrides --> <property file="docbook.properties"/> Modified: branches/xmlunit-1.x/src/user-guide/XMLUnit-Java.xml =================================================================== --- branches/xmlunit-1.x/src/user-guide/XMLUnit-Java.xml 2013-02-03 11:25:27 UTC (rev 513) +++ branches/xmlunit-1.x/src/user-guide/XMLUnit-Java.xml 2013-02-03 11:29:17 UTC (rev 514) @@ -1,6 +1,38 @@ <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE article PUBLIC "-//OASIS//DTD Simplified DocBook XML V1.1b1//EN" "http://docbook.org/xml/simple/1.1b1/sdocbook.dtd"> +<!-- +Copyright (c) 2001-2013, Jeff Martin, Tim Bacon +All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of the xmlunit.sourceforge.net nor the names + of its contributors may be used to endorse or promote products + derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +--> + <article> <title>XMLUnit Java User's Guide <inlinemediaobject><imageobject> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2013-02-03 14:32:43
|
Revision: 516 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=516&view=rev Author: bodewig Date: 2013-02-03 14:32:36 +0000 (Sun, 03 Feb 2013) Log Message: ----------- remove logo from user's guide Modified Paths: -------------- branches/xmlunit-1.x/docbook.xml branches/xmlunit-1.x/src/user-guide/XMLUnit-Java.xml Modified: branches/xmlunit-1.x/docbook.xml =================================================================== --- branches/xmlunit-1.x/docbook.xml 2013-02-03 12:40:21 UTC (rev 515) +++ branches/xmlunit-1.x/docbook.xml 2013-02-03 14:32:36 UTC (rev 516) @@ -98,7 +98,7 @@ <target name="-users-guide-html-xsltproc" depends="-xsltproc-available?,-users-guide-html-pre" if="run xsltproc"> - <exec command="${xsltproc}" failonerror="true"> + <exec executable="${xsltproc}" failonerror="true"> <arg value="-o"/> <!-- xsltproc needs the trailing slash to work properly --> <arg value="${html.dir}/"/> @@ -117,7 +117,6 @@ depends="-users-guide-html-trax,-users-guide-html-xsltproc" unless="HTML is up-to-date" description="Creates HTML version of the User's Guide"> - <copy file="${src.dir}/site/xmlunit.png" toDir="${html.dir}"/> </target> <target name="-check-os"> @@ -159,7 +158,6 @@ <target name="users-guide-pdf" depends="-define-dblatex" description="Creates the PDF version of the User's Guide"> - <copy file="${src.dir}/site/xmlunit.png" toDir="${src.userguide.dir}"/> <dblatex sourcefile="${src.userguide.dir}/${user.guide}.xml"/> <move file="${src.userguide.dir}/${user.guide}.pdf" todir="${userguide.docs.dir}"/> Modified: branches/xmlunit-1.x/src/user-guide/XMLUnit-Java.xml =================================================================== --- branches/xmlunit-1.x/src/user-guide/XMLUnit-Java.xml 2013-02-03 12:40:21 UTC (rev 515) +++ branches/xmlunit-1.x/src/user-guide/XMLUnit-Java.xml 2013-02-03 14:32:36 UTC (rev 516) @@ -34,12 +34,7 @@ --> <article> - <title>XMLUnit Java User's Guide - <inlinemediaobject><imageobject> - <imagedata fileref="xmlunit.png" width="331" depth="100" - valign="middle" format="PNG"/> - </imageobject></inlinemediaobject> - </title> + <title>XMLUnit Java User's Guide</title> <articleinfo> <authorgroup> <author> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2013-02-07 05:24:53
|
Revision: 518 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=518&view=rev Author: bodewig Date: 2013-02-07 05:24:43 +0000 (Thu, 07 Feb 2013) Log Message: ----------- prepare for 1.4 release Modified Paths: -------------- branches/xmlunit-1.x/LICENSE.txt branches/xmlunit-1.x/build.xml branches/xmlunit-1.x/src/etc/xmlunit-ivy.xml branches/xmlunit-1.x/src/etc/xmlunit-maven-metadata.xml branches/xmlunit-1.x/src/etc/xmlunit.pom branches/xmlunit-1.x/src/site/index.html Modified: branches/xmlunit-1.x/LICENSE.txt =================================================================== --- branches/xmlunit-1.x/LICENSE.txt 2013-02-03 15:05:33 UTC (rev 517) +++ branches/xmlunit-1.x/LICENSE.txt 2013-02-07 05:24:43 UTC (rev 518) @@ -1,6 +1,6 @@ /* ****************************************************************** -Copyright (c) 2001-2009, Jeff Martin, Tim Bacon +Copyright (c) 2001-2013, Jeff Martin, Tim Bacon All rights reserved. Redistribution and use in source and binary forms, with or without Modified: branches/xmlunit-1.x/build.xml =================================================================== --- branches/xmlunit-1.x/build.xml 2013-02-03 15:05:33 UTC (rev 517) +++ branches/xmlunit-1.x/build.xml 2013-02-07 05:24:43 UTC (rev 518) @@ -1,6 +1,6 @@ <?xml version="1.0"?> <!-- -Copyright (c) 2001-2008, Jeff Martin, Tim Bacon +Copyright (c) 2001-2013, Jeff Martin, Tim Bacon All rights reserved. Redistribution and use in source and binary forms, with or without Modified: branches/xmlunit-1.x/src/etc/xmlunit-ivy.xml =================================================================== --- branches/xmlunit-1.x/src/etc/xmlunit-ivy.xml 2013-02-03 15:05:33 UTC (rev 517) +++ branches/xmlunit-1.x/src/etc/xmlunit-ivy.xml 2013-02-07 05:24:43 UTC (rev 518) @@ -1,6 +1,6 @@ <?xml version="1.0"?> <!-- -Copyright (c) 2007-2008, Jeff Martin, Tim Bacon +Copyright (c) 2007-2013, Jeff Martin, Tim Bacon All rights reserved. Redistribution and use in source and binary forms, with or without Modified: branches/xmlunit-1.x/src/etc/xmlunit-maven-metadata.xml =================================================================== --- branches/xmlunit-1.x/src/etc/xmlunit-maven-metadata.xml 2013-02-03 15:05:33 UTC (rev 517) +++ branches/xmlunit-1.x/src/etc/xmlunit-maven-metadata.xml 2013-02-07 05:24:43 UTC (rev 518) @@ -1,6 +1,6 @@ <?xml version="1.0"?> <!-- -Copyright (c) 2007-2008, Jeff Martin, Tim Bacon +Copyright (c) 2007-2013, Jeff Martin, Tim Bacon All rights reserved. Redistribution and use in source and binary forms, with or without @@ -41,6 +41,7 @@ <version>1.0</version> <version>1.1</version> <version>1.2</version> + <version>1.3</version> <version>@VERSION@</version> </versions> </versioning> Modified: branches/xmlunit-1.x/src/etc/xmlunit.pom =================================================================== --- branches/xmlunit-1.x/src/etc/xmlunit.pom 2013-02-03 15:05:33 UTC (rev 517) +++ branches/xmlunit-1.x/src/etc/xmlunit.pom 2013-02-07 05:24:43 UTC (rev 518) @@ -1,6 +1,6 @@ <?xml version="1.0"?> <!-- -Copyright (c) 2007-2008, Jeff Martin, Tim Bacon +Copyright (c) 2007-2013, Jeff Martin, Tim Bacon All rights reserved. Redistribution and use in source and binary forms, with or without Modified: branches/xmlunit-1.x/src/site/index.html =================================================================== --- branches/xmlunit-1.x/src/site/index.html 2013-02-03 15:05:33 UTC (rev 517) +++ branches/xmlunit-1.x/src/site/index.html 2013-02-07 05:24:43 UTC (rev 518) @@ -59,9 +59,7 @@ </tr> <tr> <td colspan="2"> - <p>The current stable release is <a - href="http://sourceforge.net/project/showfiles.php?group_id=23187&package_id=15921&release_id=605991">XMLUnit - 1.2</a>, June 2008.</p> + <p>The current stable release is XMLUnit 1.4, February 2013.</p> <p>XMLUnit for Java provides two JUnit extension classes, <code>XMLAssert</code> and <code>XMLTestCase</code>, and a set of supporting classes (e.g. <code>Diff</code>, <code>DetailedDiff</code>,<code>Transform</code>,<code>SimpleXpathEngine</code>,<code>Validator</code>,<code>NodeTest</code>) @@ -104,8 +102,8 @@ <tr> <td colspan="2"> <p>The current release is <a - href="https://sourceforge.net/project/showfiles.php?group_id=23187&package_id=91308">XmlUnit -.Net 0.3.1</a>, February 2008</p> + href="https://sourceforge.net/projects/xmlunit/files/xmlunit%20for%20.Net/XMLUnit%20for%20.NET%200.4/">XmlUnit +.Net 0.4</a>, April 2009</p> <p>XMLUnit for .Net provides NUnit extension classes written in C#, e.g. <code>XmlAssertion</code> and <code>XmlDiff</code>, that allow assertions to be made about the differences between two pieces of XML, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2013-02-07 20:35:36
|
Revision: 522 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=522&view=rev Author: bodewig Date: 2013-02-07 20:35:30 +0000 (Thu, 07 Feb 2013) Log Message: ----------- prepare for releasing via Sonatype's Open Source Repository Hosting service, which requires additional information/jars Modified Paths: -------------- branches/xmlunit-1.x/build.xml branches/xmlunit-1.x/src/etc/xmlunit.pom Removed Paths: ------------- branches/xmlunit-1.x/src/etc/xmlunit-maven-metadata.xml Modified: branches/xmlunit-1.x/build.xml =================================================================== --- branches/xmlunit-1.x/build.xml 2013-02-07 08:22:33 UTC (rev 521) +++ branches/xmlunit-1.x/build.xml 2013-02-07 20:35:30 UTC (rev 522) @@ -215,7 +215,6 @@ <fileset dir="${src.dir}/etc"> <include name="xmlunit.pom"/> <include name="xmlunit-ivy.xml"/> - <include name="xmlunit-maven-metadata.xml"/> </fileset> <mapper type="glob" from="xmlunit*" to="xmlunit-${xmlunit.version}*"/> <filterset> @@ -266,6 +265,12 @@ <target name="dist" depends="bindist,srcdist,compile-userguide-examples" description="creates the distribution files"> + <jar jarfile="${lib.dir}/xmlunit-${xmlunit.version}-sources.jar" + basedir="${src.dir}/java" + /> + <jar jarfile="${lib.dir}/xmlunit-${xmlunit.version}-javadoc.jar" + basedir="${docs.dir}/api" + /> <checksum algorithm="md5"> <fileset dir="${dist.dir}"> <include name="*.zip"/> Deleted: branches/xmlunit-1.x/src/etc/xmlunit-maven-metadata.xml =================================================================== --- branches/xmlunit-1.x/src/etc/xmlunit-maven-metadata.xml 2013-02-07 08:22:33 UTC (rev 521) +++ branches/xmlunit-1.x/src/etc/xmlunit-maven-metadata.xml 2013-02-07 20:35:30 UTC (rev 522) @@ -1,48 +0,0 @@ -<?xml version="1.0"?> -<!-- -Copyright (c) 2007-2013, Jeff Martin, Tim Bacon -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of the xmlunit.sourceforge.net nor the names - of its contributors may be used to endorse or promote products - derived from this software without specific prior written - permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. ---> -<metadata> - <groupId>@GROUP@</groupId> - <artifactId>@ARTIFACT@</artifactId> - <version>@VERSION@</version> - <versioning> - <versions> - <version>0.8</version> - <version>1.0</version> - <version>1.1</version> - <version>1.2</version> - <version>1.3</version> - <version>@VERSION@</version> - </versions> - </versioning> -</metadata> Modified: branches/xmlunit-1.x/src/etc/xmlunit.pom =================================================================== --- branches/xmlunit-1.x/src/etc/xmlunit.pom 2013-02-07 08:22:33 UTC (rev 521) +++ branches/xmlunit-1.x/src/etc/xmlunit.pom 2013-02-07 20:35:30 UTC (rev 522) @@ -56,6 +56,7 @@ </licenses> <scm> <url>http://xmlunit.svn.sourceforge.net/viewvc/xmlunit/</url> + <connection>scm:svn:https://xmlunit.svn.sourceforge.net/svnroot/xmlunit/branches/xmlunit-1.x</connection> </scm> <dependencies> <dependency> @@ -65,4 +66,13 @@ <optional>true</optional> </dependency> </dependencies> + <!-- Personally I'm not fond of the developers section but Sonatype's OSSRH + requires it --> + <developers> + <developer> + <id>bodewig</id> + <name>Stefan Bodewig</name> + <email>stefan.bodewig@freenet dot de</email> + </developer> + </developers> </project> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2013-04-14 15:00:48
|
Revision: 525 http://sourceforge.net/p/xmlunit/code/525 Author: bodewig Date: 2013-04-14 15:00:45 +0000 (Sun, 14 Apr 2013) Log Message: ----------- signal CHILD_NODELIST_LENGTH and CHILD_NODE_NOT_FOUND in addition to HAS_CHILD_NODES - patch by Eric Siegerman - closes issue 60 Modified Paths: -------------- branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/DifferenceEngine.java branches/xmlunit-1.x/src/user-guide/XMLUnit-Java.xml branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_DetailedDiff.java branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_DifferenceEngine.java branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_IgnoreTextAndAttributeValuesDifferenceListener.java Modified: branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/DifferenceEngine.java =================================================================== --- branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/DifferenceEngine.java 2013-02-07 20:50:46 UTC (rev 524) +++ branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/DifferenceEngine.java 2013-04-14 15:00:45 UTC (rev 525) @@ -320,7 +320,7 @@ protected void compareNodeChildren(Node control, Node test, DifferenceListener listener, ElementQualifier elementQualifier) throws DifferenceFoundException { - if (control.hasChildNodes() && test.hasChildNodes()) { + if (control.hasChildNodes() || test.hasChildNodes()) { List controlChildren = nodeList2List(control.getChildNodes()); List testChildren = nodeList2List(test.getChildNodes()); @@ -328,8 +328,19 @@ Integer testLength = new Integer(testChildren.size()); compare(controlLength, testLength, control, test, listener, CHILD_NODELIST_LENGTH); - compareNodeList(controlChildren, testChildren, - controlLength.intValue(), listener, elementQualifier); + + if (controlLength.intValue() == 0) { + for (Iterator iter = testChildren.iterator(); iter.hasNext();) { + missingNode(null, (Node) iter.next(), listener); + } + } else if (testLength.intValue() == 0) { + for (Iterator iter = controlChildren.iterator(); iter.hasNext();) { + missingNode((Node) iter.next(), null, listener); + } + } else { + compareNodeList(controlChildren, testChildren, + controlLength.intValue(), listener, elementQualifier); + } } } Modified: branches/xmlunit-1.x/src/user-guide/XMLUnit-Java.xml =================================================================== --- branches/xmlunit-1.x/src/user-guide/XMLUnit-Java.xml 2013-02-07 20:50:46 UTC (rev 524) +++ branches/xmlunit-1.x/src/user-guide/XMLUnit-Java.xml 2013-04-14 15:00:45 UTC (rev 525) @@ -3695,6 +3695,46 @@ </section> </section> + <section id="Changes 1.5"> + <title>Changes from XMLUnit 1.4 to 1.5</title> + + <section id="Breaking Changes 1.5"> + <title>Breaking Changes</title> + + <itemizedlist> + <listitem> + If one node in the comparison has children while the other + one has not, XMLUnit 1.5 will signal a + <literal>CHILD_NODELIST_LENGTH</literal> difference and + <literal>CHILD_NODE_NOT_FOUND</literal> + differences for each child node of the node that has + children in addition to a <literal>HAS_CHILD_NODES</literal> difference. + <ulink + href="https://sourceforge.net/p/xmlunit/bugs/60/">Issue + 60</ulink> + </listitem> + </itemizedlist> + </section> + + <section id="New Features 1.5"> + <title>New Features</title> + + <itemizedlist> + <listitem> + </listitem> + </itemizedlist> + </section> + + <section id="Bugfixes 1.5"> + <title>Important Bug Fixes</title> + + <itemizedlist> + <listitem> + </listitem> + </itemizedlist> + </section> + </section> + </appendix> </article> Modified: branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_DetailedDiff.java =================================================================== --- branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_DetailedDiff.java 2013-02-07 20:50:46 UTC (rev 524) +++ branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_DetailedDiff.java 2013-04-14 15:00:45 UTC (rev 525) @@ -63,7 +63,7 @@ private void assertExpectedDifferencesFirstForecastControl(List differences, DetailedDiff detailedDiff) { - assertEquals("size: " + detailedDiff, 5, differences.size()); + assertEquals("size: " + detailedDiff, 7, differences.size()); assertEquals("first: " + detailedDiff, DifferenceConstants.ELEMENT_NUM_ATTRIBUTES, differences.get(0)); assertEquals("second: " + detailedDiff, @@ -74,6 +74,10 @@ DifferenceConstants.ATTR_SEQUENCE, differences.get(3)); assertEquals("fifth: " + detailedDiff, DifferenceConstants.HAS_CHILD_NODES, differences.get(4)); + assertEquals("sixth: " + detailedDiff, + DifferenceConstants.CHILD_NODELIST_LENGTH, differences.get(5)); + assertEquals("seventh: " + detailedDiff, + DifferenceConstants.CHILD_NODE_NOT_FOUND, differences.get(6)); } public void testAllDifferencesSecondForecastControl() throws Exception { @@ -82,7 +86,7 @@ List differences = detailedDiff.getAllDifferences(); - assertEquals("size: " + detailedDiff, 5, differences.size()); + assertEquals("size: " + detailedDiff, 7, differences.size()); assertEquals("first: " + detailedDiff, DifferenceConstants.ELEMENT_NUM_ATTRIBUTES, differences.get(0)); assertEquals("second: " + detailedDiff, @@ -94,6 +98,10 @@ differences.get(3)); assertEquals("fifth: " + detailedDiff, DifferenceConstants.HAS_CHILD_NODES, differences.get(4)); + assertEquals("sixth: " + detailedDiff, + DifferenceConstants.CHILD_NODELIST_LENGTH, differences.get(5)); + assertEquals("seventy: " + detailedDiff, + DifferenceConstants.CHILD_NODE_NOT_FOUND, differences.get(6)); } public void testPrototypeIsADetailedDiff() throws Exception { @@ -116,15 +124,18 @@ new InputSource(new FileReader(test))) ); List l = differencesWithWhitespace.getAllDifferences(); - int unmatchedNodes = 0; + int unmatchedNodeDiffs = 0; + int hasChildNodeDiffs = 0; for (Iterator iter = l.iterator(); iter.hasNext();) { Difference d = (Difference) iter.next(); if (d.getId() == DifferenceConstants.CHILD_NODE_NOT_FOUND_ID) { - unmatchedNodes++; + unmatchedNodeDiffs++; + } else if (d.getId() == DifferenceConstants.HAS_CHILD_NODES_ID) { + hasChildNodeDiffs++; } } - assertEquals(1402 + unmatchedNodes, + assertEquals(1402 + hasChildNodeDiffs + unmatchedNodeDiffs, differencesWithWhitespace.getAllDifferences().size()); try { @@ -133,14 +144,17 @@ new Diff(new FileReader(control), new FileReader(test)); DetailedDiff detailedDiff = new DetailedDiff(prototype); List differences = detailedDiff.getAllDifferences(); - unmatchedNodes = 0; + unmatchedNodeDiffs = 0; + hasChildNodeDiffs = 0; for (Iterator iter = differences.iterator(); iter.hasNext();) { Difference d = (Difference) iter.next(); if (d.getId() == DifferenceConstants.CHILD_NODE_NOT_FOUND_ID) { - unmatchedNodes++; + unmatchedNodeDiffs++; + } else if (d.getId() == DifferenceConstants.HAS_CHILD_NODES_ID) { + hasChildNodeDiffs++; } } - assertEquals(40 + unmatchedNodes, differences.size()); + assertEquals(40 + hasChildNodeDiffs + unmatchedNodeDiffs, differences.size()); SimpleXpathEngine xpathEngine = new SimpleXpathEngine(); Document controlDoc = Modified: branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_DifferenceEngine.java =================================================================== --- branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_DifferenceEngine.java 2013-02-07 20:50:46 UTC (rev 524) +++ branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_DifferenceEngine.java 2013-04-14 15:00:45 UTC (rev 525) @@ -646,15 +646,15 @@ String test = "<stuff><item id=\"2\"/></stuff>"; listenToDifferences(control, test); assertEquals("15th difference type", - DifferenceEngine.HAS_CHILD_NODES_ID, + DifferenceEngine.CHILD_NODE_NOT_FOUND_ID, listener.comparingWhat); - assertEquals("15th difference control value", "true", + assertEquals("15th difference control value", "thing", listener.expected); - assertEquals("15th difference test value", "false", + assertEquals("15th difference test value", "null", listener.actual); - assertEquals("15th control xpath", "/stuff[1]/item[1]", + assertEquals("15th control xpath", "/stuff[1]/item[1]/thing[1]", listener.controlXpath); - assertEquals("15th test xpath", "/stuff[1]/item[1]", + assertNull("15th test xpath should be null but is " + listener.testXpath, listener.testXpath); } Modified: branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_IgnoreTextAndAttributeValuesDifferenceListener.java =================================================================== --- branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_IgnoreTextAndAttributeValuesDifferenceListener.java 2013-02-07 20:50:46 UTC (rev 524) +++ branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_IgnoreTextAndAttributeValuesDifferenceListener.java 2013-04-14 15:00:45 UTC (rev 525) @@ -146,9 +146,10 @@ new Diff(control, dissimilarTest)); dissimilarDetailedDiff.overrideDifferenceListener(listener); List differences = dissimilarDetailedDiff.getAllDifferences(); - assertEquals("wrong number of attributes, missing attribute, different attribute value, and missing text node. " + assertEquals("wrong number of attributes, missing attribute, different attribute value, presence of subnodes, " + + "number of subnodes, missing text node. " + dissimilarDetailedDiff.toString(), - 4, differences.size()); + 6, differences.size()); int recoverable = 0; for (Iterator iter = differences.iterator(); iter.hasNext(); ) { Difference aDifference = (Difference) iter.next(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2013-04-14 16:00:02
|
Revision: 526 http://sourceforge.net/p/xmlunit/code/526 Author: bodewig Date: 2013-04-14 15:59:58 +0000 (Sun, 14 Apr 2013) Log Message: ----------- Issue 60: if elements without children can create 'CHILD_NODELIST_LENGTH' differences, they must also fire the corresponding MatchTracker events Modified Paths: -------------- branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/DifferenceEngine.java branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_DetailedDiff.java branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_Diff.java branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_DifferenceEngine.java branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_IgnoreTextAndAttributeValuesDifferenceListener.java Modified: branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/DifferenceEngine.java =================================================================== --- branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/DifferenceEngine.java 2013-04-14 15:00:45 UTC (rev 525) +++ branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/DifferenceEngine.java 2013-04-14 15:59:58 UTC (rev 526) @@ -320,20 +320,21 @@ protected void compareNodeChildren(Node control, Node test, DifferenceListener listener, ElementQualifier elementQualifier) throws DifferenceFoundException { + + List controlChildren = nodeList2List(control.getChildNodes()); + List testChildren = nodeList2List(test.getChildNodes()); + + Integer controlLength = new Integer(controlChildren.size()); + Integer testLength = new Integer(testChildren.size()); + compare(controlLength, testLength, control, test, listener, + CHILD_NODELIST_LENGTH); + if (control.hasChildNodes() || test.hasChildNodes()) { - List controlChildren = nodeList2List(control.getChildNodes()); - List testChildren = nodeList2List(test.getChildNodes()); - - Integer controlLength = new Integer(controlChildren.size()); - Integer testLength = new Integer(testChildren.size()); - compare(controlLength, testLength, control, test, listener, - CHILD_NODELIST_LENGTH); - - if (controlLength.intValue() == 0) { + if (!control.hasChildNodes()) { for (Iterator iter = testChildren.iterator(); iter.hasNext();) { missingNode(null, (Node) iter.next(), listener); } - } else if (testLength.intValue() == 0) { + } else if (!test.hasChildNodes()) { for (Iterator iter = controlChildren.iterator(); iter.hasNext();) { missingNode((Node) iter.next(), null, listener); } Modified: branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_DetailedDiff.java =================================================================== --- branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_DetailedDiff.java 2013-04-14 15:00:45 UTC (rev 525) +++ branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_DetailedDiff.java 2013-04-14 15:59:58 UTC (rev 526) @@ -1,6 +1,6 @@ /* ****************************************************************** -Copyright (c) 2001-2008,2010 Jeff Martin, Tim Bacon +Copyright (c) 2001-2008,2010,2013 Jeff Martin, Tim Bacon All rights reserved. Redistribution and use in source and binary forms, with or without Modified: branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_Diff.java =================================================================== --- branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_Diff.java 2013-04-14 15:00:45 UTC (rev 525) +++ branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_Diff.java 2013-04-14 15:59:58 UTC (rev 526) @@ -786,8 +786,9 @@ // // NODE_TYPE(Element), NAMESPACE_URI(none), // NAMESPACE_PREFIX(none), ELEMENT_TAG_NAME(foo), - // ELEMENT_NUM_ATTRIBUTE(none), HAS_CHILD_NODES(false) - assertEquals(12, count[0]); + // ELEMENT_NUM_ATTRIBUTE(none), HAS_CHILD_NODES(false), + // CHILD_NODELIST_LENGTH(0) + assertEquals(13, count[0]); } public void testMatchTrackerSetViaEngine() throws Exception { @@ -812,8 +813,9 @@ // // NODE_TYPE(Element), NAMESPACE_URI(none), // NAMESPACE_PREFIX(none), ELEMENT_TAG_NAME(foo), - // ELEMENT_NUM_ATTRIBUTE(none), HAS_CHILD_NODES(false) - assertEquals(12, count[0]); + // ELEMENT_NUM_ATTRIBUTE(none), HAS_CHILD_NODES(false), + // CHILD_NODELIST_LENGTH(0) + assertEquals(13, count[0]); } public void testMatchTrackerSetViaOverrideOnEngine() throws Exception { @@ -840,7 +842,8 @@ // NODE_TYPE(Element), NAMESPACE_URI(none), // NAMESPACE_PREFIX(none), ELEMENT_TAG_NAME(foo), // ELEMENT_NUM_ATTRIBUTE(none), HAS_CHILD_NODES(false) - assertEquals(12, count[0]); + // CHILD_NODELIST_LENGTH(0) + assertEquals(13, count[0]); } public void testCDATAAndIgnoreWhitespace() throws Exception { Modified: branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_DifferenceEngine.java =================================================================== --- branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_DifferenceEngine.java 2013-04-14 15:00:45 UTC (rev 525) +++ branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_DifferenceEngine.java 2013-04-14 15:59:58 UTC (rev 526) @@ -1,6 +1,6 @@ /* ****************************************************************** -Copyright (c) 2001-2008, Jeff Martin, Tim Bacon +Copyright (c) 2001-2008,2013 Jeff Martin, Tim Bacon All rights reserved. Redistribution and use in source and binary forms, with or without @@ -857,8 +857,9 @@ d.compare(control, test, listener, null); // NODE_TYPE (not null), NODE_TYPE(Element), NAMESPACE_URI(none), // NAMESPACE_PREFIX(none), ELEMENT_TAG_NAME(foo), - // ELEMENT_NUM_ATTRIBUTE(none), HAS_CHILD_NODES(false) - assertEquals(7, count[0]); + // ELEMENT_NUM_ATTRIBUTE(none), HAS_CHILD_NODES(false), + // CHILD_NODELIST_LENGTH(0) + assertEquals(8, count[0]); } public void testMatchTrackerSetViaSetter() throws Exception { @@ -873,8 +874,9 @@ engine.compare(control, test, listener, null); // NODE_TYPE (not null), NODE_TYPE(Element), NAMESPACE_URI(none), // NAMESPACE_PREFIX(none), ELEMENT_TAG_NAME(foo), - // ELEMENT_NUM_ATTRIBUTE(none), HAS_CHILD_NODES(false) - assertEquals(7, count[0]); + // ELEMENT_NUM_ATTRIBUTE(none), HAS_CHILD_NODES(false), + // CHILD_NODELIST_LENGTH(0) + assertEquals(8, count[0]); } /** Modified: branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_IgnoreTextAndAttributeValuesDifferenceListener.java =================================================================== --- branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_IgnoreTextAndAttributeValuesDifferenceListener.java 2013-04-14 15:00:45 UTC (rev 525) +++ branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/test_IgnoreTextAndAttributeValuesDifferenceListener.java 2013-04-14 15:59:58 UTC (rev 526) @@ -1,6 +1,6 @@ /* ****************************************************************** -Copyright (c) 200, Jeff Martin, Tim Bacon +Copyright (c) 2001-2008,2013 Jeff Martin, Tim Bacon All rights reserved. Redistribution and use in source and binary forms, with or without This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2013-08-13 11:45:10
|
Revision: 538 http://sourceforge.net/p/xmlunit/code/538 Author: bodewig Date: 2013-08-13 11:45:07 +0000 (Tue, 13 Aug 2013) Log Message: ----------- Bug#62 - indices in RecursiveElementNameAndTextQualifier swapped. Found by fnaeem Modified Paths: -------------- branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/examples/RecursiveElementNameAndTextQualifier.java branches/xmlunit-1.x/src/user-guide/XMLUnit-Java.xml branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/examples/test_RecursiveElementNameAndTextQualifier.java Modified: branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/examples/RecursiveElementNameAndTextQualifier.java =================================================================== --- branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/examples/RecursiveElementNameAndTextQualifier.java 2013-05-01 03:55:01 UTC (rev 537) +++ branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/examples/RecursiveElementNameAndTextQualifier.java 2013-08-13 11:45:07 UTC (rev 538) @@ -1,6 +1,6 @@ /* ****************************************************************** -Copyright (c) 2008, Jeff Martin, Tim Bacon +Copyright (c) 2008,2013 Jeff Martin, Tim Bacon All rights reserved. Redistribution and use in source and binary forms, with or without @@ -116,8 +116,8 @@ int i, j; for (i = j = 0; i < cNodes && j < tNodes; i++, j++) { - Node testNode = testNodes.item(i); - Node controlNode = controlNodes.item(j); + Node controlNode = controlNodes.item(i); + Node testNode = testNodes.item(j); // check if both node are same type if (controlNode.getNodeType() != testNode.getNodeType()) { Modified: branches/xmlunit-1.x/src/user-guide/XMLUnit-Java.xml =================================================================== --- branches/xmlunit-1.x/src/user-guide/XMLUnit-Java.xml 2013-05-01 03:55:01 UTC (rev 537) +++ branches/xmlunit-1.x/src/user-guide/XMLUnit-Java.xml 2013-08-13 11:45:07 UTC (rev 538) @@ -3730,6 +3730,11 @@ <itemizedlist> <listitem> + <literal>RecursiveElementNameAndTextQualifier</literal> had some indices + reversed leading to wrong results in some cases. + <ulink + href="https://sourceforge.net/p/xmlunit/bugs/62/">Issue + 62</ulink> </listitem> </itemizedlist> </section> Modified: branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/examples/test_RecursiveElementNameAndTextQualifier.java =================================================================== --- branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/examples/test_RecursiveElementNameAndTextQualifier.java 2013-05-01 03:55:01 UTC (rev 537) +++ branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/examples/test_RecursiveElementNameAndTextQualifier.java 2013-08-13 11:45:07 UTC (rev 538) @@ -1,6 +1,6 @@ /* ****************************************************************** -Copyright (c) 2008-2009, Jeff Martin, Tim Bacon +Copyright (c) 2008-2009,2013 Jeff Martin, Tim Bacon All rights reserved. Redistribution and use in source and binary forms, with or without @@ -167,6 +167,25 @@ assertTrue(d.toString(), d.similar()); } + /** + * @see "http://sourceforge.net/p/xmlunit/bugs/62/" + */ + public void testMultipleTextValuesWithAdditionalElement() throws Exception { + ElementQualifier qualifier = + new RecursiveElementNameAndTextQualifier(); + + Element control = document.createElement(TAG_NAME); + control.appendChild(document.createTextNode(TEXT_A)); + control.appendChild(document.createTextNode(TEXT_B)); + control.appendChild(document.createElement(TAG_NAME)); + + Element test = document.createElement(TAG_NAME); + test.appendChild(document.createTextNode(TEXT_A + TEXT_B)); + test.appendChild(document.createElement(TAG_NAME)); + assertTrue("denormalised control text comparable to normalised test text", + qualifier.qualifyForComparison(control, test)); + } + public void setUp() throws Exception { document = XMLUnit.newControlParser().newDocument(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2013-09-16 10:55:33
|
Revision: 545 http://sourceforge.net/p/xmlunit/code/545 Author: bodewig Date: 2013-09-16 10:55:30 +0000 (Mon, 16 Sep 2013) Log Message: ----------- bump version Modified Paths: -------------- branches/xmlunit-1.x/build.xml branches/xmlunit-1.x/src/site/index.html branches/xmlunit-1.x/src/user-guide/XMLUnit-Java.xml Modified: branches/xmlunit-1.x/build.xml =================================================================== --- branches/xmlunit-1.x/build.xml 2013-09-16 10:52:45 UTC (rev 544) +++ branches/xmlunit-1.x/build.xml 2013-09-16 10:55:30 UTC (rev 545) @@ -37,7 +37,7 @@ <property file="build.properties"/> <!-- Version --> - <property name="xmlunit.version" value="1.5alpha"/> + <property name="xmlunit.version" value="1.6alpha"/> <!-- some locations --> <property name="src.dir" value="src"/> Modified: branches/xmlunit-1.x/src/site/index.html =================================================================== --- branches/xmlunit-1.x/src/site/index.html 2013-09-16 10:52:45 UTC (rev 544) +++ branches/xmlunit-1.x/src/site/index.html 2013-09-16 10:55:30 UTC (rev 545) @@ -59,7 +59,7 @@ </tr> <tr> <td colspan="2"> - <p>The current stable release is XMLUnit 1.4, February 2013.</p> + <p>The current stable release is XMLUnit 1.5, September 2013.</p> <p>XMLUnit for Java provides two JUnit extension classes, <code>XMLAssert</code> and <code>XMLTestCase</code>, and a set of supporting classes (e.g. <code>Diff</code>, <code>DetailedDiff</code>,<code>Transform</code>,<code>SimpleXpathEngine</code>,<code>Validator</code>,<code>NodeTest</code>) Modified: branches/xmlunit-1.x/src/user-guide/XMLUnit-Java.xml =================================================================== --- branches/xmlunit-1.x/src/user-guide/XMLUnit-Java.xml 2013-09-16 10:52:45 UTC (rev 544) +++ branches/xmlunit-1.x/src/user-guide/XMLUnit-Java.xml 2013-09-16 10:55:30 UTC (rev 545) @@ -76,6 +76,11 @@ <date>February 2013</date> <revremark>Documentation for XMLUnit Java 1.4</revremark> </revision> + <revision> + <revnumber>1.5</revnumber> + <date>September 2013</date> + <revremark>Documentation for XMLUnit Java 1.5</revremark> + </revision> </revhistory> </articleinfo> @@ -3740,6 +3745,37 @@ </section> </section> + <section id="Changes 1.6"> + <title>Changes from XMLUnit 1.5 to 1.6</title> + + <section id="Breaking Changes 1.6"> + <title>Breaking Changes</title> + + <itemizedlist> + <listitem> + </listitem> + </itemizedlist> + </section> + + <section id="New Features 1.6"> + <title>New Features</title> + + <itemizedlist> + <listitem> + </listitem> + </itemizedlist> + </section> + + <section id="Bugfixes 1.6"> + <title>Important Bug Fixes</title> + + <itemizedlist> + <listitem> + </listitem> + </itemizedlist> + </section> + </section> + </appendix> </article> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2014-12-09 16:56:10
|
Revision: 569 http://sourceforge.net/p/xmlunit/code/569 Author: bodewig Date: 2014-12-09 16:56:07 +0000 (Tue, 09 Dec 2014) Log Message: ----------- Bug#64 - validator ignores schameLocation - actually this is by JAXP's design Modified Paths: -------------- branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/jaxp13/Validator.java branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/jaxp13/test_Validator.java Added Paths: ----------- branches/xmlunit-1.x/tests/etc/BookXsdGeneratedWithFixedSchemaLocation.xml Modified: branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/jaxp13/Validator.java =================================================================== --- branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/jaxp13/Validator.java 2014-12-05 13:41:11 UTC (rev 568) +++ branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/jaxp13/Validator.java 2014-12-09 16:56:07 UTC (rev 569) @@ -199,8 +199,10 @@ : SchemaFactory.newInstance(schemaLanguage); fac.setErrorHandler(h); try { - return fac.newSchema((Source[]) - sources.toArray(new Source[sources.size()])); + return sources.size() > 0 + ? fac.newSchema((Source[]) + sources.toArray(new Source[sources.size()])) + : fac.newSchema(); } finally { fac.setErrorHandler(null); } Copied: branches/xmlunit-1.x/tests/etc/BookXsdGeneratedWithFixedSchemaLocation.xml (from rev 543, branches/xmlunit-1.x/tests/etc/BookXsdGenerated.xml) =================================================================== --- branches/xmlunit-1.x/tests/etc/BookXsdGeneratedWithFixedSchemaLocation.xml (rev 0) +++ branches/xmlunit-1.x/tests/etc/BookXsdGeneratedWithFixedSchemaLocation.xml 2014-12-09 16:56:07 UTC (rev 569) @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Book xmlns:xsd="http://www.w3.org/2000/10/XMLSchema" xmlns="http://www.publishing.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.publishing.org Book.xsd"> + <Title>Chicken Soup for the Soul</Title> + <Author>Jack Canfield</Author> + <Author>Mark Victor Hansen</Author> + <Date>1993</Date> + <ISBN>1-55874-262-X</ISBN> + <Publisher>Health Communications, Inc.</Publisher> +</Book> Modified: branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/jaxp13/test_Validator.java =================================================================== --- branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/jaxp13/test_Validator.java 2014-12-05 13:41:11 UTC (rev 568) +++ branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/jaxp13/test_Validator.java 2014-12-09 16:56:07 UTC (rev 569) @@ -104,6 +104,14 @@ assertTrue(v.isInstanceValid(s)); } + public void testGoodInstanceIsValidNoSchemaSource() throws Exception { + Validator v = new Validator(); + StreamSource s = + new StreamSource(new File(test_Constants.BASEDIR + + "/tests/etc/BookXsdGeneratedWithFixedSchemaLocation.xml")); + assertTrue(v.isInstanceValid(s)); + } + public void testBadInstanceIsInvalid() throws Exception { Validator v = new Validator(); v.addSchemaSource(new StreamSource(new File(test_Constants.BASEDIR This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2014-12-09 17:02:59
|
Revision: 570 http://sourceforge.net/p/xmlunit/code/570 Author: bodewig Date: 2014-12-09 17:02:47 +0000 (Tue, 09 Dec 2014) Log Message: ----------- forgot to update year Modified Paths: -------------- branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/jaxp13/Validator.java branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/jaxp13/test_Validator.java Modified: branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/jaxp13/Validator.java =================================================================== --- branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/jaxp13/Validator.java 2014-12-09 16:56:07 UTC (rev 569) +++ branches/xmlunit-1.x/src/java/org/custommonkey/xmlunit/jaxp13/Validator.java 2014-12-09 17:02:47 UTC (rev 570) @@ -1,6 +1,6 @@ /* ****************************************************************** -Copyright (c) 2008, Jeff Martin, Tim Bacon +Copyright (c) 2008, 2014, Jeff Martin, Tim Bacon All rights reserved. Redistribution and use in source and binary forms, with or without Modified: branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/jaxp13/test_Validator.java =================================================================== --- branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/jaxp13/test_Validator.java 2014-12-09 16:56:07 UTC (rev 569) +++ branches/xmlunit-1.x/tests/java/org/custommonkey/xmlunit/jaxp13/test_Validator.java 2014-12-09 17:02:47 UTC (rev 570) @@ -1,6 +1,6 @@ /* ****************************************************************** -Copyright (c) 2008,2011, Jeff Martin, Tim Bacon +Copyright (c) 2008,2011,2014, Jeff Martin, Tim Bacon All rights reserved. Redistribution and use in source and binary forms, with or without This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2014-12-12 05:13:17
|
Revision: 571 http://sourceforge.net/p/xmlunit/code/571 Author: bodewig Date: 2014-12-12 05:13:09 +0000 (Fri, 12 Dec 2014) Log Message: ----------- prepare for subversion reshuffling Modified Paths: -------------- branches/xmlunit-1.x/LICENSE.txt branches/xmlunit-1.x/src/site/index.html Modified: branches/xmlunit-1.x/LICENSE.txt =================================================================== --- branches/xmlunit-1.x/LICENSE.txt 2014-12-09 17:02:47 UTC (rev 570) +++ branches/xmlunit-1.x/LICENSE.txt 2014-12-12 05:13:09 UTC (rev 571) @@ -1,6 +1,6 @@ /* ****************************************************************** -Copyright (c) 2001-2013, Jeff Martin, Tim Bacon +Copyright (c) 2001-2014, Jeff Martin, Tim Bacon All rights reserved. Redistribution and use in source and binary forms, with or without Modified: branches/xmlunit-1.x/src/site/index.html =================================================================== --- branches/xmlunit-1.x/src/site/index.html 2014-12-09 17:02:47 UTC (rev 570) +++ branches/xmlunit-1.x/src/site/index.html 2014-12-12 05:13:09 UTC (rev 571) @@ -84,7 +84,7 @@ <td><a href="example.html">See some example code</a></td> <td><a href="api/index.html">Browse the Javadocs</a></td> <td><a - href="http://xmlunit.svn.sourceforge.net/viewvc/xmlunit/trunk/xmlunit/">Visit + href="http://xmlunit.svn.sourceforge.net/viewvc/xmlunit/trunk/">Visit the Subversion repository</a> </td> </tr> </tbody> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |