org.apache.wicket.util.tester
Class FormTester

java.lang.Object
  extended by org.apache.wicket.util.tester.FormTester

public class FormTester
extends Object

A helper class for testing validation and submission of FormComponents.

Since:
1.2.6
Author:
Ingram Chen, Frank Bille (frankbille)

Nested Class Summary
protected  class FormTester.ChoiceSelector
          A selector template for selecting selectable FormComponents with an index of option -- supports RadioGroup, CheckGroup, and AbstractChoice family.
 
Constructor Summary
protected FormTester(String path, Form<?> workingForm, BaseWicketTester wicketTester, boolean fillBlankString)
           
 
Method Summary
 Form<?> getForm()
          Retrieves the current Form object.
 String getTextComponentValue(String id)
          Gets the value for an AbstractTextComponent with the provided id.
 void select(String formComponentId, int index)
          Simulates selecting an option of a FormComponent.
 void selectMultiple(String formComponentId, int[] indexes)
          A convenience method to select multiple options for the FormComponent.
 void selectMultiple(String formComponentId, int[] indexes, boolean replace)
          A convenience method to select multiple options for the FormComponent.
 void setFile(String formComponentId, File file, String contentType)
          Sets the File on a FileUploadField.
 void setValue(String checkBoxId, boolean value)
           
 void setValue(String formComponentId, String value)
          Simulates filling in a field on a Form.
 void submit()
          Submits the Form.
 void submit(String buttonComponentId)
          A convenience method for submitting the Form with an alternate button.
 void submitLink(String path, boolean pageRelative)
          A convenience method to submit the Form via a SubmitLink which may inside or outside of the Form.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FormTester

protected FormTester(String path,
                     Form<?> workingForm,
                     BaseWicketTester wicketTester,
                     boolean fillBlankString)
Parameters:
path - path to FormComponent
workingForm - FormComponent to be tested
wicketTester - WicketTester that creates FormTester
fillBlankString - specifies whether to fill child TextComponents with blank Strings
See Also:
BaseWicketTester.newFormTester(String)
Method Detail

getForm

public Form<?> getForm()
Retrieves the current Form object.

Returns:
the working Form

getTextComponentValue

public String getTextComponentValue(String id)
Gets the value for an AbstractTextComponent with the provided id.

Parameters:
id - Component id
Returns:
the value of the text component

select

public void select(String formComponentId,
                   int index)
Simulates selecting an option of a FormComponent. Supports RadioGroup, CheckGroup, and AbstractChoice family currently. The behavior is similar to interacting on the browser: For a single choice, such as Radio or DropDownList, the selection will toggle each other. For multiple choice, such as Checkbox or ListMultipleChoice, the selection will accumulate.

Parameters:
formComponentId - relative path (from Form) to the selectable FormComponent
index - index of the selectable option, starting from 0

selectMultiple

public void selectMultiple(String formComponentId,
                           int[] indexes)
A convenience method to select multiple options for the FormComponent. The method only support multiple selectable FormComponents.

Parameters:
formComponentId - relative path (from Form) to the selectable FormComponent
indexes - index of the selectable option, starting from 0
See Also:
select(String, int)

selectMultiple

public void selectMultiple(String formComponentId,
                           int[] indexes,
                           boolean replace)
A convenience method to select multiple options for the FormComponent. The method only support multiple selectable FormComponents.

Parameters:
formComponentId - relative path (from Form) to the selectable FormComponent
indexes - index of the selectable option, starting from 0
replace - If true, than all previous selects are first reset, thus existing selects are replaced. If false, than the new indexes will be added.
See Also:
select(String, int)

setValue

public void setValue(String formComponentId,
                     String value)
Simulates filling in a field on a Form.

Parameters:
formComponentId - relative path (from Form) to the selectable FormComponent or IFormSubmittingComponent
value - the field value

setValue

public void setValue(String checkBoxId,
                     boolean value)

setFile

public void setFile(String formComponentId,
                    File file,
                    String contentType)
Sets the File on a FileUploadField.

Parameters:
formComponentId - relative path (from Form) to the selectable FormComponent. The FormComponent must be of a type FileUploadField.
file - the File to upload.
contentType - the content type of the file. Must be a valid mime type.

submit

public void submit()
Submits the Form. Note that submit can be executed only once.


submit

public void submit(String buttonComponentId)
A convenience method for submitting the Form with an alternate button.

Note that if the button is associated with a model, it's better to use the setValue method instead:

 formTester.setValue("to:my:button", "value on the button");
 formTester.submit();
 

Parameters:
buttonComponentId - relative path (from Form) to the button

submitLink

public void submitLink(String path,
                       boolean pageRelative)
A convenience method to submit the Form via a SubmitLink which may inside or outside of the Form.

Parameters:
path - The path to the SubmitLink
pageRelative - if true, than the 'path' to the SubmitLink is relative to the page. Thus the link can be outside the form. If false, the path is relative to the form and thus the link is inside the form.


Copyright © 2004-2011 Apache Software Foundation. All Rights Reserved.