You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Anna Simbirtsev <as...@gmail.com> on 2010/08/12 17:23:56 UTC

Testing modal window

Hi,

I am trying to write a test case to test that the parent page gets updated
with new values once the modal window closes.


public class DataAddITCase extends AbstractITCase
{
    public DataAddITCase()
    {
        super();
    }

    @Override
    protected void signin()
    {
        super.signin("login", "password");
    }

    @Test
    public void createData()
    {
        ModalWindow modalWindow = testModalWindow();

        wicketTester.startPage(new AddDataPage(modalWindow));

        buildTestForm();

        wicketTester.executeAjaxEvent("myForm:submit", "onclick");
        wicketTester.assertNoErrorMessage();

        wicketTester.assertRenderedPage(Data.class);

        Data mainPage = (Data) wicketTester
        .getLastRenderedPage();
        List<Object> objects =
(List<Object>)mainPage.getDefaultModelObject();

        boolean found = false;
        for (Object c : objects) {
            if (c.getCode().equals("PP"))
                found = true;
        }

        if (!found)
            Assert.fail("Object PP was not added");*/
    }

    private void buildTestForm()
    {
        FormTester form = wicketTester.newFormTester("myForm");
        form.setValue("code", "PP");
        form.setValue("name", "PPPP");
    }

    private ModalWindow testModalWindow()
    {
        wicketTester.startPage(Data.class);

        wicketTester.executeAjaxEvent("myForm:showModal1", "onclick");

        wicketTester.assertNoErrorMessage();

        wicketTester.assertRenderedPage(Data.class);

        ModalWindow modalWindow = (ModalWindow) wicketTester
                .getComponentFromLastRenderedPage("myForm:modal1");
        Assert.assertTrue(modalWindow.isVisible());
        return modalWindow;
    }

}

The problem is after wicketTester.executeAjaxEvent("myForm:submit",
"onclick"); it does not come back to the parent page.
So wicketTester.assertRenderedPage(Data.class); fails.

How can I test that that data on the parent page is updated once the modal
window is closed?

Thanks