Unify page objects between arquillian and test-framework.#49814
Conversation
d3f24bd to
efedff6
Compare
There was a problem hiding this comment.
Pull request overview
This PR aims to unify page objects between the legacy Arquillian testsuite and the newer test framework by standardizing page detection/assertions (moving from scattered isCurrent()/title checks toward assertCurrent() based on data-page-id), and updating many tests accordingly.
Changes:
- Refactors many page objects to expose
getExpectedPageId()and rely on a commonAbstractPage.assertCurrent()waiting strategy. - Updates a large set of Arquillian tests to use
*.assertCurrent()instead of booleanisCurrent()assertions (and removes some legacy helpers likeWaitUtils.waitUntilPageIsCurrent). - Introduces/expands usage of common page objects (e.g.,
AppPage,VerifyEmailPage) in several test classes.
Reviewed changes
Copilot reviewed 157 out of 157 changed files in this pull request and generated 12 comments.
Show a summary per file
| File | Description |
|---|---|
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/webauthn/registration/WebAuthnOtherSettingsTest.java | Update WebAuthn page assertions |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/webauthn/registration/UserVerificationRegisterTest.java | Replace isCurrent() assertions |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/webauthn/registration/ResidentKeyRegisterTest.java | Replace isCurrent() assertions |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/webauthn/registration/PubKeySignRegisterTest.java | Replace isCurrent() assertions |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/webauthn/registration/PolicyJsInjectionTest.java | Align login page assertion call |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/webauthn/registration/AuthAttachmentRegisterTest.java | Remove legacy wait helper usage |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/webauthn/registration/AttestationConveyanceRegisterTest.java | Replace isCurrent() checks |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/webauthn/passwordless/PasskeysKcOidcFirstBrokerLoginTest.java | Replace isCurrent() with assertCurrent() |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/webauthn/AbstractWebAuthnVirtualTest.java | Adjust login page assertion usage |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/util/TestAppHelper.java | Change login helpers to void + assertions |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/organization/member/OrganizationMemberTest.java | Switch login open flow to oauth.realm/openLoginForm |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/organization/mapper/OrganizationGroupOidcIdpMapperTest.java | Switch login open flow to oauth.realm/openLoginForm |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/organization/broker/OrganizationPostBrokerLoginTest.java | Switch login open flow to oauth.realm/openLoginForm |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/organization/broker/AbstractBrokerSelfRegistrationTest.java | Switch login open flow to oauth.realm/openLoginForm |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/organization/authentication/OrganizationAuthenticationTest.java | Switch login open flow + assertion updates |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/organization/admin/OrganizationThemeTest.java | Switch login open flow + assertion updates |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/organization/admin/OrganizationInvitationLinkTest.java | Replace page isCurrent() checks |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/organization/admin/AbstractOrganizationTest.java | Switch login open flow |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/oidc/UserInfoTest.java | Add AppPage and assert it on success |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/oidc/OIDCAdvancedRequestParamsTest.java | Replace isCurrent() assertions |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/oidc/flows/AbstractOIDCResponseTypeTest.java | Replace isCurrent() assertions |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/oidc/AuthenticationMethodReferenceTest.java | Replace isCurrent() with assertCurrent() |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/oidc/AcrAuthFlowTest.java | Replace isCurrent() with assertCurrent() |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/oauth/TokenRevocationTest.java | Replace conditional isCurrent() with assertCurrent() |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/oauth/TokenIntrospectionTest.java | Add AppPage and assert it on success |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/oauth/RPInitiatedLogoutTest.java | Replace isCurrent() assertions |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/oauth/OAuthRedirectUriTest.java | Replace isCurrent() assertions |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/oauth/LogoutTest.java | Add AppPage and assert it on success |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/oauth/AuthorizationCodeTest.java | Replace error page isCurrent() checks |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/forms/ResetOtpTest.java | Replace isCurrent() with assertCurrent() |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/forms/RegisterTest.java | Replace isCurrent() with assertCurrent() |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/forms/MultiFactorAuthenticationTest.java | Replace isCurrent() checks in MFA flows |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/forms/LoginTotpTest.java | Replace isCurrent() with assertCurrent() |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/forms/LoginTest.java | Replace isCurrent() with assertCurrent() |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/forms/LoginHotpTest.java | Replace isCurrent() with assertCurrent() |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/forms/LevelOfAssuranceFlowTest.java | Remove legacy waits + use assertCurrent() |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/forms/CustomFlowTest.java | Replace isCurrent() with assertCurrent() |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/forms/BruteForceTest.java | Replace isCurrent() with assertCurrent() |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/forms/BrowserFlowTest.java | Use AppPage + update flow assertions |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/forms/AltSubflowForCredentialResetTest.java | Replace isCurrent() assertions |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/federation/storage/UserStorageFailureTest.java | Assert AppPage on successful login |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/federation/storage/BackwardsCompatibilityUserStorageTest.java | Adjust for TestAppHelper signature changes |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/federation/ldap/UserStorageGracefulDegradationLdapTest.java | Replace isCurrent() with assertCurrent() |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/federation/ldap/LDAPReadOnlyTest.java | Replace isCurrent() with assertCurrent() |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/federation/kerberos/KerberosStandaloneCrossRealmTrustTest.java | Adjust for TestAppHelper signature changes |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/federation/kerberos/KerberosLdapTest.java | Adjust for TestAppHelper signature changes |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/federation/kerberos/KerberosLdapCrossRealmTrustTest.java | Adjust for TestAppHelper signature changes |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/federation/kerberos/AbstractKerberosSingleRealmTest.java | Adjust for TestAppHelper signature changes |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/cluster/AbstractFailoverClusterTest.java | Replace isCurrent() assertions |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/client/policies/SecureRedirectUrisEnforcerExecutorTest.java | Replace error page isCurrent() check |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/client/policies/ClientPoliciesTest.java | Replace error page isCurrent() check |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/client/policies/ClientPoliciesExtendedEventTest.java | Replace error page isCurrent() check |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/client/policies/ClientPoliciesExecutorTest.java | Update error message assertion + assertCurrent() |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/client/OAuth2_1PublicClientTest.java | Replace error page isCurrent() check |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/client/OAuth2_1ConfidentialClientTest.java | Replace error page isCurrent() check |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/OAuth2BrokerTest.java | Switch login open flow |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcSamlUsernameTemplateMapperTest.java | Replace isCurrent() checks in mapper tests |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcSamlMultipleTabsBrokerTest.java | Switch login open flow + assertions |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcSamlIdPInitiatedSsoTest.java | Replace isCurrent() checks |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcSamlBrokerTest.java | Switch login open flow |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcSamlBrokerLoginHintWithOptionEnabledTest.java | Switch login open flow |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcSamlBrokerArtifactBindingTest.java | Switch login open flow |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcPostBrokerLoginTest.java | Switch login open flow + assertions |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcMultipleTabsBrokerTest.java | Switch login open flow + assertions |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcFirstBrokerLoginTest.java | Switch login open flow + assertions |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcFirstBrokerLoginNewAuthTest.java | Switch login open flow + assertions |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcFirstBrokerLoginDetectExistingUserTest.java | Switch login open flow + assertions |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOIDCBrokerWithSignatureTest.java | Assert AppPage on success |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerWithConsentTest.java | Switch login open flow |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerUiLocalesWithIdpHintTest.java | Switch login open flow |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerUiLocalesEnabledTest.java | Switch login open flow |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerUiLocalesDisabledTest.java | Switch login open flow |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerTransientSessionsTest.java | Switch login open flow |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerTest.java | Switch login open flow + assertions |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerSubMatchIntrospectionTest.java | Switch login open flow |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerStateParameterTest.java | Switch login open flow |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerPromptParameterTest.java | Switch login open flow |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerPromptNoneRedirectTest.java | Switch login open flow |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerPassMaxAgeTest.java | Switch login open flow + assertions |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerParameterForwardTest.java | Switch login open flow |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerNoLoginHintTest.java | Switch login open flow |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerLogoutTest.java | Switch login open flow + assertions |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerLogoutFrontChannelTest.java | Formatting + switch login open flow |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerLoginHintTest.java | Switch login open flow |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerLdapTest.java | Switch login open flow + assertions |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerLdapReadOnlyTest.java | Switch login open flow |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerIdpLinkActionTest.java | Switch login open flow + assertions |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerIdpHintTest.java | Switch login open flow + assertions |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerHiddenIdpHintTest.java | Switch login open flow |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerEventTest.java | Switch login open flow |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcOidcBrokerAcrParameterTest.java | Switch login open flow |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/KcCustomOidcBrokerTest.java | Switch login open flow |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/AbstractUsernameTemplateMapperTest.java | Replace isCurrent() checks |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/AbstractSamlLoginHintTest.java | Switch login open flow |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/AbstractNestedBrokerTest.java | Switch login open flow |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/AbstractDefaultIdpTest.java | Switch login open flow |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/AbstractBrokerTest.java | Switch login open flow |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/AbstractBaseBrokerTest.java | Switch login open flow + page-id logic |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/broker/AbstractAdvancedBrokerTest.java | Switch login open flow + assertion updates |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/actions/TermsAndConditionsTest.java | Replace isCurrent() checks |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/actions/RequiredActionUpdateEmailTestWithVerificationTest.java | Add VerifyEmailPage + assertion updates |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/actions/RequiredActionTotpSetupTest.java | Replace isCurrent() checks |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/actions/RequiredActionPriorityTest.java | Align login page assertion call |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/actions/RequiredActionMultipleActionsTest.java | Replace branchy isCurrent() checks |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/actions/DeleteAccountActionTest.java | Replace error page isCurrent() check |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/actions/AppInitiatedActionTotpSetupTest.java | Replace isCurrent() + improve assertThrows usage |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/actions/AppInitiatedActionTest.java | Replace isCurrent() checks |
| testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/account/custom/CustomAuthFlowOTPTest.java | Replace isCurrent() checks |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/webauthn/pages/WebAuthnRegisterPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/webauthn/pages/WebAuthnLoginPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/webauthn/pages/WebAuthnErrorPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/WaitUtils.java | Remove legacy page wait helper |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/UIUtils.java | Make back-navigation always refresh |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/x509/X509IdentityConfirmationPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/VerifyProfilePage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/VerifyEmailPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/UpdateAccountInformationPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/TermsAndConditionsPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/SetupRecoveryAuthnCodesPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/SelectOrganizationPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/SelectAuthenticatorPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/ResetOtpPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/RegisterPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/PushTheButtonPage.java | Custom assertCurrent() + page-id placeholder |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/ProceedPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/PasswordPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/PageUtils.java | Deprecate legacy page title helper |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/OAuthGrantPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/OAuth2DeviceVerificationPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LogoutSessionsPage.java | Deprecate legacy abstract page |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LogoutConfirmPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginUsernameOnlyPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginUpdateProfilePage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginUpdateProfileEditUsernameAllowedPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginTotpPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginPasswordUpdatePage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginPasswordResetPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginPage.java | Remove legacy realm-specific open/assert logic |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginExpiredPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LoginConfigTotpPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/LanguageComboboxAwarePage.java | Deprecate legacy abstract page |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/InstalledAppRedirectPage.java | Implement getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/InfoPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/IdpLinkEmailPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/IdpLinkActionPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/IdpConfirmOverrideLinkPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/IdpConfirmLinkPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/ErrorPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/EnterRecoveryAuthnCodePage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/EmailUpdatePage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/DeleteCredentialPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/ConsentPage.java | Switch to getExpectedPageId() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/AppPage.java | Deprecate + custom assertCurrent() |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/pages/AbstractPage.java | Centralize assertCurrent() waiting by data-page-id |
| testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/auth/page/login/UpdateEmailPage.java | Switch to getExpectedPageId() |
| @Override | ||
| public boolean isCurrent() { | ||
| return removeDefaultPorts(DroneUtils.getCurrentDriver().getCurrentUrl()).startsWith(OAuthClient.APP_AUTH_ROOT); | ||
| public void assertCurrent() { | ||
| driver.getTitle().equals(RequestType.AUTH_RESPONSE); | ||
| } | ||
|
|
||
| @Override | ||
| public String getExpectedPageId() { | ||
| return null; | ||
| } |
| @Override | ||
| public boolean isCurrent() { | ||
| return DroneUtils.getCurrentDriver().getTitle().equals("PushTheButton") | ||
| && !driver.findElements(By.name("submit1")).isEmpty(); | ||
| public void assertCurrent() { | ||
| driver.getTitle().equals("PushTheButton"); | ||
| } | ||
|
|
||
| @Override | ||
| public String getExpectedPageId() { | ||
| return null; | ||
| } |
| private void waitForPage(AbstractPage page) { | ||
| String expectedPageId = page.getExpectedPageId(); | ||
| try { | ||
| createDefaultWait().ignoring(StaleElementReferenceException.class).until(d -> expectedPageId.equals(getCurrentPageId())); | ||
| } catch (TimeoutException e) { | ||
| Assertions.fail("Expected page '" + expectedPageId + "' to be loaded, but currently on page '" + getCurrentPageId() + "' after timeout"); | ||
| } | ||
| } |
| // Send request with prompt=none | ||
| oauth.loginForm().prompt("none").open(); | ||
|
|
||
| assertFalse(loginPage.isCurrent()); | ||
| assertTrue(appPage.isCurrent()); | ||
| loginPage.assertCurrent(); | ||
| appPage.assertCurrent(); | ||
|
|
| oauth.loginForm().requestUri(loginRequestUri).open(); | ||
| Assertions.assertFalse(errorPage.isCurrent()); | ||
| errorPage.assertCurrent(); | ||
| loginPage.assertCurrent(); | ||
|
|
| webAuthnRegisterPage.assertCurrent(); | ||
| webAuthnRegisterPage.clickRegister(); | ||
|
|
||
| assertThat(webAuthnErrorPage.isCurrent(), is(false)); | ||
| webAuthnErrorPage.assertCurrent(); | ||
| } |
| return passwordPage.isCurrent(); | ||
| appPage.assertCurrent(); | ||
| return true; | ||
| } |
| passwordPage.login(getPassword("user-with-one-configured-otp")); | ||
|
|
||
| Assertions.assertFalse(passwordPage.isCurrent()); | ||
| Assertions.assertFalse(loginPage.isCurrent()); | ||
| passwordPage.assertCurrent(); | ||
| loginPage.assertCurrent(); | ||
| EventAssertion.expectLoginSuccess(events.poll()).userId(managedRealm.admin().users().search("user-with-one-configured-otp").get(0).getId()) |
| // Successfully login with OTP | ||
| loginTotpPage.login(new TimeBasedOTP().generateTOTP("DJmQfC73VGFhw7D4QJ8A")); | ||
| Assertions.assertFalse(loginTotpPage.isCurrent()); | ||
| loginTotpPage.assertCurrent(); | ||
| EventAssertion.expectLoginSuccess(events.poll()).userId(managedRealm.admin().users().search("user-with-one-configured-otp").get(0).getId()) |
| // now provide a username and verify the user is created | ||
| updateAccountInformationPage.updateAccountInformation("valid-username", "user@example.com", "John", "Doe"); | ||
| Assertions.assertFalse(updateAccountInformationPage.isCurrent(), "Should not be on update profile page"); | ||
| updateAccountInformationPage.assertCurrent(); | ||
|
|
28804db to
58a2c2e
Compare
| registerDefaultUser(shouldSuccess); | ||
|
|
||
| displayErrorMessageIfPresent(); | ||
|
|
||
| assertThat(webAuthnErrorPage.isCurrent(), is(!shouldSuccess)); | ||
| webAuthnErrorPage.assertCurrent(); |
| registerDefaultUser(shouldSuccess); | ||
|
|
||
| displayErrorMessageIfPresent(); | ||
|
|
||
| webAuthnErrorPage.assertCurrent(); | ||
| if (!shouldSuccess) { | ||
| assertThat(webAuthnErrorPage.isCurrent(), is(true)); | ||
| return; | ||
| } else { | ||
| assertThat(webAuthnErrorPage.isCurrent(), is(false)); | ||
| } |
| registerDefaultUser(shouldSuccess); | ||
|
|
||
| assertThat(webAuthnErrorPage.isCurrent(), is(!shouldSuccess)); | ||
| webAuthnErrorPage.assertCurrent(); | ||
| if (!shouldSuccess) { |
| registerDefaultUser(shouldSuccess); | ||
|
|
||
| displayErrorMessageIfPresent(); | ||
|
|
||
| assertThat(webAuthnErrorPage.isCurrent(), is(!shouldSuccess)); | ||
| webAuthnErrorPage.assertCurrent(); | ||
| } catch (IOException e) { |
| registerDefaultUser(); | ||
| displayErrorMessageIfPresent(); | ||
| webAuthnErrorPage.assertCurrent(); | ||
|
|
| registerDefaultUser(shouldSuccess); | ||
| displayErrorMessageIfPresent(); | ||
|
|
||
| final boolean isErrorCurrent = webAuthnErrorPage.isCurrent(); | ||
| assertThat(isErrorCurrent, is(!shouldSuccess)); | ||
| webAuthnErrorPage.assertCurrent(); | ||
|
|
| webAuthnRegisterPage.assertCurrent(); | ||
| webAuthnRegisterPage.clickRegister(); | ||
|
|
||
| assertThat(webAuthnErrorPage.isCurrent(), is(false)); | ||
| Assertions.assertTrue(oauth.parseLoginResponse().isSuccess()); | ||
| } |
| logInWithIdp(bc.getIDPAlias(), username, BrokerTestConstants.USER_PASSWORD); | ||
|
|
||
| loginPage.assertCurrent(bc.consumerRealmName()); | ||
| errorPage.assertCurrent(); | ||
|
|
||
| assertEquals("User " + username + " authenticated with identity provider " + bc.getIDPAlias() + " does not exist. Please contact your administrator.", loginPage.getInstruction()); | ||
| } |
| String expectedPageId = page.getExpectedPageId(); | ||
| try { | ||
| createDefaultWait().ignoring(StaleElementReferenceException.class).until(d -> expectedPageId.equals(getCurrentPageId())); |
| registerDefaultUser(shouldSuccess); | ||
|
|
||
| displayErrorMessageIfPresent(); | ||
|
|
||
| assertThat(webAuthnErrorPage.isCurrent(), is(!shouldSuccess)); | ||
| webAuthnErrorPage.assertCurrent(); |
| registerDefaultUser(shouldSuccess); | ||
|
|
||
| displayErrorMessageIfPresent(); | ||
|
|
||
| webAuthnErrorPage.assertCurrent(); | ||
| if (!shouldSuccess) { | ||
| assertThat(webAuthnErrorPage.isCurrent(), is(true)); | ||
| return; | ||
| } else { | ||
| assertThat(webAuthnErrorPage.isCurrent(), is(false)); | ||
| } |
| registerDefaultUser(shouldSuccess); | ||
|
|
||
| assertThat(webAuthnErrorPage.isCurrent(), is(!shouldSuccess)); | ||
| webAuthnErrorPage.assertCurrent(); | ||
| if (!shouldSuccess) { |
| registerDefaultUser(shouldSuccess); | ||
|
|
||
| displayErrorMessageIfPresent(); | ||
|
|
||
| assertThat(webAuthnErrorPage.isCurrent(), is(!shouldSuccess)); | ||
| webAuthnErrorPage.assertCurrent(); |
| registerDefaultUser(); | ||
| displayErrorMessageIfPresent(); | ||
| webAuthnErrorPage.assertCurrent(); | ||
|
|
| registerDefaultUser(shouldSuccess); | ||
| displayErrorMessageIfPresent(); | ||
|
|
||
| final boolean isErrorCurrent = webAuthnErrorPage.isCurrent(); | ||
| assertThat(isErrorCurrent, is(!shouldSuccess)); | ||
| webAuthnErrorPage.assertCurrent(); | ||
|
|
|
|
||
| assertFalse(loginPage.isCurrent()); | ||
| assertTrue(appPage.isCurrent()); | ||
| Assertions.assertTrue(oauth.parseLoginResponse().isSuccess()); |
|
|
||
| protected void assertRedirectedToClientWithError(String expectedError, String expectedErrorDescription) { | ||
| appPage.assertCurrent(); | ||
| Assertions.assertTrue(oauth.parseLoginResponse().isSuccess()); |
| logInWithIdp(bc.getIDPAlias(), username, BrokerTestConstants.USER_PASSWORD); | ||
|
|
||
| loginPage.assertCurrent(bc.consumerRealmName()); | ||
| errorPage.assertCurrent(); |
Unreported flaky test detectedIf the flaky tests below are affected by the changes, please review and update the changes accordingly. Otherwise, a maintainer should report the flaky tests prior to merging the PR. org.keycloak.testsuite.forms.MultipleTabsLoginTest#multipleTabsParallelLoginTestWithAuthSessionExpiredAndRefreshInTab1Keycloak CI - Forms IT (chrome) |
| startLogin(username, password); | ||
|
|
||
| if (loginPage.isCurrent()) { | ||
| return false; | ||
| } | ||
|
|
||
| completeLogin(); |
| registerDefaultUser(shouldSuccess); | ||
|
|
||
| displayErrorMessageIfPresent(); | ||
|
|
||
| assertThat(webAuthnErrorPage.isCurrent(), is(!shouldSuccess)); | ||
| if (!oauth.parseLoginResponse().isSuccess()) { | ||
| webAuthnErrorPage.assertCurrent(); | ||
| } |
| registerDefaultUser(shouldSuccess); | ||
|
|
||
| displayErrorMessageIfPresent(); | ||
|
|
||
| if (!shouldSuccess) { | ||
| assertThat(webAuthnErrorPage.isCurrent(), is(true)); | ||
| if (!oauth.parseLoginResponse().isSuccess()) { | ||
| webAuthnErrorPage.assertCurrent(); | ||
| return; | ||
| } else { | ||
| assertThat(webAuthnErrorPage.isCurrent(), is(false)); | ||
| } |
| webAuthnRegisterPage.clickRegister(); | ||
|
|
||
| assertThat(webAuthnErrorPage.isCurrent(), is(false)); | ||
| webAuthnErrorPage.assertCurrent(); |
| oauth.openLoginForm(); | ||
| loginPage.login("test-user@localhost", "password"); |
| oauth.openLoginForm(); | ||
| loginPage.login("test-user@localhost", "password"); |
| oauth.openLoginForm(); | ||
| loginPage.login("test-user@localhost", "password"); |
| if (!expectedPage.isCurrent() && BrowserDriverUtil.isDriverChrome(driver)) { | ||
| driver.navigate().refresh(); | ||
| } | ||
| driver.navigate().refresh(); |
|
|
||
| private PasswordErrors inputErrors; |
|
|
||
| private AccountErrors inputErrors; |
Unreported flaky test detectedIf the flaky tests below are affected by the changes, please review and update the changes accordingly. Otherwise, a maintainer should report the flaky tests prior to merging the PR. org.keycloak.testsuite.forms.MultipleTabsLoginTest#multipleTabsParallelLoginTestKeycloak CI - Forms IT (firefox) |
Signed-off-by: Lukas Hanusovsky <lhanusov@redhat.com>
| return false; | ||
| } | ||
|
|
||
| completeLogin(); |
| return false; | ||
| } | ||
|
|
||
| completeLogin(); |
| if (!oauth.parseLoginResponse().isSuccess()) { | ||
| webAuthnErrorPage.assertCurrent(); | ||
| } |
| if (!oauth.parseLoginResponse().isSuccess()) { | ||
| webAuthnErrorPage.assertCurrent(); | ||
| return; | ||
| } else { | ||
| assertThat(webAuthnErrorPage.isCurrent(), is(false)); | ||
| } |
| oauth.openLoginForm(); | ||
| loginPage.login("test-user@localhost", "password"); |
| oauth.openLoginForm(); | ||
| loginPage.login("test-user@localhost", "password"); |
| oauth.openLoginForm(); | ||
| loginPage.login("test-user@localhost", "password"); |
Unreported flaky test detectedIf the flaky tests below are affected by the changes, please review and update the changes accordingly. Otherwise, a maintainer should report the flaky tests prior to merging the PR. org.keycloak.testsuite.forms.BrowserFlowTest#testUserWithOneAdditionalFactorOtpSuccessorg.keycloak.testsuite.forms.MultipleTabsLoginTest#testEmptyBaseUrlKeycloak CI - Forms IT (firefox) |
Closes #49087