From e4ddf1ccb50cc649594e4145bf6163d31fb60c27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20R=C3=B6hl?= Date: Wed, 13 May 2015 10:46:54 +0200 Subject: [PATCH] A test for ElementSelectors which currently fails for byNameAndTextRec --- .../xmlunit/diff/ElementSelectorsTest.java | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/xmlunit-core/src/test/java/org/xmlunit/diff/ElementSelectorsTest.java b/xmlunit-core/src/test/java/org/xmlunit/diff/ElementSelectorsTest.java index c64035fe..3db127a6 100644 --- a/xmlunit-core/src/test/java/org/xmlunit/diff/ElementSelectorsTest.java +++ b/xmlunit-core/src/test/java/org/xmlunit/diff/ElementSelectorsTest.java @@ -129,6 +129,54 @@ private void byNameAndText_SingleLevel(ElementSelector s) { assertFalse(s.canBeCompared(control, differentElement)); assertFalse(s.canBeCompared(control, differentText)); } + + + @Test public void byNameAndTextRec_Multilevel() { + Element control = doc.createElement("root"); + { + Element controlSub = doc.createElement("sub"); + control.appendChild(controlSub); + Element controlSubSubValue = doc.createElement("value"); + controlSub.appendChild(controlSubSubValue); + controlSubSubValue.appendChild(doc.createTextNode("1")); + controlSubSubValue = doc.createElement("value"); + controlSub.appendChild(controlSubSubValue); + controlSubSubValue.appendChild(doc.createTextNode("2")); + + controlSub = doc.createElement("sub"); + control.appendChild(controlSub); + controlSubSubValue = doc.createElement("value"); + controlSub.appendChild(controlSubSubValue); + controlSubSubValue.appendChild(doc.createTextNode("3")); + controlSubSubValue = doc.createElement("value"); + controlSub.appendChild(controlSubSubValue); + controlSubSubValue.appendChild(doc.createTextNode("4")); + } + + Element test = doc.createElement("root"); + { + Element testSub = doc.createElement("sub"); + test.appendChild(testSub); + Element testSubValue = doc.createElement("value"); + testSub.appendChild(testSubValue); + testSubValue.appendChild(doc.createTextNode("3")); + testSubValue = doc.createElement("value"); + testSub.appendChild(testSubValue); + testSubValue.appendChild(doc.createTextNode("4")); + + testSub = doc.createElement("sub"); + test.appendChild(testSub); + testSubValue = doc.createElement("value"); + testSub.appendChild(testSubValue); + testSubValue.appendChild(doc.createTextNode("1")); + testSubValue = doc.createElement("value"); + testSub.appendChild(testSubValue); + testSubValue.appendChild(doc.createTextNode("2")); + } + + ElementSelector s = ElementSelectors.byNameAndTextRec; + assertTrue(s.canBeCompared(control, test)); + } @Test public void byNameAndAllAttributes_NamePart() { pureElementNameComparisons(ElementSelectors.byNameAndAllAttributes);