package de.ppi.samples.fuwesta.selophane.test; import static de.ppi.selenium.assertj.SeleniumAssertions.assertThat; import static org.assertj.core.api.Assertions.assertThat; import org.junit.After; import org.junit.Before; import org.junit.FixMethodOrder; import org.junit.Rule; import org.junit.Test; import org.junit.rules.RuleChain; import de.ppi.samples.fuwesta.frontend.URL; import de.ppi.samples.fuwesta.selophane.base.WebTestConstants; import de.ppi.samples.fuwesta.selophane.module.AuthModule; import de.ppi.samples.fuwesta.selophane.page.LoginPage; import de.ppi.samples.fuwesta.selophane.page.MainPage; import de.ppi.selenium.browser.SessionManager; import de.ppi.selenium.browser.WebBrowser; /** * Test of login. * */ @FixMethodOrder() public class LoginIntegrationTest { /** * All WebTest-Actions. */ @Rule public final RuleChain webTest = WebTestConstants.WEBTEST_WITHOUT_AUTHENTICATION; /** * webbrowser. */ private WebBrowser browser; /** * Loginpage. */ private LoginPage loginPage; /** * Authenticationmodul. */ private AuthModule authModule; /** * Init the instances after the rule has run. */ @Before public void init() { browser = SessionManager.getSession(); loginPage = new LoginPage(); authModule = new AuthModule(); authModule.logout(); } /** * Logout after a test. */ @After public void logout() { authModule.logout(); } /** * Login as admin. * * @throws Exception is something */ @Test public void loginAsAdmin() throws Exception { browser.getRelativeUrl(URL.HOME); authModule.loginAsAdmin(); assertThat(browser).hasRelativeUrl(URL.HOME); } /** * Login as user post. * */ @Test public void loginAsPost() { browser.getRelativeUrl(URL.Post.HOME); authModule.login("post"); assertThat(browser).hasRelativeUrl(URL.Post.HOME); final MainPage mainPage = new MainPage(SessionManager.getSession(), "MainPage"); assertThat(mainPage.getMenu().getMenuItems()).hasSize(2); assertThat(mainPage.getMenu().getMenuItem(0).getText()).isEqualTo( "Post"); assertThat(mainPage.getMenu().getMenuItem(0).isActive()).isTrue(); assertThat(mainPage.getMenu().getMenuItem(1).getText()).isEqualTo( "Logout"); assertThat(mainPage.getMenu().getMenuItem(1).isActive()).isFalse(); } /** * Login as post and call a site which isn't allowed. * */ @Test public void loginAsPostDeny() { browser.getRelativeUrl(URL.User.HOME); assertThat(loginPage.areAllElementsVisible()).isTrue(); authModule.login("post"); assertThat(browser).hasRelativeUrl(URL.Auth.UNAUTHORIZED); assertThat(browser.getTitle()).contains("UNAUTHORIZED"); } /** * Login as user post. * */ @Test public void loginAsPostWithRememberMe() { browser.getRelativeUrl(URL.HOME); authModule.login("post", "123", true); assertThat(browser).hasCookies("rememberMe"); } }