You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jd...@apache.org on 2009/04/26 16:01:55 UTC

svn commit: r768707 - in /wicket/trunk/wicket/src: main/java/org/apache/wicket/ test/java/org/apache/wicket/request/target/coding/

Author: jdonnerstag
Date: Sun Apr 26 14:01:54 2009
New Revision: 768707

URL: http://svn.apache.org/viewvc?rev=768707&view=rev
Log:
I reverted the change and updated the test case. From the test case it is obvious that the URL generated is not sufficient for stateless pages. More over there seem structural weaknesses in how URLs are generated and used, besides some inconsistencies.
Issue: WICKET-2204

Modified:
    wicket/trunk/wicket/src/main/java/org/apache/wicket/RequestCycle.java
    wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/IndexParamWithStatelessIFrameTest.java
    wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/TestPageWithIFrame.java

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/RequestCycle.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/RequestCycle.java?rev=768707&r1=768706&r2=768707&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/RequestCycle.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/RequestCycle.java Sun Apr 26 14:01:54 2009
@@ -120,7 +120,9 @@
  * <p>
  * <table>
  * <tr>
- * <th align = "left">Class</th> <th align = "left">Interface</th> <th align="left">Purpose</th>
+ * <th align = "left">Class</th>
+ * <th align = "left">Interface</th>
+ * <th align="left">Purpose</th>
  * </tr>
  * <tr>
  * <td>Form</td>
@@ -890,8 +892,7 @@
 		// Get Page holding component and mark it as stateful.
 		final Page page = component.getPage();
 		final IRequestTarget target;
-		if ((listener != IRedirectListener.INTERFACE) &&
-			(listener != IResourceListener.INTERFACE) && component.isStateless() &&
+		if ((listener != IRedirectListener.INTERFACE) && component.isStateless() &&
 			page.isBookmarkable() && page.getStatelessHint())
 		{
 			PageParameters pageParameters = page.getPageParameters();

Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/IndexParamWithStatelessIFrameTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/IndexParamWithStatelessIFrameTest.java?rev=768707&r1=768706&r2=768707&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/IndexParamWithStatelessIFrameTest.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/IndexParamWithStatelessIFrameTest.java Sun Apr 26 14:01:54 2009
@@ -18,6 +18,7 @@
 
 import org.apache.wicket.PageParameters;
 import org.apache.wicket.WicketTestCase;
+import org.apache.wicket.protocol.http.WebRequestCycle;
 
 /**
  * @author jcompagner
@@ -27,15 +28,53 @@
 	/**
 	 * @throws Exception
 	 */
-	public void testIndexedUrlMountedPageWithComponentThatUsesUrlForResourceListener()
+	public void testIndexedUrlMountedPageWithComponentThatUsesUrlForResourceListener1()
 		throws Exception
 	{
+		execTest(true);
+		fail("test");
+	}
+
+	/**
+	 * @throws Exception
+	 */
+	public void testIndexedUrlMountedPageWithComponentThatUsesUrlForResourceListener2()
+		throws Exception
+	{
+		execTest(false);
+	}
+
+	/**
+	 * @param stateless
+	 * @throws Exception
+	 */
+	public void execTest(boolean stateless) throws Exception
+	{
 		tester.getApplication().mount(
 			new IndexedParamUrlCodingStrategy("/test", TestPageWithIFrame.class));
 		TestPageWithIFrame test = new TestPageWithIFrame(new PageParameters("0=foo,1=bar"));
+		test.setStatelessHint(stateless);
 		tester.startPage(test);
 		tester.assertRenderedPage(TestPageWithIFrame.class);
 		tester.assertNoErrorMessage();
-		tester.assertContains("src=\"test/wicket:interface/:0:frame::IResourceListener::\"");
+		String doc = tester.getServletResponse().getDocument();
+		if (stateless == true)
+		{
+			tester.assertContains("src=\"test/wicket:interface/:0:frame::IResourceListener::\"");
+		}
+		else
+		{
+			tester.assertContains("src=\"\\?wicket:interface=:0:frame::IResourceListener::\"");
+		}
+
+		// TODO the URL generated doesn't work for stateless pages. The page information is missing
+		if (stateless == false)
+		{
+			WebRequestCycle cycle = tester.setupRequestAndResponse();
+			tester.getServletRequest()
+				.setURL("test/wicket:interface/:0:frame::IResourceListener::");
+			tester.processRequestCycle(cycle);
+			assertEquals(test.resourceContent, TestPageWithIFrame.resourceText);
+		}
 	}
 }

Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/TestPageWithIFrame.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/TestPageWithIFrame.java?rev=768707&r1=768706&r2=768707&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/TestPageWithIFrame.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/request/target/coding/TestPageWithIFrame.java Sun Apr 26 14:01:54 2009
@@ -30,7 +30,11 @@
 
 	private static final Logger log = LoggerFactory.getLogger(TestPageWithIFrame.class);
 
-	static class TestFrame extends WebMarkupContainer implements IResourceListener
+	public static final String resourceText = "foobar - do nada nothing njet";
+
+	public String resourceContent;
+
+	class TestFrame extends WebMarkupContainer implements IResourceListener
 	{
 		private static final long serialVersionUID = 1L;
 
@@ -49,7 +53,8 @@
 
 		public void onResourceRequested()
 		{
-			log.info("foobar - do nada nothing njet");
+			resourceContent = resourceText;
+			log.info(resourceContent);
 		}
 	}