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

Reply via email to