From 16e9d4294029fe9695e1f6d4b001bf232a88ad87 Mon Sep 17 00:00:00 2001 From: vramik Date: Mon, 15 Dec 2025 19:48:31 +0100 Subject: [PATCH] Flaky test: org.keycloak.testsuite.broker.KcOidcBrokerTest#testPostBrokerLoginFlowWithOTP Closes #43973 Signed-off-by: vramik --- .../testsuite/drone/KeycloakDronePostSetup.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/drone/KeycloakDronePostSetup.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/drone/KeycloakDronePostSetup.java index 58a091f1cceb..d376a1c2da10 100644 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/drone/KeycloakDronePostSetup.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/drone/KeycloakDronePostSetup.java @@ -106,6 +106,15 @@ private void configureFirefoxDriver(WebDriver driver) { private void configureHtmlUnitDriver(WebDriver driver) { if (driver instanceof HtmlUnitDriver htmlUnitDriver) { + var options = htmlUnitDriver.getWebClient().getOptions(); + + // Configure timeout for better compatibility with slower CI environments (especially Windows) + // Default 60 seconds should be sufficient for most scenarios including broker flows with OTP + int timeoutMillis = Integer.parseInt(System.getProperty("htmlunit.timeout", "60000")); + log.infof("Setting HtmlUnit timeout: %d ms", timeoutMillis); + options.setTimeout(timeoutMillis); + + // Configure TLS settings if provided final var keystore = System.getProperty(HTML_UNIT_SSL_KEYSTORE_PROP); final var keystorePassword = System.getProperty(HTML_UNIT_SSL_KEYSTORE_PASSWORD_PROP); final var keystoreType = System.getProperty(HTML_UNIT_SSL_KEYSTORE_TYPE_PROP); @@ -115,7 +124,6 @@ private void configureHtmlUnitDriver(WebDriver driver) { if (keystore != null && keystorePassword != null && keystoreType != null) { log.infof("Keystore '%s', password '%s', type '%s'", keystore, keystorePassword, keystoreType); - var options = htmlUnitDriver.getWebClient().getOptions(); options.setUseInsecureSSL(true); try { options.setSSLClientCertificateKeyStore(new File(keystore).toURI().toURL(), keystorePassword, keystoreType);