Testing for Elements on HTML Forms

Problem

You want to test for the existence of various elements in your HTML forms, such as buttons and fields.

Solution

Use HttpUnit’s WebForm class to parse the HTML form. WebForm provides numerous methods to check that buttons, fields, radio buttons, and other elements exist on the page.

Discussion

Building on the example from the previous recipe, you might start by writing a test to check for the existence of buttons on the HTML page as shown here.

public void testButtonsOnSubscriptionForm(  ) throws Exception {
    WebForm form = getBlankSubscriptionForm(  );
    SubmitButton subscribeBtn = form.getSubmitButton("subscribeBtn");
    SubmitButton unsubscribeBtn = form.getSubmitButton("unsubscribeBtn");

    assertNotNull("subscribeBtn should not be null", subscribeBtn);
    assertNotNull("unsubscribeBtn should not be null", unsubscribeBtn);
}

The getBlankSubscriptionForm( ) method is shown back in Example 5-5. When you first write this test, it fails because the buttons do not exist yet. After observing the test failure, you can update the JSP from Example 5-7 to include the two buttons.

    <form method="post" action="subscription" id="subscriptionForm">
        <input type="submit" name="subscribeBtn" value="Subscribe"/>
        <input type="submit" name="unsubscribeBtn" value="Unsubscribe"/>
    </form>

Now, the testButtonsOnSubscriptionForm( ) test should pass. Next, you might want to test for fields that allow the user to enter their name and email address. Here is that test code:

 public ...

Get Java Extreme Programming Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.