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


Reply via email to