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");
}
}