From 7abf559673a7e76c1f7fcf0ab2b64c1efb46f828 Mon Sep 17 00:00:00 2001 From: Martin Stockhammer Date: Sun, 11 Jun 2017 22:08:22 +0200 Subject: [PATCH] Adding workaround for timing problems with htmlunit --- .../web/test/parent/AbstractSeleniumTest.java | 58 ++++++++++--------- 1 file changed, 32 insertions(+), 26 deletions(-) diff --git a/archiva-modules/archiva-web/archiva-webapp-test/src/test/java/org/apache/archiva/web/test/parent/AbstractSeleniumTest.java b/archiva-modules/archiva-web/archiva-webapp-test/src/test/java/org/apache/archiva/web/test/parent/AbstractSeleniumTest.java index 8e4a340b0..b6741b19b 100644 --- a/archiva-modules/archiva-web/archiva-webapp-test/src/test/java/org/apache/archiva/web/test/parent/AbstractSeleniumTest.java +++ b/archiva-modules/archiva-web/archiva-webapp-test/src/test/java/org/apache/archiva/web/test/parent/AbstractSeleniumTest.java @@ -140,35 +140,41 @@ public abstract class AbstractSeleniumTest WebDriverWait wait = new WebDriverWait(getWebDriver(),30); wait.until(ExpectedConditions.presenceOfElementLocated(By.id("topbar-menu"))); - FluentWait fluentWait = new FluentWait(getWebDriver()).withTimeout(10, TimeUnit.SECONDS); - fluentWait.until( ExpectedConditions.or( - ExpectedConditions.visibilityOfElementLocated(By.id("create-admin-link")), + wait = new WebDriverWait( getWebDriver(), 20 ); + Boolean found = wait.until( ExpectedConditions.or( + ExpectedConditions.visibilityOfElementLocated(By.id("create-admin-link-a")), ExpectedConditions.visibilityOfElementLocated(By.id("login-link-a")))); + if (found) + { + WebElement adminLink = getWebDriver().findElement( By.id( "create-admin-link-a" ) ); + WebElement loginLink = getWebDriver().findElement( By.id( "login-link-a" ) ); - // if not admin user created create one - if ( isElementVisible( "create-admin-link" ) ) - { - Assert.assertFalse( isElementVisible( "login-link-a" ) ); - Assert.assertFalse( isElementVisible( "register-link-a" ) ); - // skygo need to set to true for passing is that work as expected ? - clickLinkWithLocator( "create-admin-link-a"); - wait = new WebDriverWait(getWebDriver(), 5); - wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("user-create"))); - assertCreateAdmin(); - String fullname = getProperty( "ADMIN_FULLNAME" ); - String username = getAdminUsername(); - String mail = getProperty( "ADMIN_EMAIL" ); - String password = getProperty( "ADMIN_PASSWORD" ); - submitAdminData( fullname, mail, password ); - assertUserLoggedIn( username ); - clickLinkWithLocator( "logout-link-a" , false); - } - else - { - Assert.assertTrue( isElementVisible( "login-link-a" ) ); - Assert.assertTrue( isElementVisible( "register-link-a" ) ); - login( getAdminUsername(), getAdminPassword() ); + // if not admin user created create one + if ( adminLink != null && adminLink.isDisplayed() ) + { + + Assert.assertFalse( isElementVisible( "login-link-a" ) ); + Assert.assertFalse( isElementVisible( "register-link-a" ) ); + // skygo need to set to true for passing is that work as expected ? + adminLink.click(); + wait = new WebDriverWait( getWebDriver(), 10 ); + wait.until( ExpectedConditions.visibilityOfElementLocated( By.id( "user-create" ) ) ); + assertCreateAdmin(); + String fullname = getProperty( "ADMIN_FULLNAME" ); + String username = getAdminUsername(); + String mail = getProperty( "ADMIN_EMAIL" ); + String password = getProperty( "ADMIN_PASSWORD" ); + submitAdminData( fullname, mail, password ); + assertUserLoggedIn( username ); + clickLinkWithLocator( "logout-link-a", false ); + } + else if ( loginLink != null && loginLink.isDisplayed() ) + { + Assert.assertTrue( isElementVisible( "login-link-a" ) ); + Assert.assertTrue( isElementVisible( "register-link-a" ) ); + login( getAdminUsername(), getAdminPassword() ); + } } } -- 2.39.5