diff --git a/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/federation/LdapUserProviderForm.java b/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/federation/LdapUserProviderForm.java index 5a346416a7..efad97667f 100644 --- a/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/federation/LdapUserProviderForm.java +++ b/testsuite/integration-arquillian/tests/other/console/src/main/java/org/keycloak/testsuite/console/page/federation/LdapUserProviderForm.java @@ -11,6 +11,9 @@ import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.ui.Select; +import java.util.ArrayList; +import java.util.List; + /** * @author fkiss, pdrozd */ @@ -181,6 +184,21 @@ public class LdapUserProviderForm extends Form { vendorSelect.selectByVisibleText(vendor); } + public List getVendors() { + waitUntilElement(By.id("vendor")).is().present(); + + List vendorsElements = vendorSelect.getOptions(); + List vendorsString = new ArrayList<>(); + + for (WebElement vendorElement : vendorsElements) { + String text = vendorElement.getText(); + if (text.equals("")) {continue;} + vendorsString.add(text); + } + + return vendorsString; + } + public void selectAuthenticationType(String authenticationType) { waitUntilElement(By.id("authType")).is().present(); authTypeSelect.selectByVisibleText(authenticationType); diff --git a/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/federation/LdapUserFederationTest.java b/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/federation/LdapUserFederationTest.java index a127e418cc..c81c26e8b5 100644 --- a/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/federation/LdapUserFederationTest.java +++ b/testsuite/integration-arquillian/tests/other/console/src/test/java/org/keycloak/testsuite/console/federation/LdapUserFederationTest.java @@ -1,9 +1,12 @@ package org.keycloak.testsuite.console.federation; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import java.util.List; import java.util.Properties; +import org.apache.commons.configuration.ConfigurationException; import org.jboss.arquillian.graphene.page.Page; import org.junit.Ignore; import org.junit.Test; @@ -12,6 +15,7 @@ import org.keycloak.representations.idm.UserFederationProviderRepresentation; import org.keycloak.testsuite.console.AbstractConsoleTest; import org.keycloak.testsuite.console.page.federation.CreateLdapUserProvider; import org.keycloak.util.ldap.LDAPEmbeddedServer; +import org.openqa.selenium.WebElement; /** * @author fkiss, pdrozd @@ -141,6 +145,21 @@ public class LdapUserFederationTest extends AbstractConsoleTest { } } + @Test + public void checkVendors() throws ConfigurationException { + createLdapUserProvider.navigateTo(); + + List vendorsExpected = (List) (List) getConstantsProperties().getList("ldap-vendors"); + List vendorsActual = createLdapUserProvider.form().getVendors(); + + int vendorsExpectedSize = vendorsExpected.size(); + int vendorsActualSize = vendorsActual.size(); + assertTrue("Expected vendors count: " + vendorsExpectedSize + "; actual count: " + vendorsActualSize, + vendorsExpectedSize == vendorsActualSize); + + assertTrue("Vendors list doesn't match", vendorsExpected.containsAll(vendorsActual)); + } + private void assertLdapProviderSetting(UserFederationProviderRepresentation ufpr, String name, int priority, String editMode, String syncRegistrations, String vendor, String searchScope, String connectionPooling, String pagination, String enableAccountAfterPasswordUpdate) {