Class FormTester

java.lang.Object
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)
  • Constructor Details

    • 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:
  • Method Details

    • getInputValue

      public static String[] getInputValue(FormComponent<?> formComponent)
      Gets request parameter values for the form component that represents its current model value
      Parameters:
      formComponent -
      Returns:
      array containing parameter values
    • getForm

      public Form<?> getForm()
      Retrieves the current Form object.
      Returns:
      the working Form
    • getTextComponentValue

      Gets the value for an AbstractTextComponent with the provided id.
      Parameters:
      id - Component id
      Returns:
      the value of the text component
    • select

      public FormTester 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
      Returns:
      This
    • selectMultiple

      public FormTester 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
      Returns:
      This
      See Also:
    • selectMultiple

      public FormTester 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.
      Returns:
      This
      See Also:
    • setValue

      public FormTester 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
      Returns:
      This
    • setValue

      public FormTester setValue(Component formComponent, String value)
      Simulates filling in a field on a Form.
      Parameters:
      formComponent - relative path (from Form) to the selectable FormComponent or IFormSubmittingComponent
      value - the field value
      Returns:
      This
    • setValue

      public FormTester setValue(String checkBoxId, boolean value)
      Parameters:
      checkBoxId -
      value -
      Returns:
      This
    • setFile

      public FormTester 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 or null for an empty input
      contentType - the content type of the file. Must be a valid mime type.
      Returns:
      This
    • submit

      public FormTester submit()
      Submits the Form. Note that submit can be executed only once.
      Returns:
      This
    • isClearFeedbackMessagesBeforeSubmit

    • setClearFeedbackMessagesBeforeSubmit

      public FormTester setClearFeedbackMessagesBeforeSubmit(boolean clearFeedbackMessagesBeforeSubmit)
    • submit

      public FormTester 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
      Returns:
      This
    • submit

      public FormTester submit(Component buttonComponent)
      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(myButton, "value on the button");
       formTester.submit();
       
      Parameters:
      buttonComponent - relative path (from Form) to the button
      Returns:
      This
    • submitLink

      public FormTester 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.
      Returns:
      This