package htmlunit; import static net.sourceforge.jwebunit.junit.JWebUnit.assertLinkNotPresent; import static net.sourceforge.jwebunit.junit.JWebUnit.assertLinkPresent; import static net.sourceforge.jwebunit.junit.JWebUnit.assertTextFieldEquals; import static net.sourceforge.jwebunit.junit.JWebUnit.assertTextInElement; import static net.sourceforge.jwebunit.junit.JWebUnit.assertTitleEquals; import static net.sourceforge.jwebunit.junit.JWebUnit.beginAt; import static net.sourceforge.jwebunit.junit.JWebUnit.clickLink; import static net.sourceforge.jwebunit.junit.JWebUnit.setBaseUrl; import static net.sourceforge.jwebunit.junit.JWebUnit.setTextField; import static net.sourceforge.jwebunit.junit.JWebUnit.submit; import org.junit.Before; import org.junit.Test; public class JCatalogTest { @Before public void prepare() { setBaseUrl("http://localhost:8080/JCatalog/pages"); } @Test public void testWelcomePage() { beginAt("home.jsf"); assertTitleEquals("JCatalog Application"); assertTextInElement("content", "Welcome to the JCatalog Demo Application"); } @Test public void testLinkToLoginPage() { beginAt("home.jsf"); clickLink("navcontainer:loginLink"); assertTitleEquals("JCatalog Login"); } @Test public void testLoginPage() { testLinkToLoginPage(); setTextField("loginForm:username", "admin"); setTextField("loginForm:password", "masterkey"); submit(); assertTitleEquals("JCatalog Welcome"); } @Test public void testLogout() { testLoginPage(); assertLinkNotPresent("navcontainer:loginLink"); assertLinkPresent("navcontainer:logoutLink"); clickLink("navcontainer:logoutLink"); assertLinkPresent("navcontainer:loginLink"); assertLinkNotPresent("navcontainer:logoutLink"); } @Test public void testCategoriesPage() { beginAt("home.jsf"); clickLink("navcontainer:catalogLink"); assertTextInElement("categories:categoriestable", "Category One"); } @Test public void testProductsPage() { testCategoriesPage(); clickLink("categories:categoriestable:0:detailsLink"); assertTextInElement("products:producttable", "Product1"); } @Test public void testProductPage() { testProductsPage(); clickLink("products:producttable:0:detailsLink"); assertTextFieldEquals("j_idt17:name", "Product1"); } }