keycloak-aplcache

KEYCLOAK-4179

2/16/2017 7:50:10 AM

Details

diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/AbstractJSConsoleExampleAdapterTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/AbstractJSConsoleExampleAdapterTest.java
index 9ff8596..d0eeec6 100755
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/AbstractJSConsoleExampleAdapterTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/adapter/example/AbstractJSConsoleExampleAdapterTest.java
@@ -35,6 +35,7 @@ import org.keycloak.testsuite.auth.page.login.OAuthGrant;
 import org.keycloak.testsuite.console.page.events.Config;
 import org.keycloak.testsuite.console.page.events.LoginEvents;
 import org.openqa.selenium.By;
+import org.openqa.selenium.TimeoutException;
 import org.openqa.selenium.WebElement;
 
 import java.io.File;
@@ -414,6 +415,30 @@ public abstract class AbstractJSConsoleExampleAdapterTest extends AbstractExampl
         assertTrue("TimeSkew was: " + timeSkew + ", but should be ~-40", timeSkew + 40  <= TIME_SKEW_TOLERANCE);
     }
 
+    // KEYCLOAK-4179
+    @Test
+    public void testOneSecondTimeSkewTokenUpdate() {
+        setTimeOffset(1);
+
+        logInAndInit("standard");
+
+        jsConsoleTestAppPage.refreshToken();
+
+        waitUntilElement(jsConsoleTestAppPage.getEventsElement()).text().contains("Auth Refresh Success");
+        waitUntilElement(jsConsoleTestAppPage.getOutputElement()).text().not().contains("Failed to refresh token");
+
+        try {
+            // The events element should contain "Auth logout" but we need to wait for it
+            // and text().not().contains() doesn't wait. With KEYCLOAK-4179 it took some time for "Auth Logout" to be present
+            waitUntilElement(jsConsoleTestAppPage.getEventsElement()).text().contains("Auth Logout");
+
+            throw new RuntimeException("The events element shouldn't contain \"Auth Logout\" text");
+        } catch (TimeoutException e) {
+            // OK
+        }
+
+    }
+
     @Test
     public void testLocationHeaderInResponse() {
         logInAndInit("standard");