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/01/24 23:45:22 UTC

svn commit: r737446 - in /wicket/trunk/wicket/src: main/java/org/apache/wicket/util/tester/ test/java/org/apache/wicket/markup/html/form/login/ test/java/org/apache/wicket/markup/html/header/testing3/

Author: jdonnerstag
Date: Sat Jan 24 22:45:22 2009
New Revision: 737446

URL: http://svn.apache.org/viewvc?rev=737446&view=rev
Log:
fixed wicket-2030: BaseWicketTester can't find the pageLink field using reflection when you override the PageLink class.

Modified:
    wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
    wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/login/InterceptTest.java
    wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/login/MockHomePage.java
    wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/header/testing3/HeaderTest.java
    wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/header/testing3/TestPage.java

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java?rev=737446&r1=737445&r2=737446&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java Sat Jan 24 22:45:22 2009
@@ -519,19 +519,28 @@
 		PageLink<?> pageLink = (PageLink<?>)getComponentFromLastRenderedPage(path);
 		try
 		{
-			Field iPageLinkField = pageLink.getClass().getDeclaredField("pageLink");
-			iPageLinkField.setAccessible(true);
-			IPageLink iPageLink = (IPageLink)iPageLinkField.get(pageLink);
-			return isEqual(expectedPageClass, iPageLink.getPageIdentity());
+			for (Class<?> type = pageLink.getClass(); type != PageLink.class.getSuperclass(); type = type.getSuperclass())
+			{
+				try
+				{
+					Field iPageLinkField = type.getDeclaredField("pageLink");
+					iPageLinkField.setAccessible(true);
+					IPageLink iPageLink = (IPageLink)iPageLinkField.get(pageLink);
+					return isEqual(expectedPageClass, iPageLink.getPageIdentity());
+				}
+
+				catch (NoSuchFieldException e)
+				{
+					continue;
+				}
+			}
+			throw new WicketRuntimeException(
+				"Is this realy a PageLink? Cannot find 'pageLink' field");
 		}
 		catch (SecurityException e)
 		{
 			throw convertoUnexpect(e);
 		}
-		catch (NoSuchFieldException e)
-		{
-			throw convertoUnexpect(e);
-		}
 		catch (IllegalAccessException e)
 		{
 			throw convertoUnexpect(e);

Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/login/InterceptTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/login/InterceptTest.java?rev=737446&r1=737445&r2=737446&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/login/InterceptTest.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/login/InterceptTest.java Sat Jan 24 22:45:22 2009
@@ -100,6 +100,8 @@
 		form.submit();
 		assertEquals(application.getApplication().getHomePage(), application.getLastRenderedPage()
 			.getClass());
+
+		application.assertPageLink("link", PageA.class);
 	}
 
 	/**
@@ -166,7 +168,7 @@
 		private static final long serialVersionUID = 1L;
 
 		@Override
-		public Class< ? extends Page> getHomePage()
+		public Class<? extends Page> getHomePage()
 		{
 			return MockHomePage.class;
 		}
@@ -181,7 +183,7 @@
 		 * 
 		 * @return Class
 		 */
-		public Class< ? extends Page> getLoginPage()
+		public Class<? extends Page> getLoginPage()
 		{
 			return MockLoginPage.class;
 		}

Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/login/MockHomePage.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/login/MockHomePage.java?rev=737446&r1=737445&r2=737446&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/login/MockHomePage.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/login/MockHomePage.java Sat Jan 24 22:45:22 2009
@@ -41,7 +41,16 @@
 	{
 		super();
 		add(new Label("label", "this page is secured"));
-		add(new PageLink("link", PageA.class));
+		add(new PageLink<PageA>("link", PageA.class)
+		{
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			public void onClick()
+			{
+				super.onClick();
+			}
+		});
 	}
 
 	/**

Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/header/testing3/HeaderTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/header/testing3/HeaderTest.java?rev=737446&r1=737445&r2=737446&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/header/testing3/HeaderTest.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/header/testing3/HeaderTest.java Sat Jan 24 22:45:22 2009
@@ -45,5 +45,7 @@
 		TestPage page = (TestPage)tester.getLastRenderedPage();
 
 		executedListener(TestPage.class, page.get("link"), "TestPage_ExpectedResult-2.html");
+
+		tester.assertPageLink("link", TestPage.class);
 	}
 }

Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/header/testing3/TestPage.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/header/testing3/TestPage.java?rev=737446&r1=737445&r2=737446&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/header/testing3/TestPage.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/header/testing3/TestPage.java Sat Jan 24 22:45:22 2009
@@ -39,7 +39,7 @@
 	 */
 	public TestPage()
 	{
-		this.current = panel1;
+		current = panel1;
 		add(current);
 
 		add(new PageLink("link", new IPageLink()
@@ -64,7 +64,7 @@
 	 */
 	public void replacePanel()
 	{
-		this.current = (this.current == this.panel1 ? this.panel2 : this.panel1);
-		replace(this.current);
+		current = (current == panel1 ? panel2 : panel1);
+		replace(current);
 	}
 }