package com.metservice.kanban.jwebunit; import net.sourceforge.jwebunit.junit.WebTester; public class JournalPage extends BoardPage{ public JournalPage(WebTester tester) { super(tester); } public JournalPage clickAddEntry() { tester.clickElementByXPath("//a[@id='add-entry-button']"); tester.assertTextInElement("ui-dialog-title-journal-add-dialog", "Add journal item"); return this; } public JournalPage enterJournalDate(String text){ tester.setTextField("journal-date", text); return this; } public JournalPage enterJournalText(String text){ tester.setTextField("journal-text", text); return this; } public JournalPage clickOkButton() { tester.clickButtonWithText("Ok"); return new JournalPage(tester); } public JournalPage clickCancelButton() { tester.clickButtonWithText("Cancel"); return new JournalPage(tester); } public void clearEntryDate(){ tester.setTextField("journal-date", ""); } public void assertValidationErrorShows(String text){ tester.assertTextInElement("validation-error", text); tester.assertTextPresent(text); } public void assertJournalTextIsNotPresent(String text){ final String journalTextId = "journal-text-1"; //TODO: adding a timeout isn't the best way to wait for the page to reload to check element //is not present. It may potentially cause random test failures server may not respond in the //timeout period. Also test run times takes longer. int timeout = 5000; //wait for 5 seconds for the page to reload try { Thread.sleep(timeout); } catch (Exception e) { } tester.assertElementNotPresent(journalTextId); } }