Updated Branches: refs/heads/master af34de7f6 -> e0d2b7c38
WICKET-5137 Improve TagTester support for Ajax responses Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/e0d2b7c3 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/e0d2b7c3 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/e0d2b7c3 Branch: refs/heads/master Commit: e0d2b7c38188f34d669a47c6f22d8965fa0c295a Parents: af34de7 Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Mon Apr 8 12:06:44 2013 +0300 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Mon Apr 8 12:06:44 2013 +0300 ---------------------------------------------------------------------- .../org/apache/wicket/util/tester/TagTester.java | 16 +++++++++++++- .../markup/html/image/AjaxUpdatedImageTest.java | 4 +- .../apache/wicket/util/tester/TagTesterTest.java | 17 ++++++++++++++- 3 files changed, 33 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/e0d2b7c3/wicket-core/src/main/java/org/apache/wicket/util/tester/TagTester.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/TagTester.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/TagTester.java index 7aba99b..9915981 100644 --- a/wicket-core/src/main/java/org/apache/wicket/util/tester/TagTester.java +++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/TagTester.java @@ -19,6 +19,7 @@ package org.apache.wicket.util.tester; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.regex.Pattern; import org.apache.wicket.WicketRuntimeException; import org.apache.wicket.markup.parser.XmlPullParser; @@ -50,6 +51,9 @@ import org.apache.wicket.util.value.IValueMap; */ public class TagTester { + private static final Pattern AJAX_COMPONENT_CDATA_OPEN = Pattern.compile("<component.*?><!\\[CDATA\\["); + private static final Pattern AJAX_COMPONENT_CDATA_CLOSE = Pattern.compile("\\]\\]></component>"); + private final XmlTag openTag; private final XmlTag closeTag; @@ -362,10 +366,15 @@ public class TagTester { try { + // remove the CDATA and + // the id attribute of the component because it is often the same as the element's id + markup = AJAX_COMPONENT_CDATA_OPEN.matcher(markup).replaceAll("<component>"); + markup = AJAX_COMPONENT_CDATA_CLOSE.matcher(markup).replaceAll("</component>"); + XmlPullParser parser = new XmlPullParser(); parser.parse(markup); - XmlTag elm = null; + XmlTag elm; XmlTag openTag = null; XmlTag closeTag = null; int level = 0; @@ -486,6 +495,11 @@ public class TagTester { try { + // remove the CDATA and + // the id attribute of the component because it is often the same as the element's id + markup = AJAX_COMPONENT_CDATA_OPEN.matcher(markup).replaceAll("<component>"); + markup = AJAX_COMPONENT_CDATA_CLOSE.matcher(markup).replaceAll("</component>"); + XmlPullParser parser = new XmlPullParser(); parser.parse(markup); http://git-wip-us.apache.org/repos/asf/wicket/blob/e0d2b7c3/wicket-core/src/test/java/org/apache/wicket/markup/html/image/AjaxUpdatedImageTest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/image/AjaxUpdatedImageTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/AjaxUpdatedImageTest.java index c095778..f235ff6 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/html/image/AjaxUpdatedImageTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/AjaxUpdatedImageTest.java @@ -44,9 +44,9 @@ public class AjaxUpdatedImageTest extends WicketTestCase tester.clickLink("link", true); page = (AjaxyImagesPage)tester.getLastRenderedPage(); tagTester = tester.getTagById(page.image.getMarkupId()); - final String imageAjaxComponent = tagTester.getValue(); + final String srcAttr1 = tagTester.getAttribute("src"); assertTrue( "Image has not be rendered in Ajax request so it has no wicket:antiCache' parameter", - imageAjaxComponent.contains("antiCache")); + srcAttr1.contains("antiCache")); } } http://git-wip-us.apache.org/repos/asf/wicket/blob/e0d2b7c3/wicket-core/src/test/java/org/apache/wicket/util/tester/TagTesterTest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/util/tester/TagTesterTest.java b/wicket-core/src/test/java/org/apache/wicket/util/tester/TagTesterTest.java index 19f814c..5674436 100644 --- a/wicket-core/src/test/java/org/apache/wicket/util/tester/TagTesterTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/util/tester/TagTesterTest.java @@ -25,8 +25,23 @@ import org.junit.Test; public class TagTesterTest extends Assert { /** Mock markup 1 */ - public static final String MARKUP_1 = "<p id=\"test\" class=\"class1\"><span class=\"class2\" id=\"test2\">mock</span></p>"; + private static final String MARKUP_1 = "<p id=\"test\" class=\"class1\"><span class=\"class2\" id=\"test2\">mock</span></p>"; + private static final String AJAX_MARKUP_1 = "<?xml version='1.0' encoding='UTF-8'?>" + + "<ajax-response><component id='comp1'><![CDATA[<div class='cls' id='compId'></div>]]></component></ajax-response>"; + + /** + * https://issues.apache.org/jira/browse/WICKET-5137 + */ + @Test + public void getTagInAjaxResponse() + { + TagTester tester = TagTester.createTagByAttribute(AJAX_MARKUP_1, "id", "compId"); + assertNotNull(tester); + + String cls = tester.getAttribute("class"); + assertEquals("cls", cls); + } /** * Test the static factory method
