@Override public String getUrl() { return driver.getCurrentUrl(); }
public HomePage submit() { String url = this.driver.getCurrentUrl(); this.form.findElement(By.name("generate-project")).click(); assertThat(this.driver.getCurrentUrl()).isEqualTo(url); return this; }
@Test public void testMfaVerifyPageWithoutLoggingIn() { webDriver.get(zoneUrl + "/logout.do"); webDriver.get(zoneUrl + "/login/mfa/verify"); assertEquals(zoneUrl + "/login", webDriver.getCurrentUrl()); }
@Test public void testMfaRegisterPageWithoutLoggingIn() { webDriver.get(zoneUrl + "/logout.do"); webDriver.get(zoneUrl + "/login/mfa/register"); assertEquals(zoneUrl + "/login", webDriver.getCurrentUrl()); }
@Test public void testQRCodeValidation() { performLogin(username); assertEquals(zoneUrl + "/login/mfa/register", webDriver.getCurrentUrl()); webDriver.findElement(By.id("Next")).click(); assertEquals(zoneUrl + "/login/mfa/verify", webDriver.getCurrentUrl()); webDriver.findElement(By.name("code")).sendKeys("1111111111111111112222"); webDriver.findElement(By.id("verify_code_btn")).click(); assertEquals("Incorrect code, please try again.", webDriver.findElement(By.cssSelector("form .error-color")).getText()); }
@Test public void testDisplayIdentityZoneNameOnVerifyPage() { performLogin(username); webDriver.findElement(By.id("Next")).click(); assertEquals(zoneUrl + "/login/mfa/verify", webDriver.getCurrentUrl()); assertEquals(webDriver.findElement(By.id("mfa-identity-zone")).getText(), mfaZone.getName()); webDriver.findElement(By.id("verify_code_btn")).click(); assertEquals(webDriver.findElement(By.id("mfa-identity-zone")).getText(), mfaZone.getName()); }
private void navigateToForcePasswordChange() { updateUserToForcePasswordChange(restTemplate, baseUrl, adminAccessToken, userId); webDriver.get(baseUrl+"/login"); webDriver.findElement(By.name("username")).sendKeys(userEmail); webDriver.findElement(By.name("password")).sendKeys("secr3T"); webDriver.findElement(By.xpath("//input[@value='Sign in']")).click(); assertThat(webDriver.findElement(By.cssSelector("h1")).getText(), containsString("Force Change Password")); assertEquals(baseUrl+"/force_password_change", webDriver.getCurrentUrl()); }
@Test public void testQRCodeScreen() throws Exception { performLogin(username); assertEquals(zoneUrl + "/login/mfa/register", webDriver.getCurrentUrl()); String imageSrc = webDriver.findElement(By.id("qr")).getAttribute("src"); String secretKey = getSecretFromQrImageString(imageSrc); webDriver.findElement(By.id("Next")).click(); verifyCodeOnRegistration(secretKey, "/"); }
private void finishPasswordReset(String username, String email) { String link = getPasswordResetLink(email); webDriver.get(link); // Successfully choose password webDriver.findElement(By.name("password")).sendKeys("newsecr3T"); webDriver.findElement(By.name("password_confirmation")).sendKeys("newsecr3T"); webDriver.findElement(By.xpath("//input[@value='Create new password']")).click(); assertThat(webDriver.getCurrentUrl(), is(baseUrl + "/login?success=password_reset")); webDriver.findElement(By.name("username")).sendKeys(username); webDriver.findElement(By.name("password")).sendKeys("newsecr3T"); webDriver.findElement(By.xpath("//input[@value='Sign in']")).click(); assertThat(webDriver.findElement(By.cssSelector("h1")).getText(), containsString("Where to?")); }
@Test public void testRedirectForHandleForcePasswordChange() throws Exception { updateUserToForcePasswordChange(restTemplate, baseUrl, adminAccessToken, userId); webDriver.get(baseUrl+"/profile"); assertEquals(baseUrl+"/login", webDriver.getCurrentUrl()); webDriver.findElement(By.name("username")).sendKeys(userEmail); webDriver.findElement(By.name("password")).sendKeys("secr3T"); webDriver.findElement(By.xpath("//input[@value='Sign in']")).click(); webDriver.findElement(By.name("password")).sendKeys("newsecr3T"); webDriver.findElement(By.name("password_confirmation")).sendKeys("newsecr3T"); webDriver.findElement(By.xpath("//input[@value='Create new password']")).click(); assertEquals(baseUrl+"/profile", webDriver.getCurrentUrl()); }
@Test public void testHandleForceChangingPassword() throws Exception { navigateToForcePasswordChange(); webDriver.findElement(By.name("password")).sendKeys("newsecr3T"); webDriver.findElement(By.name("password_confirmation")).sendKeys("newsecr3T"); webDriver.findElement(By.xpath("//input[@value='Create new password']")).click(); assertEquals(baseUrl+"/", webDriver.getCurrentUrl()); }
@Test public void testHandleForceChangingPasswordWithNewPasswordSameAsOld() throws Exception { navigateToForcePasswordChange(); webDriver.findElement(By.name("password")).sendKeys("secr3T"); webDriver.findElement(By.name("password_confirmation")).sendKeys("secr3T"); webDriver.findElement(By.xpath("//input[@value='Create new password']")).click(); assertEquals(baseUrl+"/force_password_change", webDriver.getCurrentUrl()); assertThat(webDriver.findElement(By.cssSelector(".error-message")).getText(), containsString("Your new password cannot be the same as the old password.")); }
@Test public void testHandleForcePasswordChangeInvalidConfirmation() throws Exception { navigateToForcePasswordChange(); webDriver.findElement(By.name("password")).sendKeys("newsecr3T"); webDriver.findElement(By.name("password_confirmation")).sendKeys("invalid"); webDriver.findElement(By.xpath("//input[@value='Create new password']")).click(); assertEquals(baseUrl+"/force_password_change", webDriver.getCurrentUrl()); assertThat(webDriver.findElement(By.cssSelector(".error-message")).getText(), containsString("Passwords must match and not be empty.")); }
@Test public void testHandleForcePasswordChangeEmptyConfirmation() throws Exception { navigateToForcePasswordChange(); webDriver.findElement(By.name("password")).sendKeys("newsecr3T"); webDriver.findElement(By.xpath("//input[@value='Create new password']")).click(); assertEquals(baseUrl+"/force_password_change", webDriver.getCurrentUrl()); assertThat(webDriver.findElement(By.cssSelector(".error-message")).getText(), containsString("Passwords must match and not be empty.")); }
@Test public void checkAccessForTotpPage() throws Exception { webDriver.get(zoneUrl + "/logout.do"); webDriver.manage().deleteAllCookies(); webDriver.get(zoneUrl + "/login/mfa/register"); assertEquals(zoneUrl + "/login", webDriver.getCurrentUrl()); }
@Test public void testDisplayIdentityZoneNameOnRegisterPage() { performLogin(username); assertEquals(zoneUrl + "/login/mfa/register", webDriver.getCurrentUrl()); assertEquals(webDriver.findElement(By.id("mfa-identity-zone")).getText(), mfaZone.getName()); }
@Test public void testLoginReloadRetainsFormRedirect() { String redirectUri = "http://expected.com"; webDriver.get(baseUrl + "/oauth/authorize?client_id=test&redirect_uri="+redirectUri); ((JavascriptExecutor)webDriver).executeScript("document.getElementsByName('X-Uaa-Csrf')[0].value=''"); webDriver.manage().deleteCookieNamed("JSESSIONID"); webDriver.findElement(By.xpath("//input[@value='Sign in']")).click(); assertThat(webDriver.getCurrentUrl(), Matchers.containsString("/login")); assertThat(webDriver.findElement(By.name("form_redirect_uri")).getAttribute("value"), Matchers.containsString("redirect_uri="+redirectUri)); }
@Test public void testForcePasswordChangeThatFailsPasswordPolicy() { navigateToForcePasswordChange(); String invalidNewPassword = new RandomValueStringGenerator(256).generate(); webDriver.findElement(By.name("password")).sendKeys(invalidNewPassword); webDriver.findElement(By.name("password_confirmation")).sendKeys(invalidNewPassword); webDriver.findElement(By.xpath("//input[@value='Create new password']")).click(); assertEquals(baseUrl+"/force_password_change", webDriver.getCurrentUrl()); assertThat(webDriver.findElement(By.cssSelector(".error-message")).getText(), containsString("Password must be no more than 255 characters in length.")); }
private void verifyCodeOnRegistration(String key, String expectedUrlPath) { GoogleAuthenticator authenticator = new GoogleAuthenticator(new GoogleAuthenticatorConfig.GoogleAuthenticatorConfigBuilder().build()); Integer verificationCode = authenticator.getTotpPassword(key); webDriver.findElement(By.name("code")).sendKeys(verificationCode.toString()); webDriver.findElement(By.cssSelector("form button")).click(); assertEquals(zoneUrl + expectedUrlPath, webDriver.getCurrentUrl()); }
@Test public void defaultLoginPageWithSingleClientRegistrationThenRedirect() { this.spring.register(OAuth2LoginWithSingleClientRegistrations.class).autowire(); WebTestClient webTestClient = WebTestClientBuilder .bindToWebFilters(new GitHubWebFilter(), this.springSecurity) .build(); WebDriver driver = WebTestClientHtmlUnitDriverBuilder .webTestClientSetup(webTestClient) .build(); driver.get("http://localhost/"); assertThat(driver.getCurrentUrl()).startsWith("https://github.com/login/oauth/authorize"); }