You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Juergen Donnerstag (JIRA)" <ji...@apache.org> on 2009/01/11 11:51:59 UTC

[jira] Resolved: (WICKET-2016) FormTester (BaseWicketTester.executeAjaxEvent[component,event]) submits also buttons that are hidden (isVisible=false) resulting in exception

     [ https://issues.apache.org/jira/browse/WICKET-2016?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Juergen Donnerstag resolved WICKET-2016.
----------------------------------------

       Resolution: Fixed
    Fix Version/s: 1.4-RC2
         Assignee: Juergen Donnerstag

thanks, fixed

> FormTester (BaseWicketTester.executeAjaxEvent[component,event]) submits also buttons that are hidden (isVisible=false) resulting in exception
> ---------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: WICKET-2016
>                 URL: https://issues.apache.org/jira/browse/WICKET-2016
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.4-RC1
>            Reporter: Martin Makundi
>            Assignee: Juergen Donnerstag
>             Fix For: 1.4-RC2
>
>         Attachments: Wicket-Quickstart.zip
>
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> FormTester (BaseWicketTester.executeAjaxEvent[component,event]) submits also buttons that are hidden (isVisible=false) resulting in exception.
> I am trying to ajax-click the visible button, but the formTester arranges even the hidden button to be submitted.. the form processing assumes the hidden button is now the submitting button.. and it is hidden, so an exception is thrown:
> org.apache.wicket.WicketRuntimeException: Submit Button hiddenButton (path=form:hiddenButton) is not visible
> 	at org.apache.wicket.markup.html.form.Form$2.component(Form.java:604)
> 	at org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:859)
> 	at org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:874)
> 	at org.apache.wicket.markup.html.form.Form.findSubmittingButton(Form.java:588)
> 	at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:852)
> 	at org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:132)
> 	at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:166)
> 	at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:299)
> 	at org.apache.wicket.util.tester.BaseWicketTester.executeAjaxEvent(BaseWicketTester.java:1170)
> 	at org.apache.wicket.util.tester.BaseWicketTester.executeAjaxEvent(BaseWicketTester.java:1080)
> 	at com.mycompany.TestHomePage.testAjaxSubmitWhileAnotherButtonIsNotVisible(TestHomePage.java:33)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at junit.framework.TestCase.runTest(TestCase.java:164)
> 	at junit.framework.TestCase.runBare(TestCase.java:130)
> 	at junit.framework.TestResult$1.protect(TestResult.java:106)
> 	at junit.framework.TestResult.runProtected(TestResult.java:124)
> 	at junit.framework.TestResult.run(TestResult.java:109)
> 	at junit.framework.TestCase.run(TestCase.java:120)
> 	at junit.framework.TestSuite.runTest(TestSuite.java:230)
> 	at junit.framework.TestSuite.run(TestSuite.java:225)
> 	at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
> 	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
> 	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
> I would assume this is an easy fix to the BaseWicketTester.executeAjaxEvent[component,event]) method where it visits the form components...
> An invasive workaround: Just set your hidden button temporarily visible (from within your wickettest) while executing the ajax event ;)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.