You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by pe...@apache.org on 2011/04/13 22:25:37 UTC

svn commit: r1091903 - in /wicket/trunk/wicket-core/src/test/java/org/apache/wicket/stateless: StatelessFormTest.java pages/LoginPage.java pages/UsernamePasswordSignInPanel.java

Author: pete
Date: Wed Apr 13 20:25:36 2011
New Revision: 1091903

URL: http://svn.apache.org/viewvc?rev=1091903&view=rev
Log:
WICKET-3562: added test case for proper invocation of Component#onInitialize() for stateless pages / components

Modified:
    wicket/trunk/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessFormTest.java
    wicket/trunk/wicket-core/src/test/java/org/apache/wicket/stateless/pages/LoginPage.java
    wicket/trunk/wicket-core/src/test/java/org/apache/wicket/stateless/pages/UsernamePasswordSignInPanel.java

Modified: wicket/trunk/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessFormTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessFormTest.java?rev=1091903&r1=1091902&r2=1091903&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessFormTest.java (original)
+++ wicket/trunk/wicket-core/src/test/java/org/apache/wicket/stateless/StatelessFormTest.java Wed Apr 13 20:25:36 2011
@@ -24,8 +24,6 @@ import org.apache.wicket.stateless.pages
 import org.apache.wicket.stateless.pages.LoginPage;
 import org.apache.wicket.util.tester.FormTester;
 import org.apache.wicket.util.tester.WicketTester;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * 
@@ -33,25 +31,28 @@ import org.slf4j.LoggerFactory;
  */
 public class StatelessFormTest extends TestCase
 {
-	private static final Logger log = LoggerFactory.getLogger(StatelessFormTest.class);
-
 	private final Class<? extends Page> HOME = HomePage.class;
 	private final Class<? extends Page> LOGIN = LoginPage.class;
 
+	private WicketTester createTester()
+	{
+		return new WicketTester(new MockApplication()
+			{
+				@Override
+				public Class<? extends Page> getHomePage()
+				{
+					return HOME;
+				}
+	
+			});
+	}
+
 	/**
 	 * Login through the login page.
 	 */
 	public void testLogin()
 	{
-		WicketTester tester = new WicketTester(new MockApplication()
-		{
-			@Override
-			public Class<? extends Page> getHomePage()
-			{
-				return HOME;
-			}
-
-		});
+		WicketTester tester = createTester();
 
 		try
 		{
@@ -69,4 +70,39 @@ public class StatelessFormTest extends T
 		}
 	}
 
+	/**
+	 * test initialization of component on stateless components
+	 */
+	public void testOnInitializationForStatelessComponents()
+	{
+		WicketTester tester = createTester();
+
+		try
+		{
+			LoginPage page = new LoginPage();
+			assertFalse(page.isPageInitialized());
+			assertFalse(page.isPanelInitialized());
+
+			tester.startPage(LOGIN);
+			tester.assertRenderedPage(LOGIN);
+			page = (LoginPage)tester.getLastRenderedPage();
+			assertTrue(page.isPageInitialized());
+			assertTrue(page.isPanelInitialized());
+			
+			FormTester form = tester.newFormTester("signInPanel:signInForm");
+			form.setValue("username", "test");
+			form.setValue("password", "invalid");
+			form.submit();
+			
+			tester.assertRenderedPage(LOGIN);
+			page = (LoginPage)tester.getLastRenderedPage();
+			assertTrue(page.isPageInitialized());
+			assertTrue(page.isPanelInitialized());
+		}
+		finally
+		{
+			tester.destroy();
+		}
+	}
+
 }

Modified: wicket/trunk/wicket-core/src/test/java/org/apache/wicket/stateless/pages/LoginPage.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/stateless/pages/LoginPage.java?rev=1091903&r1=1091902&r2=1091903&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/test/java/org/apache/wicket/stateless/pages/LoginPage.java (original)
+++ wicket/trunk/wicket-core/src/test/java/org/apache/wicket/stateless/pages/LoginPage.java Wed Apr 13 20:25:36 2011
@@ -27,6 +27,9 @@ public class LoginPage extends WebPage
 
 	private static final long serialVersionUID = 1L;
 
+	private boolean pageInitialized = false;
+	private boolean panelInitialized = false;
+	
 
 	/**
 	 * Constructor.
@@ -38,15 +41,40 @@ public class LoginPage extends WebPage
 		newUserPasswordSignInPanel(panelId);
 	}
 
+	@Override
+	protected void onInitialize()
+	{
+		super.onInitialize();
+		pageInitialized = true;
+	}
+
+	public boolean isPageInitialized()
+	{
+		return pageInitialized;
+	}
+
+	public boolean isPanelInitialized()
+	{
+		return panelInitialized;
+	}
+
 	/**
 	 * Creates a sign in panel on institutions that rely solely on their authentication username /
 	 * password.
 	 * 
 	 * @param panelId
-	 * @param info
 	 */
 	private void newUserPasswordSignInPanel(String panelId)
 	{
-		add(new UsernamePasswordSignInPanel(panelId));
+		add(new UsernamePasswordSignInPanel(panelId)
+		{
+			@Override
+			protected void onInitialize()
+			{
+				super.onInitialize();
+				panelInitialized = true;
+				
+			}
+		});
 	}
 }

Modified: wicket/trunk/wicket-core/src/test/java/org/apache/wicket/stateless/pages/UsernamePasswordSignInPanel.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/stateless/pages/UsernamePasswordSignInPanel.java?rev=1091903&r1=1091902&r2=1091903&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/test/java/org/apache/wicket/stateless/pages/UsernamePasswordSignInPanel.java (original)
+++ wicket/trunk/wicket-core/src/test/java/org/apache/wicket/stateless/pages/UsernamePasswordSignInPanel.java Wed Apr 13 20:25:36 2011
@@ -29,8 +29,6 @@ import org.apache.wicket.model.CompoundP
 import org.apache.wicket.model.PropertyModel;
 import org.apache.wicket.util.value.IValueMap;
 import org.apache.wicket.util.value.ValueMap;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 
 /**
@@ -42,9 +40,6 @@ public class UsernamePasswordSignInPanel
 	/** */
 	private static final long serialVersionUID = 1L;
 
-	/** */
-	private static final Logger log = LoggerFactory.getLogger(UsernamePasswordSignInPanel.class);
-
 	/**
 	 * Constructor.
 	 * 
@@ -67,7 +62,7 @@ public class UsernamePasswordSignInPanel
 	 */
 	public boolean signIn(String username, String password)
 	{
-		return true;
+		return username.equals(password);
 	}
 
 	/**
@@ -107,9 +102,6 @@ public class UsernamePasswordSignInPanel
 				"rememberMe")));
 		}
 
-		/**
-		 * @see wicket.markup.html.form.Form#onSubmit()
-		 */
 		@Override
 		public final void onSubmit()
 		{