From: <bo...@us...> - 2010-08-31 16:25:05
|
Revision: 450 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=450&view=rev Author: bodewig Date: 2010-08-31 16:24:59 +0000 (Tue, 31 Aug 2010) Log Message: ----------- provide correct Difference type for Comment and CDATA text differences Modified Paths: -------------- trunk/xmlunit/src/main/java-legacy/org/custommonkey/xmlunit/NewDifferenceEngine.java Modified: trunk/xmlunit/src/main/java-legacy/org/custommonkey/xmlunit/NewDifferenceEngine.java =================================================================== --- trunk/xmlunit/src/main/java-legacy/org/custommonkey/xmlunit/NewDifferenceEngine.java 2010-08-31 16:24:10 UTC (rev 449) +++ trunk/xmlunit/src/main/java-legacy/org/custommonkey/xmlunit/NewDifferenceEngine.java 2010-08-31 16:24:59 UTC (rev 450) @@ -52,6 +52,7 @@ import org.w3c.dom.Comment; import org.w3c.dom.Element; import org.w3c.dom.Node; +import org.w3c.dom.Text; /** * Class that has responsibility for comparing Nodes and notifying a @@ -192,8 +193,9 @@ } else if (comp.getControlDetails().getTarget() instanceof Comment) { proto = COMMENT_VALUE; + } else { + proto = TEXT_VALUE; } - proto = TEXT_VALUE; break; case PROCESSING_INSTRUCTION_TARGET: proto = PROCESSING_INSTRUCTION_TARGET; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bo...@us...> - 2010-09-16 15:13:50
|
Revision: 480 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=480&view=rev Author: bodewig Date: 2010-09-16 15:13:39 +0000 (Thu, 16 Sep 2010) Log Message: ----------- avoid double-wrapping of ElementSelectors Modified Paths: -------------- trunk/xmlunit/src/main/java-legacy/org/custommonkey/xmlunit/NewDifferenceEngine.java Modified: trunk/xmlunit/src/main/java-legacy/org/custommonkey/xmlunit/NewDifferenceEngine.java =================================================================== --- trunk/xmlunit/src/main/java-legacy/org/custommonkey/xmlunit/NewDifferenceEngine.java 2010-09-14 11:30:44 UTC (rev 479) +++ trunk/xmlunit/src/main/java-legacy/org/custommonkey/xmlunit/NewDifferenceEngine.java 2010-09-16 15:13:39 UTC (rev 480) @@ -36,6 +36,7 @@ package org.custommonkey.xmlunit; +import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; @@ -53,10 +54,12 @@ import net.sf.xmlunit.diff.DifferenceEvaluator; import net.sf.xmlunit.diff.DifferenceEvaluators; import net.sf.xmlunit.diff.ElementSelector; +import net.sf.xmlunit.diff.ElementSelectors; import net.sf.xmlunit.diff.NodeMatcher; import net.sf.xmlunit.input.CommentLessSource; import net.sf.xmlunit.input.WhitespaceStrippedSource; import net.sf.xmlunit.util.Linqy; +import org.custommonkey.xmlunit.examples.RecursiveElementNameAndTextQualifier; import org.w3c.dom.CDATASection; import org.w3c.dom.Comment; @@ -79,6 +82,17 @@ implements DifferenceConstants, DifferenceEngineContract { private static final Integer ZERO = Integer.valueOf(0); + private static final Map<Class<?>, ElementSelector> KNOWN_SELECTORS; + static { + Map<Class<?>, ElementSelector> m = + new HashMap<Class<?>, ElementSelector>(); + m.put(ElementNameAndTextQualifier.class, + ElementSelectors.byNameAndText); + m.put(ElementQualifier.class, ElementSelectors.byName); + m.put(RecursiveElementNameAndTextQualifier.class, + ElementSelectors.byNameAndTextRec); + KNOWN_SELECTORS = Collections.unmodifiableMap(m); + } private final ComparisonController controller; private MatchTracker matchTracker; @@ -164,7 +178,12 @@ NodeMatcher m = new DefaultNodeMatcher(); if (elementQualifier != null) { - m = new DefaultNodeMatcher(new ElementQualifier2ElementSelector(elementQualifier)); + Class<?> c = elementQualifier.getClass(); + if (KNOWN_SELECTORS.containsKey(c)) { + m = new DefaultNodeMatcher(KNOWN_SELECTORS.get(c)); + } else { + m = new DefaultNodeMatcher(new ElementQualifier2ElementSelector(elementQualifier)); + } } if (!XMLUnit.getCompareUnmatched()) { engine.setNodeMatcher(m); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |