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);

Reply via email to