You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2013/04/08 11:07:18 UTC
git commit: WICKET-5137 Improve TagTester support for Ajax responses
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 <mg...@apache.org>
Authored: Mon Apr 8 12:06:44 2013 +0300
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
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