Hi!

Is there a bug in handling the first listView row submitted using
WicketTester/FormTester?

Regardless of the original values displayed on the first row of the
listView, the textField.getConvertedInput() and
checkbox.getConvertedInput() return null and false values at the form
validator, respectively.

If I surpass the validator, the form is submitted just fine. It is
only in the validator where the problem occurs and it is on the first
row only (i.e., elements "listView:0:todo" and
"listView:0:description"). Other rows submitted using the FormTester
seem to work just fine so far.

Is this a bug or am I using it improperly? Here is the test code; the
rest of the code remains the same as previously in the thread "Tabular
form validation problem with checkboxes" (all the previous advices
taken, though):

  public void testThatCheckingARowButLeavingTheDescriptionEmptyResultsInError()
{
    tester.startPage(Todos.class);
    FormTester formTester = tester.newFormTester(Todos.TODO_FORM);
    formTester.setValue("listView:3:todo", "true"); // I do not touch
row 0 but those items' default values are not received by the
validator
    formTester.submit();
    tester.assertRenderedPage(Todos.class);
    String testString = new
Localizer().getString("checked_but_description_missing", new Todos());
    System.out.println("testString=" + testString);
    tester.assertErrorMessages(new String[] { testString, } );
  }


**
Martin

2008/2/21, Igor Vaynberg <[EMAIL PROTECTED]>:
> this line: textRequired = (Boolean) checkBox.getModelObject(); should not work
>
>  you are inside a validator, that means models haven not been updated
>  yet. models are only updated once all type conversion/validation
>  succeeds.
>
>  inside validators you should use formcomponent.getconvertedinput() to
>  read the value that will be put into the model if validators succeed.
>
>  -igor
>
>
>  On Wed, Feb 20, 2008 at 3:30 PM, Martin Makundi
>
> <[EMAIL PROTECTED]> wrote:
>
> > > a proper solution would be to use a validator or a formvalidator to do
>  >  >  this. generally you never iterate over components to do validation in
>  >  >  wicket. we have good plugin points for you in the form workflow.
>  >
>  >  Judging from the performance of the checkbox, I have a wrong plugin
>  >  point for the validator. How would you put it?
>  >
>  >
>  >  > you didnt show the part of code that generates the list...
>  >  >  > it is just a  dummy list of new todo items.
>  >  > they are unique but you are using a listview? so what you have is not
>  >  >  a list at all, it is a collection of random items.
>  >  > perhaps listview is not what you want. if you keep regenerating items 
> every request
>  >
>  >  They are not random. Here is the code generating the items:
>  >  List<Todo> linkedTodos = new LinkedList<Todo>();
>  >  {
>  >   Todo todo = new Todo();
>  >   todo.setDescription("Dummy");
>  >   todo.setSelected(true);
>  >   todo.setTodoDate(Convert.toDate("1.1.2008");
>  >   linkedTodos.add(todo);
>  >  }
>  >  // ... and I have repeated a number of these ... say 7 pcs
>  >  return linkedTodos;
>  >
>  >  The page uses a linkedTodos "singleton" in the sence that the list is
>  >  generated only the first time the page is loaded. So they are not
>  >  random.
>  >
>  >
>  >  >  >  Is there a bug with the checkbox?
>  >  > doubt it
>  >
>  >  Well.. the validator fails to receive the submitted checkbox state.
>  >  Did I attach the validator improperly? Or should I read the checkbox
>  >  value in some other way? The checkbox state submitted from the browser
>  >  is not received by the validator using the code I posted before. The
>  >  textfields function properly, but the checkboxes seem to somehow be
>  >  disconnected... they sometimes change state according to the selection
>  >  in the browser window, sometimes not. Mostly not ;) Odd times? Very
>  >  strange.
>  >
>  >
>  >
>  >  **
>  >  Martin
>  >
>
> >  ---------------------------------------------------------------------
>  >  To unsubscribe, e-mail: [EMAIL PROTECTED]
>  >  For additional commands, e-mail: [EMAIL PROTECTED]
>  >
>  >
>
>  ---------------------------------------------------------------------
>  To unsubscribe, e-mail: [EMAIL PROTECTED]
>  For additional commands, e-mail: [EMAIL PROTECTED]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to