mirror of
https://github.com/keycloak/keycloak.git
synced 2026-01-10 15:32:05 -03:30
Process locale param in expired page
Closes #39643 Signed-off-by: rmartinc <rmartinc@redhat.com>
This commit is contained in:
parent
04f2c80750
commit
ebe3e15a9e
@ -56,6 +56,7 @@ public class AuthenticationFlowURLHelper {
|
||||
|
||||
logger.debugf("Redirecting to 'page expired' now. Will use last step URL: %s", lastStepUrl);
|
||||
|
||||
LocaleUtil.processLocaleParam(session, realm, authSession);
|
||||
return session.getProvider(LoginFormsProvider.class).setAuthenticationSession(authSession)
|
||||
.setActionUri(lastStepUrl)
|
||||
.setExecution(getExecutionId(authSession))
|
||||
|
||||
@ -25,7 +25,7 @@ import static org.keycloak.testsuite.util.UIUtils.clickLink;
|
||||
/**
|
||||
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
|
||||
*/
|
||||
public class LoginExpiredPage extends AbstractPage {
|
||||
public class LoginExpiredPage extends LanguageComboboxAwarePage {
|
||||
|
||||
@FindBy(id = "loginRestartLink")
|
||||
private WebElement loginRestartLink;
|
||||
@ -42,7 +42,7 @@ public class LoginExpiredPage extends AbstractPage {
|
||||
clickLink(loginContinueLink);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean isCurrent() {
|
||||
return PageUtils.getPageTitle(driver).equals("Page has expired");
|
||||
}
|
||||
|
||||
@ -42,10 +42,14 @@ import org.keycloak.testsuite.admin.ApiUtil;
|
||||
import org.keycloak.testsuite.pages.AppPage;
|
||||
import org.keycloak.testsuite.pages.ErrorPage;
|
||||
import org.keycloak.testsuite.pages.LanguageComboboxAwarePage;
|
||||
import org.keycloak.testsuite.pages.LoginExpiredPage;
|
||||
import org.keycloak.testsuite.pages.LoginPage;
|
||||
import org.keycloak.testsuite.pages.LoginPasswordUpdatePage;
|
||||
import org.keycloak.testsuite.pages.OAuthGrantPage;
|
||||
import org.keycloak.testsuite.pages.PageUtils;
|
||||
import org.keycloak.testsuite.updaters.UserAttributeUpdater;
|
||||
import org.keycloak.testsuite.util.IdentityProviderBuilder;
|
||||
import org.keycloak.testsuite.util.UIUtils;
|
||||
import org.openqa.selenium.Cookie;
|
||||
|
||||
import java.io.IOException;
|
||||
@ -58,7 +62,6 @@ import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.containsString;
|
||||
import static org.hamcrest.Matchers.is;
|
||||
import static org.hamcrest.Matchers.not;
|
||||
import static org.hamcrest.Matchers.startsWith;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
/**
|
||||
@ -82,6 +85,9 @@ public class LoginPageTest extends AbstractI18NTest {
|
||||
@Page
|
||||
protected OAuthGrantPage grantPage;
|
||||
|
||||
@Page
|
||||
protected LoginExpiredPage loginExpiredPage;
|
||||
|
||||
@Rule
|
||||
public AssertEvents events = new AssertEvents(this);
|
||||
|
||||
@ -341,6 +347,31 @@ public class LoginPageTest extends AbstractI18NTest {
|
||||
Assert.assertEquals("Die Aktion ist nicht mehr gültig.", errorPage.getError()); // Action expired.
|
||||
}
|
||||
|
||||
@Test
|
||||
public void languageUserUpdatesOnExpiredPage() throws Exception {
|
||||
try (UserAttributeUpdater userUpdater = UserAttributeUpdater.forUserByUsername(testRealm(), "test-user@localhost")
|
||||
.setRequiredActions(UserModel.RequiredAction.UPDATE_PASSWORD).update()) {
|
||||
// login with a failure attempt
|
||||
loginPage.open();
|
||||
loginPage.login("test-user@localhost", "invalid-password");
|
||||
loginPage.assertCurrent();
|
||||
assertThat(loginPage.getUsernameInputError(), is("Invalid username or password."));
|
||||
loginPage.login("test-user@localhost", "password");
|
||||
changePasswordPage.assertCurrent();
|
||||
|
||||
// navigate back to the login expired page and change language to german
|
||||
UIUtils.navigateBackWithRefresh(driver, loginExpiredPage);
|
||||
errorPage.openLanguage("Deutsch");
|
||||
assertEquals("Deutsch", errorPage.getLanguageDropdownText());
|
||||
assertThat(PageUtils.getPageTitle(driver), is("Diese Seite ist nicht mehr gültig."));
|
||||
|
||||
// continue should show password update in german
|
||||
loginExpiredPage.clickLoginContinueLink();
|
||||
assertEquals("Deutsch", changePasswordPage.getLanguageDropdownText());
|
||||
assertThat(PageUtils.getPageTitle(driver), is("Passwort aktualisieren"));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void realmLocalizationMessagesAreApplied() {
|
||||
String realmLocalizationMessageKey = "loginAccountTitle";
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user