mirror of
https://github.com/keycloak/keycloak.git
synced 2026-01-10 15:32:05 -03:30
Refresh back button for chrome 136
Closes #39540 (cherry picked from commit 048bc8851440efe6144e72b67a3c10a80b5d991d) Signed-off-by: rmartinc <rmartinc@redhat.com>
This commit is contained in:
parent
a085906b65
commit
0879e5eda4
4
.github/actions/install-chrome/action.yml
vendored
4
.github/actions/install-chrome/action.yml
vendored
@ -5,7 +5,7 @@ inputs:
|
||||
version:
|
||||
description: The version of Chrome and Chromedriver to install. By default none is installed.
|
||||
required: false
|
||||
default: "135.0.7049.114" # E.g. 135.0.7049.84 (fixed version), default (chrome provided by GHA box)
|
||||
default: default # E.g. 135.0.7049.84 (fixed version), default (chrome provided by GHA box)
|
||||
|
||||
runs:
|
||||
using: composite
|
||||
@ -36,4 +36,4 @@ runs:
|
||||
shell: bash
|
||||
run: |
|
||||
google-chrome --version
|
||||
$CHROMEWEBDRIVER/chromedriver --version
|
||||
$CHROMEWEBDRIVER/chromedriver --version
|
||||
|
||||
@ -3,6 +3,7 @@ package org.keycloak.testsuite.util;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.junit.Assert;
|
||||
import org.keycloak.testsuite.page.AbstractPatternFlyAlert;
|
||||
import org.keycloak.testsuite.pages.AbstractPage;
|
||||
import org.openqa.selenium.By;
|
||||
import org.openqa.selenium.JavascriptExecutor;
|
||||
import org.openqa.selenium.Keys;
|
||||
@ -311,4 +312,22 @@ public final class UIUtils {
|
||||
public static String getRawPageSource() {
|
||||
return getRawPageSource(getCurrentDriver());
|
||||
}
|
||||
|
||||
/**
|
||||
* Navigates the driver back but it refreshes the page if it is not the expected one for
|
||||
* chrome. Chrome 136 does not respect cache-control and refresh is needed
|
||||
* to reach the server again (the page is cached no matter the cache-control
|
||||
* directive returned).
|
||||
* See https://issues.chromium.org/issues/415773538
|
||||
*
|
||||
* @param driver The driver used
|
||||
* @param expectedPage The expected page
|
||||
*/
|
||||
public static void navigateBackWithRefresh(WebDriver driver, AbstractPage expectedPage) {
|
||||
driver.navigate().back();
|
||||
if (!expectedPage.isCurrent() && BrowserDriverUtil.isDriverChrome(driver)) {
|
||||
driver.navigate().refresh();
|
||||
}
|
||||
expectedPage.assertCurrent();
|
||||
}
|
||||
}
|
||||
|
||||
@ -44,6 +44,7 @@ import org.keycloak.testsuite.pages.RegisterPage;
|
||||
import org.keycloak.testsuite.pages.VerifyEmailPage;
|
||||
import org.keycloak.testsuite.util.GreenMailRule;
|
||||
import org.keycloak.testsuite.util.MailUtils;
|
||||
import org.keycloak.testsuite.util.UIUtils;
|
||||
import org.keycloak.testsuite.util.UserBuilder;
|
||||
|
||||
/**
|
||||
@ -150,8 +151,7 @@ public class BrowserButtonsTest extends AbstractChangeImportedUserPasswordsTest
|
||||
updateProfilePage.assertCurrent();
|
||||
|
||||
// Click browser back. Assert on "Page expired" page
|
||||
driver.navigate().back();
|
||||
loginExpiredPage.assertCurrent();
|
||||
UIUtils.navigateBackWithRefresh(driver, loginExpiredPage);
|
||||
|
||||
// Click browser forward. Assert on "updateProfile" page again
|
||||
driver.navigate().forward();
|
||||
@ -182,8 +182,7 @@ public class BrowserButtonsTest extends AbstractChangeImportedUserPasswordsTest
|
||||
updateProfilePage.assertCurrent();
|
||||
|
||||
// Click browser back. Assert on "Page expired" page
|
||||
driver.navigate().back();
|
||||
loginExpiredPage.assertCurrent();
|
||||
UIUtils.navigateBackWithRefresh(driver, loginExpiredPage);
|
||||
|
||||
// Click browser refresh. Assert still on "Page expired" page
|
||||
driver.navigate().refresh();
|
||||
@ -198,8 +197,7 @@ public class BrowserButtonsTest extends AbstractChangeImportedUserPasswordsTest
|
||||
updateProfilePage.assertCurrent();
|
||||
|
||||
// Click browser back. Assert on "Page expired" page
|
||||
driver.navigate().back();
|
||||
loginExpiredPage.assertCurrent();
|
||||
UIUtils.navigateBackWithRefresh(driver, loginExpiredPage);
|
||||
|
||||
// Click "login continue" and assert on updateProfile page
|
||||
loginExpiredPage.clickLoginContinueLink();
|
||||
@ -226,8 +224,7 @@ public class BrowserButtonsTest extends AbstractChangeImportedUserPasswordsTest
|
||||
grantPage.assertCurrent();
|
||||
|
||||
// Click browser back. Assert on "page expired"
|
||||
driver.navigate().back();
|
||||
loginExpiredPage.assertCurrent();
|
||||
UIUtils.navigateBackWithRefresh(driver, loginExpiredPage);
|
||||
|
||||
// Click continue login. Assert on consent screen again
|
||||
loginExpiredPage.clickLoginContinueLink();
|
||||
@ -363,8 +360,7 @@ public class BrowserButtonsTest extends AbstractChangeImportedUserPasswordsTest
|
||||
updatePasswordPage.assertCurrent();
|
||||
|
||||
// Click browser back. Should be on 'page expired'
|
||||
driver.navigate().back();
|
||||
loginExpiredPage.assertCurrent();
|
||||
UIUtils.navigateBackWithRefresh(driver, loginExpiredPage);
|
||||
|
||||
// Click 'continue' should be on updatePasswordPage
|
||||
loginExpiredPage.clickLoginContinueLink();
|
||||
|
||||
@ -56,6 +56,7 @@ import org.keycloak.testsuite.util.MailUtils;
|
||||
import org.keycloak.testsuite.util.oauth.AccessTokenResponse;
|
||||
import org.keycloak.testsuite.util.UserBuilder;
|
||||
import org.keycloak.testsuite.util.AccountHelper;
|
||||
import org.keycloak.testsuite.util.UIUtils;
|
||||
|
||||
import jakarta.mail.internet.MimeMessage;
|
||||
import jakarta.ws.rs.core.Response;
|
||||
@ -904,9 +905,8 @@ public class RegisterTest extends AbstractTestRealmKeycloakTest {
|
||||
driver.navigate().back();
|
||||
driver.navigate().back();
|
||||
events.clear();
|
||||
driver.navigate().back();
|
||||
|
||||
errorPage.assertCurrent();
|
||||
UIUtils.navigateBackWithRefresh(driver, errorPage);
|
||||
Assert.assertEquals("Action expired. Please continue with login now.", errorPage.getError());
|
||||
|
||||
events.expectRegister("registerUserMissingTermsAcceptance", "registerUserMissingTermsAcceptance@email")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user