From a2d33cf4aa3fb67aaf69ff50c185c03da9923af8 Mon Sep 17 00:00:00 2001 From: Erik Jan de Wit Date: Thu, 14 Nov 2024 10:21:30 +0100 Subject: [PATCH] make the tests capable of running against login v1 and v2 (#33732) * make the tests capable of running against login v1 and v2 fixes: #31764 Signed-off-by: Erik Jan de Wit * added build for v1 Signed-off-by: Erik Jan de Wit * Update testsuite/integration-arquillian/tests/base/testsuites/login-suite Co-authored-by: Stian Thorgersen Signed-off-by: Erik Jan de Wit * Update .github/workflows/ci.yml Co-authored-by: Stian Thorgersen Signed-off-by: Erik Jan de Wit * Update .github/workflows/ci.yml Co-authored-by: Stian Thorgersen Signed-off-by: Erik Jan de Wit * Update .github/workflows/ci.yml Co-authored-by: Stian Thorgersen Signed-off-by: Erik Jan de Wit * Update .github/workflows/ci.yml Co-authored-by: Stian Thorgersen Signed-off-by: Erik Jan de Wit * Update .github/workflows/ci.yml Co-authored-by: Stian Thorgersen Signed-off-by: Erik Jan de Wit * Update .github/workflows/ci.yml Co-authored-by: Stian Thorgersen Signed-off-by: Erik Jan de Wit * added login default theme Signed-off-by: Erik Jan de Wit * Update .github/workflows/ci.yml Co-authored-by: Stian Thorgersen Signed-off-by: Erik Jan de Wit * Update .github/workflows/ci.yml Co-authored-by: Stian Thorgersen Signed-off-by: Erik Jan de Wit * Update .github/workflows/ci.yml Co-authored-by: Stian Thorgersen Signed-off-by: Erik Jan de Wit * Update .github/workflows/ci.yml Co-authored-by: Stian Thorgersen Signed-off-by: Erik Jan de Wit * added default Signed-off-by: Erik Jan de Wit --------- Signed-off-by: Erik Jan de Wit Signed-off-by: Erik Jan de Wit Co-authored-by: Stian Thorgersen --- .github/workflows/ci.yml | 35 +++++++++++++++++++ .../login/DeleteAccountActionConfirmPage.java | 11 +++--- .../auth/page/login/FeedbackMessage.java | 8 +++-- .../pages/InstalledAppRedirectPage.java | 2 +- .../pages/LanguageComboboxAwarePage.java | 4 ++- .../keycloak/testsuite/pages/LoginPage.java | 9 ++++- .../pages/LoginPasswordResetPage.java | 4 +-- .../pages/LoginPasswordUpdatePage.java | 2 +- .../testsuite/pages/LoginTotpPage.java | 11 ++++-- .../pages/LoginUpdateProfilePage.java | 14 ++++---- .../testsuite/pages/OAuthGrantPage.java | 4 +-- .../testsuite/pages/RegisterPage.java | 2 +- .../pages/UpdateAccountInformationPage.java | 20 +++++------ .../testsuite/pages/VerifyProfilePage.java | 10 +++--- ...ctionUpdateProfileWithUserProfileTest.java | 4 +-- .../broker/AbstractDefaultIdpTest.java | 9 ++++- .../broker/KcOidcFirstBrokerLoginTest.java | 4 +-- .../forms/RegisterWithUserProfileTest.java | 4 +-- .../testsuite/forms/VerifyProfileTest.java | 4 +-- .../tests/base/testsuites/login-suite | 6 ++++ 20 files changed, 117 insertions(+), 50 deletions(-) create mode 100644 testsuite/integration-arquillian/tests/base/testsuites/login-suite diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8fa667aaa9b..9d6399e506d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -325,6 +325,41 @@ jobs: with: job-id: jdk-integration-tests-${{ matrix.os }}-${{ matrix.dist }}-${{ matrix.version }} + login-v1-tests: + name: Login Theme v1 tests + needs: build + timeout-minutes: 100 + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - id: integration-test-setup + name: Integration test setup + uses: ./.github/actions/integration-test-setup + + - name: Run base tests + run: | + TESTS=`testsuite/integration-arquillian/tests/base/testsuites/suite.sh login` + echo "Tests: $TESTS" + ./mvnw test ${{ env.SUREFIRE_RETRY }} -Pauth-server-quarkus -Dtest=$TESTS -pl testsuite/integration-arquillian/tests/base 2>&1 | misc/log/trimmer.sh + + - name: Upload JVM Heapdumps + if: always() + uses: ./.github/actions/upload-heapdumps + + - uses: ./.github/actions/upload-flaky-tests + name: Upload flaky tests + env: + GH_TOKEN: ${{ github.token }} + with: + job-name: Java Distribution IT + + - name: Surefire reports + if: always() + uses: ./.github/actions/archive-surefire-reports + with: + job-id: jdk-integration-tests-${{ matrix.os }}-${{ matrix.dist }}-${{ matrix.version }} + volatile-sessions-tests: name: Volatile Sessions IT needs: [build, conditional] diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/auth/page/login/DeleteAccountActionConfirmPage.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/auth/page/login/DeleteAccountActionConfirmPage.java index 63cdbdc50d5..634e7e3fcda 100644 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/auth/page/login/DeleteAccountActionConfirmPage.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/auth/page/login/DeleteAccountActionConfirmPage.java @@ -2,17 +2,20 @@ package org.keycloak.testsuite.auth.page.login; import org.keycloak.authentication.requiredactions.DeleteAccount; import org.openqa.selenium.By; +import org.openqa.selenium.NoSuchElementException; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; +import java.util.List; + import static org.keycloak.testsuite.util.UIUtils.clickLink; public class DeleteAccountActionConfirmPage extends RequiredActions { - @FindBy(css = "button[name='cancel-aia']") + @FindBy(css = "[name='cancel-aia']") WebElement cancelActionButton; - @FindBy(css = "button[type='submit']") + @FindBy(css = "[type='submit']") WebElement confirmActionButton; @Override @@ -34,10 +37,6 @@ public class DeleteAccountActionConfirmPage extends RequiredActions { clickLink(confirmActionButton); } - public boolean isErrorMessageDisplayed() { - return driver.findElements(By.cssSelector(".pf-v5-c-alert")).size() == 1; - } - public String getErrorMessageText() { return driver.findElement(By.cssSelector("#kc-content-wrapper > div > span.kc-feedback-text")).getText(); } diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/auth/page/login/FeedbackMessage.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/auth/page/login/FeedbackMessage.java index f5009673c75..79dafd9ee5e 100644 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/auth/page/login/FeedbackMessage.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/auth/page/login/FeedbackMessage.java @@ -75,12 +75,16 @@ public class FeedbackMessage { } } - public String getType() { + private String getType() { try { String cssClass = alertRoot.getAttribute("class"); Matcher classMatcher = ALERT_TYPE_CLASS_PATTERN.matcher(cssClass); if (!classMatcher.find()) { - throw new RuntimeException("Failed to identify feedback message type"); + classMatcher = Pattern.compile("alert-(.+)").matcher(cssClass); + if (!classMatcher.find()) + throw new RuntimeException("Failed to identify feedback message type"); + + return classMatcher.group(1); } return classMatcher.group(1); } catch (NoSuchElementException e) { diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/InstalledAppRedirectPage.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/InstalledAppRedirectPage.java index 51f12c07e38..3826176c8ae 100644 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/InstalledAppRedirectPage.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/InstalledAppRedirectPage.java @@ -44,7 +44,7 @@ public class InstalledAppRedirectPage extends AbstractPage { @FindBy(id = "kc-page-title") private WebElement pageTitle; - @FindBy(className = "pf-v5-c-alert") + @FindBy(css = "div[class^='pf-v5-c-alert'], div[class^='alert-error']") private WebElement errorBox; @Override diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LanguageComboboxAwarePage.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LanguageComboboxAwarePage.java index d66711250eb..61022bfd44e 100644 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LanguageComboboxAwarePage.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LanguageComboboxAwarePage.java @@ -126,7 +126,9 @@ public abstract class LanguageComboboxAwarePage extends AbstractPage { } public String getAttemptedUsername() { - return attemptedUsernameLabel.getAttribute("value"); + String text = attemptedUsernameLabel.getAttribute("value"); + if (text == null) return attemptedUsernameLabel.getText(); + return text; } public void clickResetLogin() { diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginPage.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginPage.java index dc33b0f3c99..cb6f727a447 100755 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginPage.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginPage.java @@ -54,6 +54,9 @@ public class LoginPage extends LanguageComboboxAwarePage { @FindBy(id = "input-error-password") private WebElement passwordInputError; + @FindBy(id = "input-error") + private WebElement inputError; + @FindBy(id = "rememberMe") private WebElement rememberMe; @@ -170,7 +173,11 @@ public class LoginPage extends LanguageComboboxAwarePage { try { return getTextFromElement(passwordInputError); } catch (NoSuchElementException e) { - return null; + try { + return getTextFromElement(inputError); + } catch (NoSuchElementException error) { + return null; + } } } } diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginPasswordResetPage.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginPasswordResetPage.java index 28595fa2532..57d8019d2d3 100644 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginPasswordResetPage.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginPasswordResetPage.java @@ -32,10 +32,10 @@ public class LoginPasswordResetPage extends LanguageComboboxAwarePage { @FindBy(id = "input-error-username") private WebElement usernameError; - @FindBy(css = "button[type=\"submit\"]") + @FindBy(css = "[type=\"submit\"]") private WebElement submitButton; - @FindBy(className = "pf-v5-c-success") + @FindBy(css = "[class='pf-v5-c-success'], [class='alert-success']") private WebElement emailSuccessMessage; @FindBy(css = "div[class^='pf-v5-c-alert'], div[class^='alert-error']") diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginPasswordUpdatePage.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginPasswordUpdatePage.java index 2c878014153..3467d86fd11 100644 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginPasswordUpdatePage.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginPasswordUpdatePage.java @@ -32,7 +32,7 @@ public class LoginPasswordUpdatePage extends LogoutSessionsPage { @FindBy(id = "password-confirm") private WebElement passwordConfirmInput; - @FindBy(css = "button[type=\"submit\"]") + @FindBy(css = "[type=\"submit\"]") private WebElement submitButton; @FindBy(css = "div[class^='pf-v5-c-alert'], div[class^='alert-error']") diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginTotpPage.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginTotpPage.java index 32b1b1ca5a6..83e9fcb245e 100755 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginTotpPage.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginTotpPage.java @@ -39,7 +39,7 @@ public class LoginTotpPage extends LanguageComboboxAwarePage { @FindBy(id = "password-token") private WebElement passwordToken; - @FindBy(css = "button[type=\"submit\"]") + @FindBy(css = "[type=\"submit\"]") private WebElement submitButton; @FindBy(css = "div[class^='pf-v5-c-alert'], div[class^='alert-error']") @@ -48,6 +48,9 @@ public class LoginTotpPage extends LanguageComboboxAwarePage { @FindBy(id = "input-error-otp") private WebElement totpInputCodeError; + @FindBy(id = "input-error-otp-code") + private WebElement otpInputCodeError; + public void login(String totp) { otpInput.clear(); if (totp != null) otpInput.sendKeys(totp); @@ -67,7 +70,11 @@ public class LoginTotpPage extends LanguageComboboxAwarePage { try { return UIUtils.getTextFromElement(totpInputCodeError); } catch (NoSuchElementException e) { - return null; + try { + return UIUtils.getTextFromElement(otpInputCodeError); + } catch (NoSuchElementException ex) { + return null; + } } } diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginUpdateProfilePage.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginUpdateProfilePage.java index b740951b00c..bf0ecee017a 100644 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginUpdateProfilePage.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginUpdateProfilePage.java @@ -48,13 +48,13 @@ public class LoginUpdateProfilePage extends AbstractPage { @FindBy(name = "email") private WebElement emailInput; - + @FindBy(name = "department") private WebElement departmentInput; @FindBy(css = "input[type=\"submit\"]") private WebElement submitButton; - + @FindBy(name = "cancel-aia") private WebElement cancelAIAButton; @@ -96,7 +96,7 @@ public class LoginUpdateProfilePage extends AbstractPage { public String getLastName() { return lastNameInput.getAttribute("value"); } - + public String getEmail() { return emailInput.getAttribute("value"); } @@ -116,9 +116,9 @@ public class LoginUpdateProfilePage extends AbstractPage { public UpdateProfileErrors getInputErrors() { return errorsPage; } - + public String getLabelForField(String fieldId) { - return driver.findElement(By.cssSelector("label[for="+fieldId+"]")).getText(); + return driver.findElement(By.cssSelector("label[for="+fieldId+"]")).getText().replaceAll("\\s\\*$", ""); } public WebElement getElementById(String fieldId) { @@ -130,7 +130,7 @@ public class LoginUpdateProfilePage extends AbstractPage { return null; } } - + public boolean isDepartmentPresent() { try { isDepartmentEnabled(); @@ -268,7 +268,7 @@ public class LoginUpdateProfilePage extends AbstractPage { @FindBy(id = "input-error-lastname") private WebElement inputErrorLastName; - + @FindBy(id = "input-error-lastName") private WebElement inputErrorLastNameDynamic; diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/OAuthGrantPage.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/OAuthGrantPage.java index 32fb891b313..bbd7fd392e5 100755 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/OAuthGrantPage.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/OAuthGrantPage.java @@ -41,9 +41,9 @@ public class OAuthGrantPage extends LanguageComboboxAwarePage { public static final String OFFLINE_ACCESS_CONSENT_TEXT = "Offline Access"; public static final String ROLES_CONSENT_TEXT = "User roles"; - @FindBy(css = "button[name=\"accept\"]") + @FindBy(css = "[name=\"accept\"]") private WebElement acceptButton; - @FindBy(css = "button[name=\"cancel\"]") + @FindBy(css = "[name=\"cancel\"]") private WebElement cancelButton; diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/RegisterPage.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/RegisterPage.java index 1ab7711142d..0437030a77d 100644 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/RegisterPage.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/RegisterPage.java @@ -201,7 +201,7 @@ public class RegisterPage extends AbstractPage { } public String getLabelForField(String fieldId) { - return driver.findElement(By.cssSelector("label[for="+fieldId+"]")).getText(); + return driver.findElement(By.cssSelector("label[for="+fieldId+"]")).getText().replaceAll("\\s\\*$", ""); } public String getFirstName() { diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/UpdateAccountInformationPage.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/UpdateAccountInformationPage.java index 7d21acc8836..caffced7db1 100644 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/UpdateAccountInformationPage.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/UpdateAccountInformationPage.java @@ -23,7 +23,7 @@ public class UpdateAccountInformationPage extends LanguageComboboxAwarePage { @FindBy(name = "department") private WebElement departmentInput; - + @FindBy(css = "input[type=\"submit\"]") private WebElement submitButton; @@ -45,27 +45,27 @@ public class UpdateAccountInformationPage extends LanguageComboboxAwarePage { clickLink(submitButton); } - + public void updateAccountInformation(String userName, String email, String firstName, - String lastName, + String lastName, String department) { usernameInput.clear(); usernameInput.sendKeys(userName); - + emailInput.clear(); emailInput.sendKeys(email); - + firstNameInput.clear(); firstNameInput.sendKeys(firstName); - + lastNameInput.clear(); lastNameInput.sendKeys(lastName); departmentInput.clear(); departmentInput.sendKeys(department); - + clickLink(submitButton); } @@ -99,11 +99,11 @@ public class UpdateAccountInformationPage extends LanguageComboboxAwarePage { public boolean isCurrent() { return PageUtils.getPageTitle(driver).equalsIgnoreCase("update account information"); } - + public String getLabelForField(String fieldId) { - return driver.findElement(By.cssSelector("label[for="+fieldId+"]")).getText(); + return driver.findElement(By.cssSelector("label[for="+fieldId+"]")).getText().replaceAll("\\s\\*$", ""); } - + public boolean isDepartmentPresent() { try { return driver.findElement(By.name("department")).isDisplayed(); diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/VerifyProfilePage.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/VerifyProfilePage.java index f6e70ddd74c..0422377ab8f 100644 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/VerifyProfilePage.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/VerifyProfilePage.java @@ -41,10 +41,10 @@ public class VerifyProfilePage extends AbstractPage { @FindBy(name = "email") private WebElement emailInput; - + @FindBy(name = "department") private WebElement departmentInput; - + @FindBy(css = "input[type=\"submit\"]") private WebElement submitButton; @@ -66,7 +66,7 @@ public class VerifyProfilePage extends AbstractPage { submitButton.click(); } - + public void update(String firstName, String lastName, String department) { departmentInput.clear(); if (department != null) { @@ -103,9 +103,9 @@ public class VerifyProfilePage extends AbstractPage { return null; } } - + public String getLabelForField(String fieldId) { - return driver.findElement(By.cssSelector("label[for="+fieldId+"]")).getText(); + return driver.findElement(By.cssSelector("label[for="+fieldId+"]")).getText().replaceAll("\\s\\*$", ""); } public String getFirstName() { diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/actions/RequiredActionUpdateProfileWithUserProfileTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/actions/RequiredActionUpdateProfileWithUserProfileTest.java index 35b50b6caaf..905e075b07b 100644 --- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/actions/RequiredActionUpdateProfileWithUserProfileTest.java +++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/actions/RequiredActionUpdateProfileWithUserProfileTest.java @@ -148,11 +148,11 @@ public class RequiredActionUpdateProfileWithUserProfileTest extends AbstractTest //assert field names // i18n replaced - Assert.assertEquals("First name *", updateProfilePage.getLabelForField("firstName")); + Assert.assertEquals("First name", updateProfilePage.getLabelForField("firstName")); // attribute name used if no display name set Assert.assertEquals("lastName", updateProfilePage.getLabelForField("lastName")); // direct value in display name - Assert.assertEquals("Department *", updateProfilePage.getLabelForField("department")); + Assert.assertEquals("Department", updateProfilePage.getLabelForField("department")); } diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/AbstractDefaultIdpTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/AbstractDefaultIdpTest.java index 62ddb9cb8d2..782e2d5a2b0 100644 --- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/AbstractDefaultIdpTest.java +++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/AbstractDefaultIdpTest.java @@ -34,6 +34,7 @@ import org.keycloak.testsuite.Assert; import org.keycloak.testsuite.util.FlowUtil; import org.keycloak.testsuite.util.UIUtils; import org.openqa.selenium.By; +import org.openqa.selenium.NoSuchElementException; import org.openqa.selenium.WebElement; import static org.junit.Assert.assertEquals; @@ -120,7 +121,13 @@ public abstract class AbstractDefaultIdpTest extends AbstractInitializedBaseBrok waitForPage(driver, "sign in to", true); - WebElement errorElement = driver.findElement(By.className("pf-v5-c-alert")); + WebElement errorElement; + try { + errorElement = driver.findElement(By.className("pf-v5-c-alert")); + } catch (NoSuchElementException e) { + errorElement = driver.findElement(By.className("alert-error")); + } + assertNotNull("Page should show an error message but it's missing", errorElement); // Login to IDP failed due consent denied. Error message is displayed on the username/password screen of the consumer realm diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcFirstBrokerLoginTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcFirstBrokerLoginTest.java index 10531a5eab6..ec8bc013909 100644 --- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcFirstBrokerLoginTest.java +++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcFirstBrokerLoginTest.java @@ -465,11 +465,11 @@ public class KcOidcFirstBrokerLoginTest extends AbstractFirstBrokerLoginTest { //assert field names // i18n replaced - org.junit.Assert.assertEquals("First name *", updateAccountInformationPage.getLabelForField("firstName")); + org.junit.Assert.assertEquals("First name", updateAccountInformationPage.getLabelForField("firstName")); // attribute name used if no display name set org.junit.Assert.assertEquals("lastName", updateAccountInformationPage.getLabelForField("lastName")); // direct value in display name - org.junit.Assert.assertEquals("Department *", updateAccountInformationPage.getLabelForField("department")); + org.junit.Assert.assertEquals("Department", updateAccountInformationPage.getLabelForField("department")); } @Test diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/forms/RegisterWithUserProfileTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/forms/RegisterWithUserProfileTest.java index 4c3846b9514..73fee517150 100644 --- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/forms/RegisterWithUserProfileTest.java +++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/forms/RegisterWithUserProfileTest.java @@ -265,11 +265,11 @@ public class RegisterWithUserProfileTest extends AbstractTestRealmKeycloakTest { //assert field names // i18n replaced - Assert.assertEquals("First name *",registerPage.getLabelForField("firstName")); + Assert.assertEquals("First name",registerPage.getLabelForField("firstName")); // attribute name used if no display name set Assert.assertEquals("lastName",registerPage.getLabelForField("lastName")); // direct value in display name - Assert.assertEquals("Department *",registerPage.getLabelForField("department")); + Assert.assertEquals("Department",registerPage.getLabelForField("department")); } @Test diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/forms/VerifyProfileTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/forms/VerifyProfileTest.java index 270544842db..15395c5fdfe 100644 --- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/forms/VerifyProfileTest.java +++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/forms/VerifyProfileTest.java @@ -191,11 +191,11 @@ public class VerifyProfileTest extends AbstractTestRealmKeycloakTest { //assert field names // i18n replaced - Assert.assertEquals("First name *",verifyProfilePage.getLabelForField("firstName")); + Assert.assertEquals("First name",verifyProfilePage.getLabelForField("firstName")); // attribute name used if no display name set Assert.assertEquals("lastName",verifyProfilePage.getLabelForField("lastName")); // direct value in display name - Assert.assertEquals("Department *",verifyProfilePage.getLabelForField("department")); + Assert.assertEquals("Department",verifyProfilePage.getLabelForField("department")); } @Test diff --git a/testsuite/integration-arquillian/tests/base/testsuites/login-suite b/testsuite/integration-arquillian/tests/base/testsuites/login-suite new file mode 100644 index 00000000000..0b677864827 --- /dev/null +++ b/testsuite/integration-arquillian/tests/base/testsuites/login-suite @@ -0,0 +1,6 @@ +org.keycloak.testsuite.actions +org.keycloak.testsuite.forms +KcOidcBrokerLoginHintTest +KcOidcFirstBrokerLoginTest +KcOidcMultipleTabsBrokerTest +LoginPageTest