keycloak-aplcache
Changes
testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/clients/Client.java 2(+0 -2)
testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/clients/CreateClientForm.java 65(+24 -41)
testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/clients/settings/ClientSettingsForm.java 11(+0 -11)
testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/fragment/OnOffSwitch.java 3(+2 -1)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/AbstractClientTest.java 87(+73 -14)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/ClientCredentialsTest.java 5(+3 -2)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/ClientMappersTest.java 3(+2 -1)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/ClientRolesTest.java 3(+2 -1)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/ClientSettingsTest.java 49(+25 -24)
Details
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/clients/Client.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/clients/Client.java
index d1e37da..bb70843 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/clients/Client.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/clients/Client.java
@@ -1,11 +1,9 @@
package org.keycloak.testsuite.console.page.clients;
-import java.util.List;
import org.jboss.arquillian.graphene.fragment.Root;
import org.keycloak.admin.client.resource.ClientResource;
import org.keycloak.testsuite.console.page.fragment.Breadcrumb;
import static org.keycloak.testsuite.console.page.fragment.Breadcrumb.BREADCRUMB_XPATH;
-import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/clients/CreateClientForm.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/clients/CreateClientForm.java
index c3f9428..cadd1a7 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/clients/CreateClientForm.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/clients/CreateClientForm.java
@@ -6,6 +6,7 @@ import java.util.Map;
import org.jboss.arquillian.graphene.page.Page;
import org.keycloak.representations.idm.ClientRepresentation;
import static org.keycloak.testsuite.auth.page.login.OIDCLogin.OIDC;
+import static org.keycloak.testsuite.console.page.clients.CreateClientForm.OidcAccessType.*;
import org.keycloak.testsuite.console.page.fragment.OnOffSwitch;
import org.keycloak.testsuite.page.Form;
import static org.keycloak.testsuite.page.Form.getInputValue;
@@ -73,42 +74,22 @@ public class CreateClientForm extends Form {
setName(client.getName());
setEnabled(client.isEnabled());
setConsentRequired(client.isConsentRequired());
- setStandardFlowEnabled(client.isStandardFlowEnabled());
- setImplicitFlowEnabled(client.isImplicitFlowEnabled());
- setDirectAccessGrantsEnabled(client.isDirectAccessGrantsEnabled());
setProtocol(client.getProtocol());
if (OIDC.equals(client.getProtocol())) {
setAccessType(client);
if (!client.isBearerOnly()) {
- if (!client.isPublicClient()) {
+ setStandardFlowEnabled(client.isStandardFlowEnabled());
+ setDirectAccessGrantsEnabled(client.isDirectAccessGrantsEnabled());
+ if (client.isPublicClient()) {
+ setImplicitFlowEnabled(client.isImplicitFlowEnabled());
+ } else {//confidential
setServiceAccountsEnabled(client.isServiceAccountsEnabled());
}
- setRedirectUris(client.getRedirectUris());
- }
- }
- }
-
- public ClientRepresentation getValues() {
- ClientRepresentation values = new ClientRepresentation();
- values.setClientId(getClientId());
- values.setName(getName());
- values.setEnabled(isEnabled());
- values.setConsentRequired(isConsentRequired());
- values.setStandardFlowEnabled(isStandardFlowEnabled());
- values.setImplicitFlowEnabled(isImplicitFlowEnabled());
- values.setDirectAccessGrantsEnabled(isDirectAccessGrantsEnabled());
- values.setProtocol(getProtocol());
- if (OIDC.equals(values.getProtocol())) {
- values.setBearerOnly(isBearerOnly());
- if (!values.isBearerOnly()) {
- values.setPublicClient(isPublicClient());
- if (!values.isPublicClient()) {
- values.setServiceAccountsEnabled(isServiceAccountsEnabled());
+ if (client.isStandardFlowEnabled() || client.isImplicitFlowEnabled()) {
+ setRedirectUris(client.getRedirectUris());
}
- values.setRedirectUris(getRedirectUris());
}
}
- return values;
}
public String getClientId() {
@@ -135,27 +116,29 @@ public class CreateClientForm extends Form {
enabledSwitch.setOn(enabled);
}
- public static final String BEARER_ONLY = "bearer-only";
- public static final String PUBLIC = "public";
- public static final String CONFIDENTIAL = "confidential";
+ public enum OidcAccessType {
+ BEARER_ONLY("bearer-only"),
+ PUBLIC("public"),
+ CONFIDENTIAL("confidential");
- public boolean isBearerOnly() {
- return BEARER_ONLY.equals(
- accessTypeSelect.getFirstSelectedOption().getAttribute(VALUE));
- }
+ private final String name;
- public boolean isPublicClient() {
- return PUBLIC.equals(
- accessTypeSelect.getFirstSelectedOption().getAttribute(VALUE));
- }
+ private OidcAccessType(String name) {
+ this.name = name;
+ }
+ public String getName() {
+ return name;
+ }
+ }
+
public void setAccessType(ClientRepresentation client) {
if (client.isBearerOnly()) {
- accessTypeSelect.selectByVisibleText(BEARER_ONLY);
+ accessTypeSelect.selectByVisibleText(BEARER_ONLY.getName());
} else if (client.isPublicClient()) {
- accessTypeSelect.selectByVisibleText(PUBLIC);
+ accessTypeSelect.selectByVisibleText(PUBLIC.getName());
} else {
- accessTypeSelect.selectByVisibleText(CONFIDENTIAL);
+ accessTypeSelect.selectByVisibleText(CONFIDENTIAL.getName());
}
}
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/clients/settings/ClientSettingsForm.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/clients/settings/ClientSettingsForm.java
index a5f43fd..2eaa5d0 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/clients/settings/ClientSettingsForm.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/clients/settings/ClientSettingsForm.java
@@ -87,17 +87,6 @@ public class ClientSettingsForm extends CreateClientForm {
}
@Override
- public ClientRepresentation getValues() {
- ClientRepresentation values = super.getValues();
- values.setBaseUrl(getBaseUrl());
- if (OIDC.equals(values.getProtocol())) {
- values.setAdminUrl(getAdminUrl());
- values.setWebOrigins(getWebOrigins());
- }
- return values;
- }
-
- @Override
public void setConsentRequired(boolean value) {
consentRequired.setOn(value);
}
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/fragment/OnOffSwitch.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/fragment/OnOffSwitch.java
index 118e058..82eb0f6 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/fragment/OnOffSwitch.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/console/page/fragment/OnOffSwitch.java
@@ -17,6 +17,7 @@
*/
package org.keycloak.testsuite.console.page.fragment;
+import java.util.List;
import org.jboss.arquillian.graphene.fragment.Root;
import org.jboss.arquillian.test.api.ArquillianResource;
import static org.keycloak.testsuite.util.WaitUtils.waitAjaxForElement;
@@ -51,7 +52,7 @@ public class OnOffSwitch {
private void click() {
waitAjaxForElement(root);
- actions.moveToElement(root.findElements(By.tagName("span")).get(0))
+ actions.moveToElement(root.findElement(By.tagName("label")))
.click().build().perform();
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/AbstractClientTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/AbstractClientTest.java
index cb2388f..b53b74f 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/AbstractClientTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/AbstractClientTest.java
@@ -2,17 +2,36 @@ package org.keycloak.testsuite.console.clients;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import org.jboss.arquillian.graphene.page.Page;
+import static org.junit.Assert.assertEquals;
import org.junit.Before;
import org.keycloak.representations.idm.ClientRepresentation;
-import org.keycloak.representations.idm.RoleRepresentation;
import static org.keycloak.testsuite.auth.page.login.OIDCLogin.OIDC;
import static org.keycloak.testsuite.auth.page.login.OIDCLogin.SAML;
import org.keycloak.testsuite.console.AbstractConsoleTest;
import org.keycloak.testsuite.console.page.clients.Client;
import org.keycloak.testsuite.console.page.clients.Clients;
import org.keycloak.testsuite.console.page.clients.CreateClient;
+import org.keycloak.testsuite.console.page.clients.CreateClientForm.OidcAccessType;
+import static org.keycloak.testsuite.console.page.clients.CreateClientForm.OidcAccessType.*;
+import static org.keycloak.testsuite.console.page.clients.CreateClientForm.SAMLClientSettingsForm.SAML_ASSERTION_CONSUMER_URL_POST;
+import static org.keycloak.testsuite.console.page.clients.CreateClientForm.SAMLClientSettingsForm.SAML_ASSERTION_CONSUMER_URL_REDIRECT;
+import static org.keycloak.testsuite.console.page.clients.CreateClientForm.SAMLClientSettingsForm.SAML_ASSERTION_SIGNATURE;
+import static org.keycloak.testsuite.console.page.clients.CreateClientForm.SAMLClientSettingsForm.SAML_AUTHNSTATEMENT;
+import static org.keycloak.testsuite.console.page.clients.CreateClientForm.SAMLClientSettingsForm.SAML_CLIENT_SIGNATURE;
+import static org.keycloak.testsuite.console.page.clients.CreateClientForm.SAMLClientSettingsForm.SAML_ENCRYPT;
+import static org.keycloak.testsuite.console.page.clients.CreateClientForm.SAMLClientSettingsForm.SAML_FORCE_NAME_ID_FORMAT;
+import static org.keycloak.testsuite.console.page.clients.CreateClientForm.SAMLClientSettingsForm.SAML_FORCE_POST_BINDING;
+import static org.keycloak.testsuite.console.page.clients.CreateClientForm.SAMLClientSettingsForm.SAML_MULTIVALUED_ROLES;
+import static org.keycloak.testsuite.console.page.clients.CreateClientForm.SAMLClientSettingsForm.SAML_NAME_ID_FORMAT;
+import static org.keycloak.testsuite.console.page.clients.CreateClientForm.SAMLClientSettingsForm.SAML_SERVER_SIGNATURE;
+import static org.keycloak.testsuite.console.page.clients.CreateClientForm.SAMLClientSettingsForm.SAML_SIGNATURE_ALGORITHM;
+import static org.keycloak.testsuite.console.page.clients.CreateClientForm.SAMLClientSettingsForm.SAML_SIGNATURE_CANONICALIZATION_METHOD;
+import static org.keycloak.testsuite.console.page.clients.CreateClientForm.SAMLClientSettingsForm.SAML_SINGLE_LOGOUT_SERVICE_URL_POST;
+import static org.keycloak.testsuite.console.page.clients.CreateClientForm.SAMLClientSettingsForm.SAML_SINGLE_LOGOUT_SERVICE_URL_REDIRECT;
import static org.keycloak.testsuite.util.AttributesAssert.assertEqualsBooleanAttributes;
import static org.keycloak.testsuite.util.AttributesAssert.assertEqualsListAttributes;
import static org.keycloak.testsuite.util.AttributesAssert.assertEqualsStringAttributes;
@@ -50,34 +69,68 @@ public abstract class AbstractClientTest extends AbstractConsoleTest {
createClientPage.form().save();
}
- public static ClientRepresentation createClientRepresentation(String clientId, String... redirectUris) {
+ private static ClientRepresentation createClientRep(String clientId) {
ClientRepresentation client = new ClientRepresentation();
client.setClientId(clientId);
client.setEnabled(true);
client.setConsentRequired(false);
- client.setStandardFlowEnabled(true);
- client.setImplicitFlowEnabled(false);
- client.setDirectAccessGrantsEnabled(true);
-
+ return client;
+ }
+
+ public static ClientRepresentation createOidcClientRep(OidcAccessType accessType, String clientId, String... redirectUris) {
+ ClientRepresentation client = createClientRep(clientId);
+
client.setProtocol(OIDC);
- client.setBearerOnly(false);
- client.setPublicClient(false);
- client.setServiceAccountsEnabled(false);
+ switch (accessType) {
+ case BEARER_ONLY:
+ client.setBearerOnly(true);
+ break;
+ case PUBLIC:
+ client.setBearerOnly(false);
+ client.setPublicClient(true);
+ client.setStandardFlowEnabled(true);
+ client.setImplicitFlowEnabled(false);
+ client.setDirectAccessGrantsEnabled(true);
+ setRedirectUris(client, redirectUris);
+ break;
+ case CONFIDENTIAL:
+ client.setBearerOnly(false);
+ client.setPublicClient(false);
+ client.setStandardFlowEnabled(true);
+ client.setDirectAccessGrantsEnabled(true);
+ client.setServiceAccountsEnabled(true);
+ setRedirectUris(client, redirectUris);
+ break;
+ }
+ return client;
+ }
+
+ public static ClientRepresentation createSamlClientRep(String clinetId, Map<String, String> samlAttributes) {
+ ClientRepresentation client = createClientRep(clinetId);
+
+ client.setProtocol(SAML);
+ client.setFrontchannelLogout(true);
+ client.setAttributes(samlAttributes);
+
+ return client;
+ }
+
+ private static void setRedirectUris(ClientRepresentation client, String... redirectUris) {
List<String> redirectUrisList = new ArrayList();
redirectUrisList.addAll(Arrays.asList(redirectUris));
client.setRedirectUris(redirectUrisList);
-
- //set expected web origins to newClient
+ }
+
+ protected static void setExpectedWebOrigins(ClientRepresentation client) {
List<String> webOrigins = new ArrayList<>();
- for (String redirectUri : redirectUris) {
+ for (String redirectUri : client.getRedirectUris()) {
//parse webOrigin from redirectUri: take substring from index 0 to
//first occurence of "/", excluded "http://" by starting search on index 7
webOrigins.add(redirectUri.substring(0, redirectUri.indexOf("/", 7)));
}
client.setWebOrigins(webOrigins);
- return client;
}
public ClientRepresentation findClientByClientId(String clientId) {
@@ -96,7 +149,7 @@ public abstract class AbstractClientTest extends AbstractConsoleTest {
assertEqualsStringAttributes(c1.getName(), c2.getName());
assertEqualsBooleanAttributes(c1.isEnabled(), c2.isEnabled());
assertEqualsBooleanAttributes(c1.isConsentRequired(), c2.isConsentRequired());
- assertEqualsBooleanAttributes(c1.isDirectGrantsOnly(), c2.isDirectGrantsOnly());
+ assertEqualsBooleanAttributes(c1.isDirectAccessGrantsEnabled(), c2.isDirectAccessGrantsEnabled());
assertEqualsStringAttributes(c1.getProtocol(), c2.getProtocol());
assertEqualsBooleanAttributes(c1.isBearerOnly(), c2.isBearerOnly());
@@ -111,5 +164,11 @@ public abstract class AbstractClientTest extends AbstractConsoleTest {
assertEqualsStringAttributes(c1.getAdminUrl(), c2.getAdminUrl());
assertEqualsListAttributes(c1.getWebOrigins(), c2.getWebOrigins());
}
+
+ public void assertClientSamlAttributes(Map<String, String> expected, Map<String, String> actual) {
+ for (String key : expected.keySet()) {
+ assertEquals("Expected attribute " + key, expected.get(key), actual.get(key));
+ }
+ }
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/ClientCredentialsTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/ClientCredentialsTest.java
index a12e684..a4c4698 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/ClientCredentialsTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/ClientCredentialsTest.java
@@ -26,7 +26,8 @@ import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
import org.keycloak.representations.idm.ClientRepresentation;
-import static org.keycloak.testsuite.console.clients.AbstractClientTest.createClientRepresentation;
+import static org.keycloak.testsuite.console.clients.AbstractClientTest.createOidcClientRep;
+import static org.keycloak.testsuite.console.page.clients.CreateClientForm.OidcAccessType.CONFIDENTIAL;
import org.keycloak.testsuite.console.page.clients.credentials.ClientCredentials;
import org.keycloak.testsuite.console.page.clients.credentials.ClientCredentialsGeneratePrivateKeys;
import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlEquals;
@@ -46,7 +47,7 @@ public class ClientCredentialsTest extends AbstractClientTest {
@Before
public void beforeClientsTest() {
- newClient = createClientRepresentation(TEST_CLIENT_ID, TEST_REDIRECT_URIS);
+ newClient = createOidcClientRep(CONFIDENTIAL, TEST_CLIENT_ID, TEST_REDIRECT_URIS);
testRealmResource().clients().create(newClient).close();
ClientRepresentation found = findClientByClientId(TEST_CLIENT_ID);
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/ClientMappersTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/ClientMappersTest.java
index a386d5f..0d26465 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/ClientMappersTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/ClientMappersTest.java
@@ -31,6 +31,7 @@ import static org.junit.Assert.*;
import org.junit.Before;
import org.keycloak.representations.idm.ClientRepresentation;
import org.keycloak.representations.idm.ProtocolMapperRepresentation;
+import static org.keycloak.testsuite.console.page.clients.CreateClientForm.OidcAccessType.CONFIDENTIAL;
import org.keycloak.testsuite.console.page.clients.mappers.ClientMapper;
import org.keycloak.testsuite.console.page.clients.mappers.ClientMappers;
import org.keycloak.testsuite.console.page.clients.mappers.CreateClientMappers;
@@ -56,7 +57,7 @@ public class ClientMappersTest extends AbstractClientTest {
@Before
public void beforeClientMappersTest() {
- ClientRepresentation newClient = createClientRepresentation(TEST_CLIENT_ID, TEST_REDIRECT_URIS);
+ ClientRepresentation newClient = createOidcClientRep(CONFIDENTIAL, TEST_CLIENT_ID, TEST_REDIRECT_URIS);
testRealmResource().clients().create(newClient).close();
id = findClientByClientId(TEST_CLIENT_ID).getId();
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/ClientRolesTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/ClientRolesTest.java
index f22b13d..67a56aa 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/ClientRolesTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/ClientRolesTest.java
@@ -9,6 +9,7 @@ import static org.junit.Assert.*;
import org.junit.Before;
import org.keycloak.representations.idm.ClientRepresentation;
import org.keycloak.representations.idm.RoleRepresentation;
+import static org.keycloak.testsuite.console.page.clients.CreateClientForm.OidcAccessType.CONFIDENTIAL;
import org.keycloak.testsuite.console.page.clients.roles.ClientRole;
import org.keycloak.testsuite.console.page.clients.roles.ClientRoles;
import org.keycloak.testsuite.console.page.clients.roles.CreateClientRole;
@@ -38,7 +39,7 @@ public class ClientRolesTest extends AbstractClientTest {
@Before
public void beforeClientRolesTest() {
- ClientRepresentation newClient = createClientRepresentation(TEST_CLIENT_ID, TEST_REDIRECT_URIS);
+ ClientRepresentation newClient = createOidcClientRep(CONFIDENTIAL, TEST_CLIENT_ID, TEST_REDIRECT_URIS);
testRealmResource().clients().create(newClient).close();
id = findClientByClientId(TEST_CLIENT_ID).getId();
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/ClientSettingsTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/ClientSettingsTest.java
index 85bc433..567a476 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/ClientSettingsTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/ClientSettingsTest.java
@@ -29,6 +29,7 @@ import org.junit.Test;
import org.keycloak.representations.idm.ClientRepresentation;
import static org.keycloak.testsuite.admin.ApiUtil.getCreatedId;
import static org.keycloak.testsuite.auth.page.login.Login.SAML;
+import static org.keycloak.testsuite.console.page.clients.CreateClientForm.OidcAccessType.*;
import org.keycloak.testsuite.console.page.clients.settings.ClientSettings;
import static org.keycloak.testsuite.console.page.clients.CreateClientForm.SAMLClientSettingsForm.*;
import static org.keycloak.testsuite.util.WaitUtils.pause;
@@ -48,10 +49,12 @@ public class ClientSettingsTest extends AbstractClientTest {
@Test
public void crudOIDCConfidential() {
- newClient = createClientRepresentation("oidc-confidential", TEST_REDIRECT_URIS);
+ newClient = createOidcClientRep(CONFIDENTIAL, "oidc-confidential", TEST_REDIRECT_URIS);
createClient(newClient);
assertFlashMessageSuccess();
+ setExpectedWebOrigins(newClient);
+
// read & verify
ClientRepresentation found = findClientByClientId(newClient.getClientId());
assertNotNull("Client " + newClient.getClientId() + " was not found.", found);
@@ -93,8 +96,21 @@ public class ClientSettingsTest extends AbstractClientTest {
@Test
public void createOIDCPublic() {
- newClient = createClientRepresentation("oidc-public", TEST_REDIRECT_URIS);
- newClient.setPublicClient(true);
+ newClient = createOidcClientRep(PUBLIC, "oidc-public", TEST_REDIRECT_URIS);
+ createClient(newClient);
+ assertFlashMessageSuccess();
+
+ setExpectedWebOrigins(newClient);
+
+ ClientRepresentation found = findClientByClientId(newClient.getClientId());
+ assertNotNull("Client " + newClient.getClientId() + " was not found.", found);
+ assertClientSettingsEqual(newClient, found);
+ }
+
+ @Test
+ public void createOIDCPublicWithoutRedirectURIs() {
+ newClient = createOidcClientRep(PUBLIC, "oidc-public");
+ newClient.setStandardFlowEnabled(false);
createClient(newClient);
assertFlashMessageSuccess();
@@ -105,10 +121,7 @@ public class ClientSettingsTest extends AbstractClientTest {
@Test
public void createOIDCBearerOnly() {
- newClient = createClientRepresentation("oidc-bearer-only", TEST_REDIRECT_URIS);
- newClient.setBearerOnly(true);
- newClient.setRedirectUris(null);
- newClient.setWebOrigins(null);
+ newClient = createOidcClientRep(BEARER_ONLY, "oidc-bearer-only");
createClient(newClient);
assertFlashMessageSuccess();
@@ -119,22 +132,17 @@ public class ClientSettingsTest extends AbstractClientTest {
@Test
public void createSAML() {
- newClient = createClientRepresentation("saml", "http://example.test/app/*");
- newClient.setProtocol(SAML);
- newClient.setFrontchannelLogout(true);
- newClient.setRedirectUris(null);
- newClient.setWebOrigins(null);
- newClient.setAttributes(getSAMLAttributes());
-
+ newClient = createSamlClientRep("saml", getSAMLAttributes());
createClient(newClient);
assertFlashMessageSuccess();
ClientRepresentation found = findClientByClientId(newClient.getClientId());
+ System.out.println("...." + found.isFrontchannelLogout());
assertNotNull("Client " + newClient.getClientId() + " was not found.", found);
assertClientSettingsEqual(newClient, found);
assertClientSamlAttributes(getSAMLAttributes(), found.getAttributes());
}
-
+
@Test
public void invalidSettings() {
clientsPage.table().createClient();
@@ -148,7 +156,7 @@ public class ClientSettingsTest extends AbstractClientTest {
// @Test
public void createInconsistentClient() {
- ClientRepresentation c = createClientRepresentation("inconsistent_client");
+ ClientRepresentation c = createOidcClientRep(CONFIDENTIAL, "inconsistent_client");
c.setPublicClient(true);
c.setBearerOnly(true);
@@ -164,7 +172,7 @@ public class ClientSettingsTest extends AbstractClientTest {
public void createClients(String clientIdPrefix, int count) {
for (int i = 0; i < count; i++) {
String clientId = String.format("%s%02d", clientIdPrefix, i);
- ClientRepresentation cr = createClientRepresentation(clientId, "http://example.test/*");
+ ClientRepresentation cr = createOidcClientRep(CONFIDENTIAL, clientId, "http://example.test/*");
Timer.time();
Response r = testRealmResource().clients().create(cr);
r.close();
@@ -198,11 +206,4 @@ public class ClientSettingsTest extends AbstractClientTest {
attributes.put(SAML_SINGLE_LOGOUT_SERVICE_URL_REDIRECT, "http://example3.test");
return attributes;
}
-
- private void assertClientSamlAttributes(Map<String, String> expected, Map<String, String> actual) {
- for (String key : expected.keySet()) {
- assertEquals("Expected attribute " + key, expected.get(key), actual.get(key));
- }
- }
-
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/ClientsTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/ClientsTest.java
index 14e690b..70b33f8 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/ClientsTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/clients/ClientsTest.java
@@ -26,6 +26,7 @@ import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
import org.keycloak.representations.idm.ClientRepresentation;
+import static org.keycloak.testsuite.console.page.clients.CreateClientForm.OidcAccessType.CONFIDENTIAL;
import org.keycloak.testsuite.console.page.clients.settings.ClientSettings;
import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlEquals;
@@ -42,7 +43,7 @@ public class ClientsTest extends AbstractClientTest {
@Before
public void beforeClientsTest() {
- newClient = createClientRepresentation(TEST_CLIENT_ID, TEST_REDIRECT_URIS);
+ newClient = createOidcClientRep(CONFIDENTIAL, TEST_CLIENT_ID, TEST_REDIRECT_URIS);
testRealmResource().clients().create(newClient).close();
ClientRepresentation found = findClientByClientId(TEST_CLIENT_ID);
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/events/AdminEventsTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/events/AdminEventsTest.java
index 74418dd..c257564 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/events/AdminEventsTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/console/events/AdminEventsTest.java
@@ -18,6 +18,7 @@ import javax.ws.rs.core.Response;
import java.util.List;
import static org.junit.Assert.assertEquals;
+import static org.keycloak.testsuite.console.page.clients.CreateClientForm.OidcAccessType.CONFIDENTIAL;
/**
@@ -48,7 +49,7 @@ public class AdminEventsTest extends AbstractConsoleTest {
@Test
public void clientsAdminEventsTest() {
- newClient = AbstractClientTest.createClientRepresentation("test_client", "http://example.test/test_client/*");
+ newClient = AbstractClientTest.createOidcClientRep(CONFIDENTIAL, "test_client", "http://example.test/test_client/*");
Response response = clientsPage.clientsResource().create(newClient);
String id = ApiUtil.getCreatedId(response);
response.close();