You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by fr...@apache.org on 2006/11/04 23:11:26 UTC
svn commit: r471275 - in /incubator/wicket/branches/wicket-1.x/wicket/src:
changes/ main/java/wicket/util/tester/ test/java/wicket/util/tester/
Author: frankbille
Date: Sat Nov 4 14:11:25 2006
New Revision: 471275
URL: http://svn.apache.org/viewvc?view=rev&rev=471275
Log:
WICKET-35 WicketTester can now test BookmarkablePageLinks with PageParameters.
Added:
incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/util/tester/MockPageParameterPage.html (with props)
incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/util/tester/MockPageParameterPage.java (with props)
Modified:
incubator/wicket/branches/wicket-1.x/wicket/src/changes/changes.xml
incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/util/tester/WicketTester.java
incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/util/tester/WicketTesterTest.java
Modified: incubator/wicket/branches/wicket-1.x/wicket/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/wicket/src/changes/changes.xml?view=diff&rev=471275&r1=471274&r2=471275
==============================================================================
--- incubator/wicket/branches/wicket-1.x/wicket/src/changes/changes.xml (original)
+++ incubator/wicket/branches/wicket-1.x/wicket/src/changes/changes.xml Sat Nov 4 14:11:25 2006
@@ -14,6 +14,9 @@
<body>
<release version="1.3" date="tbd" description="Wicket 1.3">
</release>
+ <release version="1.2.4" description="Wicket 1.2.4">
+ <action type="fix" dev="Frank Bille Jensen" issue="WICKET-35">WicketTester can now test BookmarkablePageLinks with PageParameters.</action>
+ </release>
<release version="1.2.3" description="Wicket 1.2.3">
<action type="fix" dev="Frank Bille Jensen" issue="WICKET-16">Make sure that bookmarkable urls for classes containing non-ascii characters is encoded properly.</action>
<action type="add" dev="Eelco Hillenius">Added method protected void onDisabled(final ComponentTag tag) to FormComponent, which is called during rendering when the component is disabled. By default, an disabled="disabled" attribute is added, but clients may override this method.</action>
Modified: incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/util/tester/WicketTester.java
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/util/tester/WicketTester.java?view=diff&rev=471275&r1=471274&r2=471275
==============================================================================
--- incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/util/tester/WicketTester.java (original)
+++ incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/util/tester/WicketTester.java Sat Nov 4 14:11:25 2006
@@ -33,6 +33,7 @@
import wicket.Component;
import wicket.Page;
+import wicket.PageParameters;
import wicket.RequestCycle;
import wicket.WicketRuntimeException;
import wicket.ajax.AjaxEventBehavior;
@@ -51,6 +52,7 @@
import wicket.markup.html.form.Form;
import wicket.markup.html.form.FormComponent;
import wicket.markup.html.form.RadioGroup;
+import wicket.markup.html.link.BookmarkablePageLink;
import wicket.markup.html.link.IPageLink;
import wicket.markup.html.link.Link;
import wicket.markup.html.link.PageLink;
@@ -691,6 +693,31 @@
else if (linkComponent instanceof Link)
{
Link link = (Link)linkComponent;
+
+ /*
+ * If the link is a bookmarkable link, then we need to transfer the
+ * parameters to the next request.
+ */
+ if (link instanceof BookmarkablePageLink)
+ {
+ BookmarkablePageLink bookmarkablePageLink = (BookmarkablePageLink)link;
+ try
+ {
+ Field parametersField = BookmarkablePageLink.class
+ .getDeclaredField("parameters");
+ parametersField.setAccessible(true);
+ PageParameters parameters = (PageParameters)parametersField
+ .get(bookmarkablePageLink);
+ setParametersForNextRequest(parameters);
+ }
+ catch (Exception e)
+ {
+ Assert.fail("Internal error in WicketTester. "
+ + "Please report this in Wickets Issue Tracker.");
+ }
+
+ }
+
newRequestToComponent(link);
}
else
@@ -955,24 +982,24 @@
* component by using:
*
* <pre>
- * ...
- * component.add(new AjaxEventBehavior("ondblclick") {
- * public void onEvent(AjaxRequestTarget) {
- * // Do something.
- * }
- * });
- * ...
+ * ...
+ * component.add(new AjaxEventBehavior("ondblclick") {
+ * public void onEvent(AjaxRequestTarget) {
+ * // Do something.
+ * }
+ * });
+ * ...
* </pre>
*
* You can then test that the code inside onEvent actually does what it's
* supposed to, using the WicketTester:
*
* <pre>
- * ...
- * tester.executeAjaxEvent(component, "ondblclick");
- *
- * // Test that the code inside onEvent is correct.
- * ...
+ * ...
+ * tester.executeAjaxEvent(component, "ondblclick");
+ *
+ * // Test that the code inside onEvent is correct.
+ * ...
* </pre>
*
* This also works with AjaxFormSubmitBehavior, where it will "submit" the
Added: incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/util/tester/MockPageParameterPage.html
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/util/tester/MockPageParameterPage.html?view=auto&rev=471275
==============================================================================
--- incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/util/tester/MockPageParameterPage.html (added)
+++ incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/util/tester/MockPageParameterPage.html Sat Nov 4 14:11:25 2006
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://www.wicketframework.org/">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title>Insert title here</title>
+</head>
+<body>
+<a wicket:id="link">Bookmarkable link</a>
+<span wicket:id="label"></span>
+</body>
+</html>
\ No newline at end of file
Propchange: incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/util/tester/MockPageParameterPage.html
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/util/tester/MockPageParameterPage.html
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/util/tester/MockPageParameterPage.java
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/util/tester/MockPageParameterPage.java?view=auto&rev=471275
==============================================================================
--- incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/util/tester/MockPageParameterPage.java (added)
+++ incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/util/tester/MockPageParameterPage.java Sat Nov 4 14:11:25 2006
@@ -0,0 +1,44 @@
+/*
+ * $Id$
+ * $Revision$
+ * $Date$
+ *
+ * ==============================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package wicket.util.tester;
+
+import wicket.PageParameters;
+import wicket.markup.html.WebPage;
+import wicket.markup.html.basic.Label;
+import wicket.markup.html.link.BookmarkablePageLink;
+
+/**
+ * Mock page for testing PageParameters handling in WicketTester.
+ *
+ * @author Frank Bille Jensen (frankbille)
+ */
+public class MockPageParameterPage extends WebPage
+{
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Construct.
+ * @param pageParameters
+ */
+ public MockPageParameterPage(PageParameters pageParameters)
+ {
+ add(new BookmarkablePageLink("link", MockPageParameterPage.class, new PageParameters("id=1")));
+ add(new Label("label", pageParameters.getString("id")));
+ }
+}
Propchange: incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/util/tester/MockPageParameterPage.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/util/tester/MockPageParameterPage.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/util/tester/WicketTesterTest.java
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/util/tester/WicketTesterTest.java?view=diff&rev=471275&r1=471274&r2=471275
==============================================================================
--- incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/util/tester/WicketTesterTest.java (original)
+++ incubator/wicket/branches/wicket-1.x/wicket/src/test/java/wicket/util/tester/WicketTesterTest.java Sat Nov 4 14:11:25 2006
@@ -314,4 +314,25 @@
assertTrue(page.isExecuted());
}
+
+
+ /**
+ *
+ */
+ public void testRedirectWithPageParameters()
+ {
+ WicketTester tester = new WicketTester();
+
+ tester.startPage(MockPageParameterPage.class);
+
+ tester.assertLabel("label", "");
+
+ // Click the bookmarkable link
+ tester.clickLink("link");
+
+ // It should still be the MockPageParameterPage, but the
+ // label should now have "1" in it because that's what comes
+ // from the page parameter.
+ tester.assertLabel("label", "1");
+ }
}