Skip to content

Commit

Permalink
Merge pull request keycloak#2378 from vmuzikar/master
Browse files Browse the repository at this point in the history
Add properties file for some "constants" used in integration tests
  • Loading branch information
stianst committed Mar 21, 2016
2 parents 3e208c1 + 5c3159c commit 50ed089
Show file tree
Hide file tree
Showing 9 changed files with 100 additions and 66 deletions.
5 changes: 5 additions & 0 deletions testsuite/integration-arquillian/tests/base/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,11 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>1.10</version>
</dependency>
</dependencies>

<build>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import org.jboss.arquillian.graphene.page.Page;
import org.keycloak.testsuite.auth.page.AuthRealm;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;

Expand All @@ -36,6 +37,7 @@ public abstract class Login extends AuthRealm {
public static final String OIDC = "openid-connect";
public static final String SAML = "saml";
public static final String LOGIN_ACTION = "login-action";
private String keycloakThemeCssName;

@Override
public UriBuilder createUriBuilder() {
Expand All @@ -58,15 +60,23 @@ public LoginForm form() {
return form;
}

@FindBy(css = "link[href*='login/keycloak/css/login.css']")
private WebElement keycloakTheme;
public void setKeycloakThemeCssName(String name) {
keycloakThemeCssName = name;
}

protected By getKeycloakThemeLocator() {
if (keycloakThemeCssName == null) {
throw new IllegalStateException("keycloakThemeCssName property must be set");
}
return By.cssSelector("link[href*='login/" + keycloakThemeCssName + "/css/login.css']");
}

public void waitForKeycloakThemeNotPresent() {
waitUntilElement(keycloakTheme).is().not().present();
waitUntilElement(getKeycloakThemeLocator()).is().not().present();
}

public void waitForKeycloakThemePresent() {
waitUntilElement(keycloakTheme).is().present();
waitUntilElement(getKeycloakThemeLocator()).is().present();
}

}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
*/
package org.keycloak.testsuite;

import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.keycloak.testsuite.arquillian.TestContext;
import java.util.ArrayList;
import java.util.Arrays;
Expand Down Expand Up @@ -103,6 +105,8 @@ public abstract class AbstractKeycloakTest {

protected UserRepresentation adminUser;

private PropertiesConfiguration constantsProperties;

@Before
public void beforeAbstractKeycloakTest() {
adminClient = Keycloak.getInstance(AuthServerTestEnricher.getAuthServerContextRoot() + "/auth",
Expand Down Expand Up @@ -221,7 +225,7 @@ public void createRealm(String realm) {
realmRepresentation.setEnabled(true);
realmRepresentation.setRegistrationAllowed(true);
adminClient.realms().create(realmRepresentation);

// List<RequiredActionProviderRepresentation> requiredActions = adminClient.realm(realm).flows().getRequiredActions();
// for (RequiredActionProviderRepresentation a : requiredActions) {
// a.setEnabled(false);
Expand All @@ -230,28 +234,28 @@ public void createRealm(String realm) {
// }
}
}

public String createUser(String realm, String username, String password, String ... requiredActions) {
List<String> requiredUserActions = Arrays.asList(requiredActions);

UserRepresentation homer = new UserRepresentation();
homer.setEnabled(true);
homer.setUsername(username);
homer.setRequiredActions(requiredUserActions);

return ApiUtil.createUserAndResetPasswordWithAdminClient(adminClient.realm(realm), homer, password);
}

public void setRequiredActionEnabled(String realm, String requiredAction, boolean enabled, boolean defaultAction) {
AuthenticationManagementResource managementResource = adminClient.realm(realm).flows();

RequiredActionProviderRepresentation action = managementResource.getRequiredAction(requiredAction);
action.setEnabled(enabled);
action.setDefaultAction(defaultAction);

managementResource.updateRequiredAction(requiredAction, action);
}

public void setRequiredActionEnabled(String realm, String userId, String requiredAction, boolean enabled) {
UsersResource usersResource = adminClient.realm(realm).users();

Expand All @@ -264,8 +268,20 @@ public void setRequiredActionEnabled(String realm, String userId, String require
} else if (!enabled && requiredActions.contains(requiredAction)) {
requiredActions.remove(requiredAction);
}

userResource.update(userRepresentation);
}


private void loadConstantsProperties() throws ConfigurationException {
constantsProperties = new PropertiesConfiguration("test-constants.properties");
constantsProperties.setThrowExceptionOnMissing(true);
}

protected PropertiesConfiguration getConstantsProperties() throws ConfigurationException {
if (constantsProperties == null) {
loadConstantsProperties();
}
return constantsProperties;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Some constants used in tests which may vary
ldap-vendors = Active Directory,Red Hat Directory Server,Tivoli,Novell eDirectory,Other
theme-default-name = keycloak
theme-default-css-name = keycloak
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.ui.Select;

import java.util.ArrayList;
import java.util.List;

/**
* @author fkiss, pdrozd
*/
Expand Down Expand Up @@ -188,6 +191,21 @@ public void selectVendor(String vendor) {
vendorSelect.selectByVisibleText(vendor);
}

public List<String> getVendors() {
waitUntilElement(By.id("vendor")).is().present();

List<WebElement> vendorsElements = vendorSelect.getOptions();
List<String> 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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@

package org.keycloak.testsuite.console.page.realm;

import org.keycloak.testsuite.model.Theme;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.ui.Select;
Expand Down Expand Up @@ -58,19 +57,19 @@ public void saveSettings() {
saveButton.click();
}

public void selectLoginTheme(Theme theme) {
loginThemeSelect.selectByVisibleText(theme.getName());
public void selectLoginTheme(String theme) {
loginThemeSelect.selectByVisibleText(theme);
}

public void selecAccountTheme(Theme theme) {
accountThemeSelect.selectByVisibleText(theme.getName());
public void selecAccountTheme(String theme) {
accountThemeSelect.selectByVisibleText(theme);
}

public void selectAdminTheme(Theme theme) {
adminThemeSelect.selectByVisibleText(theme.getName());
public void selectAdminTheme(String theme) {
adminThemeSelect.selectByVisibleText(theme);
}

public void selectEmailTheme(Theme theme) {
emailThemeSelect.selectByVisibleText(theme.getName());
public void selectEmailTheme(String theme) {
emailThemeSelect.selectByVisibleText(theme);
}
}
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -12,6 +15,7 @@
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
Expand Down Expand Up @@ -158,6 +162,21 @@ public void testConnection() throws Exception {
}
}

@Test
public void checkVendors() throws ConfigurationException {
createLdapUserProvider.navigateTo();

List<String> vendorsExpected = (List<String>) (List<?>) getConstantsProperties().getList("ldap-vendors");
List<String> 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) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@
*/
package org.keycloak.testsuite.console.realm;

import org.apache.commons.configuration.ConfigurationException;
import org.jboss.arquillian.graphene.page.Page;
import org.junit.Before;
import org.junit.Test;
import org.keycloak.testsuite.model.Theme;
import org.keycloak.testsuite.console.page.realm.ThemeSettings;

/**
Expand All @@ -41,8 +41,10 @@ public void beforeThemeTest() {
}

@Test
public void changeLoginThemeTest() {
themeSettingsPage.changeLoginTheme(Theme.BASE.getName());
public void changeLoginThemeTest() throws ConfigurationException {
testRealmLoginPage.setKeycloakThemeCssName(getConstantsProperties().getString("theme-default-css-name"));

themeSettingsPage.changeLoginTheme("base");
themeSettingsPage.saveTheme();

testRealmAdminConsolePage.navigateTo();
Expand All @@ -51,7 +53,7 @@ public void changeLoginThemeTest() {
testRealmAdminConsolePage.logOut();

themeSettingsPage.navigateTo();
themeSettingsPage.changeLoginTheme(Theme.KEYCLOAK.getName());
themeSettingsPage.changeLoginTheme(getConstantsProperties().getString("theme-default-name"));
themeSettingsPage.saveTheme();

testRealmAdminConsolePage.navigateTo();
Expand Down

0 comments on commit 50ed089

Please sign in to comment.