diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/authentication/AuthenticationMenuPO.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/authentication/AuthenticationMenuPO.java new file mode 100644 index 00000000000..3d389dd03ba --- /dev/null +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/authentication/AuthenticationMenuPO.java @@ -0,0 +1,32 @@ +package com.sap.sailing.selenium.pages.authentication; + +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; + +import com.sap.sailing.selenium.pages.PageArea; +import com.sap.sailing.selenium.pages.common.CSSHelper; + +public class AuthenticationMenuPO extends PageArea { + + private static final String CSS_CLASS_PREFIX = "com-sap-sse-security-ui-authentication-generic-sapheader-SAPHeaderWithAuthenticationResources-HeaderWithAuthenticationCss-"; + private static final String CSS_CLASS_OPEN = CSS_CLASS_PREFIX + "usermanagement_open"; + private static final String CSS_CLASS_LOGGED_IN = CSS_CLASS_PREFIX + "usermanagement_loggedin"; + + public AuthenticationMenuPO(WebDriver driver, WebElement element) { + super(driver, element); + } + + public boolean isOpen() { + return CSSHelper.hasCSSClass(getWebElement(), CSS_CLASS_OPEN); + } + + public boolean isLoggedIn() { + return CSSHelper.hasCSSClass(getWebElement(), CSS_CLASS_LOGGED_IN); + } + + public AuthenticationViewPO showAuthenticationView() { + getWebElement().click(); + return new AuthenticationViewPO(driver, findElementBySeleniumId(driver, "authenticationView")); + } + +} diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/authentication/AuthenticationViewPO.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/authentication/AuthenticationViewPO.java new file mode 100644 index 00000000000..a50df9e7bc0 --- /dev/null +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/authentication/AuthenticationViewPO.java @@ -0,0 +1,27 @@ +package com.sap.sailing.selenium.pages.authentication; + +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; + +import com.sap.sailing.selenium.core.BySeleniumId; +import com.sap.sailing.selenium.core.FindBy; +import com.sap.sailing.selenium.pages.PageArea; + +public class AuthenticationViewPO extends PageArea { + + @FindBy(how = BySeleniumId.class, using = "signInForm") + private WebElement signInFormPanel; + + public AuthenticationViewPO(WebDriver driver, WebElement element) { + super(driver, element); + } + + public boolean isSignInFormDisplayed() { + return signInFormPanel != null && signInFormPanel.isDisplayed(); + } + + public SignInViewPO getSignInView() { + if (!isSignInFormDisplayed()) throw new RuntimeException("Sign in form not displayed!"); + return new SignInViewPO(driver, signInFormPanel); + } +} diff --git a/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/authentication/SignInViewPO.java b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/authentication/SignInViewPO.java new file mode 100644 index 00000000000..79cba933dc8 --- /dev/null +++ b/java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/pages/authentication/SignInViewPO.java @@ -0,0 +1,46 @@ +package com.sap.sailing.selenium.pages.authentication; + +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; + +import com.sap.sailing.selenium.core.BySeleniumId; +import com.sap.sailing.selenium.core.FindBy; +import com.sap.sailing.selenium.pages.PageArea; + +public class SignInViewPO extends PageArea { + + @FindBy(how = BySeleniumId.class, using = "loginTextField") + private WebElement loginTextField; + + @FindBy(how = BySeleniumId.class, using = "passwordTextField") + private WebElement passwordTextField; + + @FindBy(how = BySeleniumId.class, using = "signInAnchor") + private WebElement signInAnchor; + + @FindBy(how = BySeleniumId.class, using = "signUpAnchor") + private WebElement signUpAnchor; + + @FindBy(how = BySeleniumId.class, using = "forgotPasswordAnchor") + private WebElement forgotPasswordAnchor; + + public SignInViewPO(WebDriver driver, WebElement element) { + super(driver, element); + } + + public void doLogin(String username, String password) { + loginTextField.clear(); + loginTextField.sendKeys(username); + passwordTextField.clear(); + passwordTextField.sendKeys(password); + signInAnchor.click(); + } + + public void goToSignUpView() { + signUpAnchor.click(); + } + + public void goToForgotPasswordView() { + forgotPasswordAnchor.click(); + } +}