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, [email protected] <[email protected]>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 <[email protected]> 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, [email protected] <[email protected]
>> >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);