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