From dca983655206f4dfe146330485736ec901002829 Mon Sep 17 00:00:00 2001 From: Adam Rauch Date: Fri, 2 Feb 2024 15:08:02 -0800 Subject: [PATCH] Update test for Weak password rule removal --- src/org/labkey/test/LabKeySiteWrapper.java | 3 ++- .../test/tests/core/login/PasswordTest.java | 10 +++++----- src/org/labkey/test/util/APIUserHelper.java | 8 ++++---- .../test/util/core/login/DbLoginUtils.java | 16 +++++++++++++++- 4 files changed, 26 insertions(+), 11 deletions(-) diff --git a/src/org/labkey/test/LabKeySiteWrapper.java b/src/org/labkey/test/LabKeySiteWrapper.java index 0a5db1f310..e178a8772a 100644 --- a/src/org/labkey/test/LabKeySiteWrapper.java +++ b/src/org/labkey/test/LabKeySiteWrapper.java @@ -69,6 +69,7 @@ import org.labkey.test.util.TestLogger; import org.labkey.test.util.TextSearcher; import org.labkey.test.util.Timer; +import org.labkey.test.util.core.login.DbLoginUtils; import org.openqa.selenium.NoSuchElementException; import org.openqa.selenium.StaleElementReferenceException; import org.openqa.selenium.WebDriverException; @@ -439,7 +440,7 @@ protected void resetPassword(String resetUrl, String username, String newPasswor assertTextPresent(username, "has been verified! Create an account password below.", - "Your password must be at least six characters and cannot contain spaces or match your email address." + DbLoginUtils.PasswordStrength.Good.getGuidance() ); new SetPasswordForm(getDriver()) diff --git a/src/org/labkey/test/tests/core/login/PasswordTest.java b/src/org/labkey/test/tests/core/login/PasswordTest.java index a87dfda585..c484f056b0 100644 --- a/src/org/labkey/test/tests/core/login/PasswordTest.java +++ b/src/org/labkey/test/tests/core/login/PasswordTest.java @@ -100,14 +100,14 @@ public void testLoginConfigurationForm() assertEquals("Login config", new DbLoginProperties(PasswordStrength.Good, PasswordExpiration.OneYear), DbLoginUtils.getDbLoginConfig(connection)); - DbLoginUtils.setDbLoginConfig(connection, PasswordStrength.Weak, PasswordExpiration.SixMonths); + DbLoginUtils.setDbLoginConfig(connection, PasswordStrength.Strong, PasswordExpiration.SixMonths); DatabaseAuthConfigureDialog configDialog = configurePage .getPrimaryConfigurationRow(dbAuth.getProviderDescription()) .clickEdit(dbAuth); DbLoginProperties dbLoginConfig = configDialog.getDbLoginConfig(); assertEquals("Login config", - new DbLoginProperties(PasswordStrength.Weak, PasswordExpiration.SixMonths), + new DbLoginProperties(PasswordStrength.Strong, PasswordExpiration.SixMonths), dbLoginConfig); } @@ -195,7 +195,7 @@ public void testReusePassword() public void testPasswordReset() { DbLoginUtils.setDbLoginConfig(createDefaultConnection(), - PasswordStrength.Weak, + PasswordStrength.Good, PasswordExpiration.Never); //get user a password @@ -210,7 +210,7 @@ public void testPasswordReset() beginAt(resetUrl); - attemptSetInvalidPassword("fooba", "fooba", "Your password must be at least six characters and cannot contain spaces."); + attemptSetInvalidPassword("fooba", "fooba", "Your password must be at least eight characters and cannot contain spaces."); attemptSetInvalidPassword("foobar", "foobar2", "Your password entries didn't match."); resetPassword(resetUrl, USER, VERY_STRONG_PASSWORD); @@ -221,7 +221,7 @@ public void testPasswordReset() @Test public void testPasswordParameter() { - setInitialPassword(USER, VERY_WEAK_PASSWORD); + setInitialPassword(USER, WEAK_PASSWORD); // 31000: fail login actions if parameters present on URL SimplePostCommand command = new SimplePostCommand("login", "loginAPI"); diff --git a/src/org/labkey/test/util/APIUserHelper.java b/src/org/labkey/test/util/APIUserHelper.java index e7a3911db4..c1dfbe6a57 100644 --- a/src/org/labkey/test/util/APIUserHelper.java +++ b/src/org/labkey/test/util/APIUserHelper.java @@ -153,10 +153,10 @@ public GetUsersResponse getUsers() return getUsers(false); } - public GetUsersResponse getUsers(boolean includeDeactivated) + public GetUsersResponse getUsers(boolean includeInactive) { GetUsersCommand command = new GetUsersCommand(); - command.setIncludeDeactivated(includeDeactivated); + command.setIncludeInactive(includeInactive); Connection connection = getWrapper().createDefaultConnection(); if (getWrapper().isImpersonating()) { @@ -179,10 +179,10 @@ public Map getUserIds(List userEmails) return getUserIds(userEmails, true); } - public Map getUserIds(List userEmails, boolean includeDeactivated) + public Map getUserIds(List userEmails, boolean includeInactive) { Map userIds = new HashMap<>(); - List usersInfo = getUsers(includeDeactivated).getUsersInfo(); + List usersInfo = getUsers(includeInactive).getUsersInfo(); for (UserInfo userInfo : usersInfo) { if (userEmails.contains(userInfo.getEmail())) diff --git a/src/org/labkey/test/util/core/login/DbLoginUtils.java b/src/org/labkey/test/util/core/login/DbLoginUtils.java index f06a877f51..b778a611e9 100644 --- a/src/org/labkey/test/util/core/login/DbLoginUtils.java +++ b/src/org/labkey/test/util/core/login/DbLoginUtils.java @@ -81,13 +81,27 @@ public static void resetDbLoginConfig(Connection connection) public enum PasswordStrength implements OptionSelect.SelectOption { - Weak, Good, Strong; + Good("Your password must be at least eight non-whitespace characters, include a mix of lowercase letters, uppercase letters, digits, and symbols, and cannot include portions of your personal information."), + Strong("Secure passwords are long and use multiple character types. The password strength gauge will turn green when your new password meets the complexity requirements."); + + private final String _guidance; + + PasswordStrength(String guidance) + { + _guidance = guidance; + } @Override public String getValue() { return name(); } + + // General password guidance displayed on the set/change password page for this rule + public String getGuidance() + { + return _guidance; + } } public enum PasswordExpiration implements OptionSelect.SelectOption