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()); + } }
