Updated Branches:
  refs/heads/wicket-1.5.x d68cf6b16 -> 279d07914

WICKET-4507 wicktTester.getLastResponseAsString() returns wrong result after 
starting a Component


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/279d0791
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/279d0791
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/279d0791

Branch: refs/heads/wicket-1.5.x
Commit: 279d079145d83f4e229e68a2facb419e6cd20653
Parents: d68cf6b
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Mon Apr 23 11:24:28 2012 +0300
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Mon Apr 23 11:24:28 2012 +0300

----------------------------------------------------------------------
 .../wicket/util/tester/BaseWicketTester.java       |   15 ++------
 .../form/formComponentPanel/SimplePageTest.java    |    2 +-
 .../wicket/util/tester/WicketTesterTest.java       |   28 +++++++++++++-
 3 files changed, 31 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/279d0791/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java 
b/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
index 9fdde6c..45de167 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
@@ -156,10 +156,6 @@ public class BaseWicketTester
        /** log. */
        private static final Logger log = 
LoggerFactory.getLogger(BaseWicketTester.class);
 
-       /** matches the last closing tag before </body> */
-       private static final Pattern pattern = 
Pattern.compile(".*(<\\/.*[^<\\/])<\\/body>.*",
-               Pattern.MULTILINE | Pattern.DOTALL);
-
        private final ServletContext servletContext;
        private MockHttpSession httpSession;
 
@@ -881,14 +877,11 @@ public class BaseWicketTester
                        return response;
                }
 
-               // remove the markup for the auto-generated page. leave just 
component's markup body
-               String componentId = componentInPage.component.getId();
-               String before = "wicket:id=\"" + componentId + "\">";
-               Matcher matcher = pattern.matcher(response);
-               if (matcher.matches())
+               // remove the markup for the auto-generated page. leave just 
component's markup
+               int end = response.lastIndexOf("</body>");
+               if (end > -1)
                {
-                       int start = response.indexOf(before) + before.length();
-                       int end = matcher.start(1);
+                       int start = response.indexOf("<body>") + 
"<body>".length();
                        response = response.substring(start, end);
                }
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/279d0791/wicket-core/src/test/java/org/apache/wicket/markup/html/form/formComponentPanel/SimplePageTest.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/formComponentPanel/SimplePageTest.java
 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/formComponentPanel/SimplePageTest.java
index cda96da..8b80868 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/formComponentPanel/SimplePageTest.java
+++ 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/formComponentPanel/SimplePageTest.java
@@ -38,7 +38,7 @@ public class SimplePageTest extends WicketTestCase
                tester.startComponentInPage(MyFormComponentPanel.class);
                String doc = tester.getLastResponseAsString();
                // log.error(doc);
-               assertEquals("<wicket:panel>test</wicket:panel>", doc);
+               assertEquals("<span 
wicket:id=\"testObject\"><wicket:panel>test</wicket:panel></span>", doc);
        }
 
        /**

http://git-wip-us.apache.org/repos/asf/wicket/blob/279d0791/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java 
b/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
index 435dc31..729ed9f 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
+++ 
b/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
@@ -38,13 +38,13 @@ import org.apache.wicket.ajax.WicketAjaxReference;
 import org.apache.wicket.ajax.markup.html.AjaxLink;
 import org.apache.wicket.authorization.Action;
 import org.apache.wicket.authorization.IAuthorizationStrategy;
+import org.apache.wicket.markup.ComponentTag;
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.Button;
 import org.apache.wicket.markup.html.form.FormComponent;
 import org.apache.wicket.markup.html.form.TextField;
 import org.apache.wicket.markup.html.link.Link;
-import org.apache.wicket.markup.html.link.PageWithLink;
 import org.apache.wicket.markup.html.link.ResourceLink;
 import org.apache.wicket.markup.html.pages.AccessDeniedPage;
 import org.apache.wicket.model.IModel;
@@ -60,7 +60,6 @@ import 
org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.ByteArrayResource;
 import 
org.apache.wicket.request.resource.PackageResource.PackageResourceBlockedException;
 import org.apache.wicket.resource.DummyPage;
-import org.apache.wicket.util.crypt.CharEncoding;
 import org.apache.wicket.util.string.StringValue;
 import org.apache.wicket.util.tester.DummyHomePage.TestLink;
 import org.apache.wicket.util.tester.MockPageParameterPage.MockInnerClassPage;
@@ -1169,4 +1168,29 @@ public class WicketTesterTest extends WicketTestCase
                assertEquals(tester.getContentTypeFromResponseHeader(), 
"text/plain");
                assertEquals(content, tester.getLastResponseAsString());
        }
+
+       /**
+        * https://issues.apache.org/jira/browse/WICKET-4507
+        *
+        * When WicketTester#startComponentInPage() is used then 
#getLastResponseAsString()
+        * should return only the component's markup, without the autogenerated 
markup for the page
+        */
+       @Test
+       public void renderOnlyComponentsMarkup()
+       {
+               tester.startComponentInPage(new Label("label", "content")
+               {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       protected void onComponentTag(ComponentTag tag)
+                       {
+                               super.onComponentTag(tag);
+                               tag.put("test", "123");
+                       }
+               });
+
+               assertEquals("<span wicket:id=\"label\" 
test=\"123\">content</span>",
+                       tester.getLastResponseAsString());
+       }
 }

Reply via email to