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 2012/03/07 15:14:17 UTC

git commit: WICKET-4437 BaseWicketTester.clickLink() does not work with a ResourceLink

Updated Branches:
  refs/heads/wicket-1.5.x f86fe6ef4 -> b58a5ea76


WICKET-4437 BaseWicketTester.clickLink() does not work with a ResourceLink


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

Branch: refs/heads/wicket-1.5.x
Commit: b58a5ea76cf2056b67ebcf35215e47552fdbfe5c
Parents: f86fe6e
Author: martin-g <mg...@apache.org>
Authored: Wed Mar 7 16:13:38 2012 +0200
Committer: martin-g <mg...@apache.org>
Committed: Wed Mar 7 16:13:38 2012 +0200

----------------------------------------------------------------------
 .../wicket/util/tester/BaseWicketTester.java       |   13 ++++++--
 .../wicket/util/tester/WicketTesterTest.java       |   23 +++++++++++++++
 2 files changed, 33 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/b58a5ea7/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 f520328..8ab6671 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
@@ -49,6 +49,7 @@ import org.apache.wicket.IPageManagerProvider;
 import org.apache.wicket.IPageRendererProvider;
 import org.apache.wicket.IRequestCycleProvider;
 import org.apache.wicket.IRequestListener;
+import org.apache.wicket.IResourceListener;
 import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.Page;
 import org.apache.wicket.RequestListenerInterface;
@@ -82,6 +83,7 @@ import org.apache.wicket.markup.html.link.AbstractLink;
 import org.apache.wicket.markup.html.link.BookmarkablePageLink;
 import org.apache.wicket.markup.html.link.ILinkListener;
 import org.apache.wicket.markup.html.link.Link;
+import org.apache.wicket.markup.html.link.ResourceLink;
 import org.apache.wicket.markup.html.list.ListView;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.markup.parser.XmlPullParser;
@@ -1909,7 +1911,6 @@ public class BaseWicketTester
 						bookmarkablePageLink, (Object[])null);
 
 					startPage(bookmarkablePageLink.getPageClass(), parameters);
-					return;
 				}
 				catch (Exception e)
 				{
@@ -1917,8 +1918,14 @@ public class BaseWicketTester
 						+ "Please report this in Wicket's Issue Tracker.", e);
 				}
 			}
-
-			executeListener(link, ILinkListener.INTERFACE);
+			else if (link instanceof ResourceLink)
+			{
+				executeListener(link, IResourceListener.INTERFACE);
+			}
+			else
+			{
+				executeListener(link, ILinkListener.INTERFACE);
+			}
 		}
 		else
 		{

http://git-wip-us.apache.org/repos/asf/wicket/blob/b58a5ea7/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 7e0f4d8..435dc31 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
@@ -44,6 +44,8 @@ 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;
 import org.apache.wicket.protocol.http.WebApplication;
@@ -55,8 +57,10 @@ import org.apache.wicket.request.handler.BookmarkablePageRequestHandler;
 import org.apache.wicket.request.handler.IPageProvider;
 import org.apache.wicket.request.handler.PageProvider;
 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;
@@ -1146,4 +1150,23 @@ public class WicketTesterTest extends WicketTestCase
 			.getApplicationSettings()
 			.getAccessDeniedPage());
 	}
+
+	/**
+	 * https://issues.apache.org/jira/browse/WICKET-4437
+	 *
+	 * Clicking on ResourceLink should deliver the resource content
+	 */
+	@Test
+	public void clickResourceLink()
+	{
+		MockPageWithLink page = new MockPageWithLink();
+		String content = "content";
+		ByteArrayResource resource = new ByteArrayResource("text/plain", content.getBytes(), "fileName.txt");
+		ResourceLink<Void> link = new ResourceLink<Void>(MockPageWithLink.LINK_ID, resource);
+		page.add(link);
+		tester.startPage(page);
+		tester.clickLink(MockPageWithLink.LINK_ID, false);
+		assertEquals(tester.getContentTypeFromResponseHeader(), "text/plain");
+		assertEquals(content, tester.getLastResponseAsString());
+	}
 }