package org.keycloak.testsuite.console.federation;
import org.jboss.arquillian.graphene.page.Page;
import org.junit.Before;
import org.junit.Test;
import org.keycloak.testsuite.console.AbstractConsoleTest;
import org.keycloak.testsuite.console.page.federation.CreateKerberosUserProvider;
import org.keycloak.testsuite.console.page.federation.UserFederation;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
/**
* @author Vaclav Muzikar <vmuzikar@redhat.com>
*/
public class UserFederationTest extends AbstractConsoleTest {
@Page
private UserFederation userFederationPage;
@Page
private CreateKerberosUserProvider createKerberosUserProviderPage;
@Before
public void beforeUserFederationTest() {
userFederationPage.navigateTo();
}
@Test
public void availableProviders() {
assertTrue(userFederationPage.hasProvider("ldap"));
assertTrue(userFederationPage.hasProvider("kerberos"));
}
@Test
public void addRemoveFederation() {
final String federationName = "KerberosProvider";
userFederationPage.addFederation("kerberos");
assertTrue(createKerberosUserProviderPage.isCurrent());
createKerberosUserProviderPage.form().setConsoleDisplayNameInput(federationName);
createKerberosUserProviderPage.form().setKerberosRealmInput("KEYCLOAK.ORG");
createKerberosUserProviderPage.form().setServerPrincipalInput("HTTP/localhost@KEYCLOAK.ORG");
createKerberosUserProviderPage.form().setKeyTabInput("http.keytab");
createKerberosUserProviderPage.form().save();
assertAlertSuccess();
userFederationPage.navigateTo();
assertEquals(1, userFederationPage.table().getFederationsCount());
userFederationPage.table().editFederation(federationName);
assertEquals(federationName, createKerberosUserProviderPage.form().getConsoleDisplayNameInput());
userFederationPage.navigateTo();
userFederationPage.table().removeFederation(federationName);
assertEquals(0, userFederationPage.table().getFederationsCount());
}
}