Pedro, One more thing, i have updated WicketTesterTest, which fails with issue i have described. I'm attaching patch file, maybe it will be of any help for you.
On Sat, Dec 18, 2010 at 8:07 PM, zkybar...@gmail.com <zkybar...@gmail.com>wrote: > Pedro, > > Thanks for reply. Yeah i have workaround for this - i just reset submit > parameters from last request to current request. > > > On Sat, Dec 18, 2010 at 6:30 PM, Pedro Santos <pedros...@gmail.com> wrote: > >> Hi Zilvinas, I'm taking a look at your described issue, for now try to set >> the parameter as a POST one. >> >> On Sat, Dec 18, 2010 at 2:15 PM, zkybar...@gmail.com <zkybar...@gmail.com >> >wrote: >> >> > Hello, >> > >> > I'm experiencing strange behavior with WicketTester in 1.5 when using >> > FormTester with ajax events. It works as follows: >> > >> > 1. Set some value via the FormTester to input field. >> > 2. Invoke ajax event. In my case behaviour is >> > AjaxFormComponentUpdatingBehavior. >> > 3. After the ajax event was executed input fields getInput method >> returns >> > null. And it should, since there are no submit parameters available >> > anymore. >> > >> > Is that bug? It was working in 1.4, so my guess that its bug. >> > >> > Greetings, >> > >> > Zilvinas. >> > >> >> >> >> -- >> Pedro Henrique Oliveira dos Santos >> > >
Index: src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java =================================================================== --- src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java (revision 1050371) +++ src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java (working copy) @@ -678,6 +678,15 @@ assertEquals("Mock name", pojo.getName()); } + public void testFormInputWithAjaxEvent() + { + tester.startPage(MockPageWithFormAndAjaxFormSubmitBehavior.class); + FormTester form = tester.newFormTester("form"); + form.setValue("name", "New name"); + tester.executeAjaxEvent("form:name", "onchange"); + assertEquals("New name", ((FormComponent)form.getForm().get("name")).getInput()); + } + public void testSubmittingFormWithAjaxEventSubmitsFormValues() { tester.startPage(MockPageWithFormAndAjaxFormSubmitBehavior.class); Index: src/test/java/org/apache/wicket/util/tester/MockPageWithFormAndAjaxFormSubmitBehavior.java =================================================================== --- src/test/java/org/apache/wicket/util/tester/MockPageWithFormAndAjaxFormSubmitBehavior.java (revision 1050371) +++ src/test/java/org/apache/wicket/util/tester/MockPageWithFormAndAjaxFormSubmitBehavior.java (working copy) @@ -19,6 +19,7 @@ import java.io.Serializable; import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior; import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior; import org.apache.wicket.markup.html.WebComponent; import org.apache.wicket.markup.html.WebPage; @@ -52,7 +53,15 @@ Form<Pojo> form = new Form<Pojo>("form", new CompoundPropertyModel<Pojo>(pojo)); add(form); - form.add(new TextField<String>("name")); + TextField<String> field = new TextField<String>("name"); + field.add(new AjaxFormComponentUpdatingBehavior("onchange") + { + @Override + protected void onUpdate(AjaxRequestTarget target) + { + } + }); + form.add(field); // The Event behavior WebComponent eventComponent = new WebComponent(EVENT_COMPONENT);