I have a very simple Wicket web page with one TextArea for data entry on a 
form.  This is contained in a NavomaticBorder.  The form works properly, as the 
data is successfully saved to the database when the Submit button is clicked.  
My JUnit test fails however, because the data is null.  I am using the setValue 
method of the FormTester object, and when I step through the code can see the 
value being saved.  However, when I execute clickLink() and get into the form 
submit method, the data is null. I even tried stepping through the Wicket 
source code, but I can't figure out where the data gets lost.



Can someone help with this?  Here is my test code:


      WicketTester tester = new WicketTester(partSelectLicenseWeb);
      tester.startPage(LicenseDataReplace.class);
      FormTester formTester = 
tester.newFormTester("navomaticBorder:licenseDataReplaceForm");
      formTester.setValue("licenseCode", "xyz");
      tester.clickLink("navomaticBorder:licenseDataReplaceForm:submitButton");
      tester.assertRenderedPage(LicenseDataReplaceResult.class);
      Page resultPage = tester.getLastRenderedPage();
      numLicensesSaved = resultPage.get("numLicensesSaved").toString();

Here is my form HTML:

<form wicket:id="licenseDataReplaceForm" action="">
      <wicket:message key="copy.paste.license.code">Copy and paste a license 
code:</wicket:message><br/>
      <textarea cols="50" rows="1" wicket:id="licenseCode"></textarea><br/>
      <input wicket:id="submitButton" type="submit" value="Submit"
            wicket:message="value:submit" />
</form>

Here is my (simplified) web page code:

public class LicenseDataReplace extends WebPage {

      TextArea licenseCode = new TextArea("licenseCode", new Model());

      public LicenseDataReplace() {

            class LicenseDataReplaceForm extends Form {

                  protected void onSubmit() {

                        String enteredCode = LicenseDataReplace.this
                                                .getLicenseCode()
                                                
.getDefaultModelObjectAsString());

                        ... save enteredCode to database
                        ... navigate to next page
                  }

                  public LicenseDataReplaceForm(String id) {
                        super(id);
                  }
            };

            NavomaticBorder navomaticBorder = new 
NavomaticBorder("navomaticBorder");
            navomaticBorder.add(new Image("logo"));
            navomaticBorder.add(new Image("message"));
            Form form = new LicenseDataReplaceForm("licenseDataReplaceForm");
            form.add(licenseCode);
            SubmitLink submitLink = new SubmitLink("submitButton");
            form.add(submitLink);
            navomaticBorder.add(form);
            add(navomaticBorder);
      }


________________________________
STATEMENT OF CONFIDENTIALITY:



The information contained in this electronic message and any attachments to
this message are intended for the exclusive use of the addressee(s) and may
contain confidential or privileged information. If you are not the intended
recipient, please notify WHI Solutions immediately at g...@whisolutions.com,
and destroy all copies of this message and any attachments.

Reply via email to