import static org.fest.assertions.Assertions.assertThat;
import static play.test.Helpers.HTMLUNIT;
import static play.test.Helpers.fakeApplication;
import static play.test.Helpers.running;
import static play.test.Helpers.testServer;
import org.junit.Before;
import org.junit.Test;
import play.Logger;
import play.libs.F.Callback;
import play.test.TestBrowser;
import uk.bl.exception.ActException;
public class QaWaybackTest {
private static String testURL = "http://www.bl.uk";
private static String email = "niladree.bhattacharj@bl.uk";
private static String password = "Nil@BL";
@Before
public void setUp() throws ActException {
}
@Test
public void runInBrowser() {
running(testServer(3333, fakeApplication()), HTMLUNIT, new Callback<TestBrowser>() {
@Override
public void invoke(TestBrowser browser) {
String testPath = "/wayback/*/"+testURL;
String fullTestUrl = "http://localhost:3333/act"+testPath;
// Check we cannot access anything yet:
Logger.info("Going to Wayback page...");
browser.goTo(fullTestUrl);
assertThat(browser.url()).isEqualTo("http://localhost:3333/act/login");
assertThat(browser.pageSource()).contains("form action=\"/act/login\"");
// Go to login page:
Logger.info("Going to about page...");
browser.goTo("http://localhost:3333/act/about");
assertThat(browser.url()).isEqualTo("http://localhost:3333/act/login");
assertThat(browser.pageSource()).contains("Email");
assertThat(browser.pageSource()).contains("Password");
// Login
Logger.info("Logging in...");
browser.fill("#email").with(email);
browser.fill("#password").with(password);
browser.submit("#submit");
Logger.info("Checking we are at the about page...");
assertThat(browser.url()).isEqualTo("http://localhost:3333/act/about");
assertThat(browser.title()).isEqualTo("About :: W3ACT");
browser.getCookies();
// Check we can now access Wayback:
Logger.info("Going to Wayback page now we are logged in...");
browser.goTo(fullTestUrl);
assertThat(browser.pageSource()).contains("Take Me Back");
assertThat(browser.pageSource()).doesNotContain("form action=\"/act/login\"");
}
});
}
}