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 2010/11/14 19:44:58 UTC

svn commit: r1035045 - in /wicket/branches/wicket-1.4.x/wicket/src: main/java/org/apache/wicket/util/tester/BaseWicketTester.java test/java/org/apache/wicket/util/tester/WicketTesterTest.java

Author: mgrigorov
Date: Sun Nov 14 18:44:57 2010
New Revision: 1035045

URL: http://svn.apache.org/viewvc?rev=1035045&view=rev
Log:
WICKET-3164 executeAjaxEvent in WicketTester works although Component is not enabled

Add checks for isVisibleInHierarchy() and isEnabledInHierarchy() for tester.clickLink() and .executeAjaxEvent()


Modified:
    wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
    wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java

Modified: wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java?rev=1035045&r1=1035044&r2=1035045&view=diff
==============================================================================
--- wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java (original)
+++ wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java Sun Nov 14 18:44:57 2010
@@ -720,6 +720,18 @@ public class BaseWicketTester extends Mo
 	{
 		Component linkComponent = getComponentFromLastRenderedPage(path);
 
+		if (linkComponent.isVisibleInHierarchy() == false)
+		{
+			fail("The component is currently not visible in the hierarchy and thus you can not fire events on it." +
+				" Component: " + linkComponent);
+		}
+
+		if (linkComponent.isEnabledInHierarchy() == false)
+		{
+			fail("The component is currently not enabled in the hierarchy and thus you can not be clicked." +
+				" Component: " + linkComponent);
+		}
+
 		// if the link is an AjaxLink, we process it differently
 		// than a normal link
 		if (linkComponent instanceof AjaxLink)
@@ -1239,6 +1251,12 @@ public class BaseWicketTester extends Mo
 				" Component: " + component + "; Event: " + event);
 		}
 
+		if (component.isEnabledInHierarchy() == false)
+		{
+			fail("The component is currently not enabled in the hierarchy and thus you can not fire events on it." +
+				" Component: " + component + "; Event: " + event);
+		}
+
 		// Run through all the behavior and select the LAST ADDED behavior which
 		// matches the event parameter.
 		AjaxEventBehavior ajaxEventBehavior = null;

Modified: wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java?rev=1035045&r1=1035044&r2=1035045&view=diff
==============================================================================
--- wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java (original)
+++ wicket/branches/wicket-1.4.x/wicket/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java Sun Nov 14 18:44:57 2010
@@ -208,6 +208,52 @@ public class WicketTesterTest extends Te
 	}
 
 	/**
+	 * WICKET-3164
+	 * 
+	 * @throws Exception
+	 */
+	public void testClickLink_ajaxLink_notEnabled() throws Exception
+	{
+		tester.startPage(LinkPage.class);
+		tester.assertRenderedPage(LinkPage.class);
+
+		tester.getComponentFromLastRenderedPage("ajaxLinkWithSetResponsePageClass").setEnabled(
+			false);
+		try
+		{
+			tester.clickLink("ajaxLinkWithSetResponsePageClass");
+			fail("Disabled link should not be clickable.");
+		}
+		catch (Exception _)
+		{
+			;
+		}
+	}
+
+	/**
+	 * WICKET-3164
+	 * 
+	 * @throws Exception
+	 */
+	public void testExecuteAjaxEvent_componentNotEnabled() throws Exception
+	{
+		tester.startPage(LinkPage.class);
+		tester.assertRenderedPage(LinkPage.class);
+
+		tester.getComponentFromLastRenderedPage("ajaxLinkWithSetResponsePageClass").setEnabled(
+			false);
+		try
+		{
+			tester.executeAjaxEvent("ajaxLinkWithSetResponsePageClass", "onclick");
+			fail("Disabled link should not be clickable.");
+		}
+		catch (Exception _)
+		{
+			;
+		}
+	}
+
+	/**
 	 * @throws Exception
 	 */
 	public void testClickLink_ajaxLink_setResponsePage() throws Exception