diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/exportimport/AbstractExportImportTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/exportimport/AbstractExportImportTest.java
deleted file mode 100644
index 838174d521..0000000000
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/exportimport/AbstractExportImportTest.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright 2016 Red Hat, Inc. and/or its affiliates
- * and other contributors as indicated by the @author tags.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.keycloak.testsuite.exportimport;
-
-import org.jboss.arquillian.container.spi.Container;
-import org.jboss.arquillian.container.spi.client.container.LifecycleException;
-import org.keycloak.exportimport.ExportImportConfig;
-import org.keycloak.testsuite.AbstractKeycloakTest;
-
-import java.util.HashSet;
-import java.util.Properties;
-import java.util.Set;
-
-/**
- * @author Marek Posolda
- */
-public abstract class AbstractExportImportTest extends AbstractKeycloakTest {
-
-
- public void clearExportImportProperties() {
- // Clear export/import properties after test
- Properties systemProps = System.getProperties();
- Set propsToRemove = new HashSet();
-
- for (Object key : systemProps.keySet()) {
- if (key.toString().startsWith(ExportImportConfig.PREFIX)) {
- propsToRemove.add(key.toString());
- }
- }
-
- for (String propToRemove : propsToRemove) {
- systemProps.remove(propToRemove);
- }
- }
-
-
- public void restartServer() throws LifecycleException {
- Container arqContainer = suiteContext.getAuthServerInfo().getArquillianContainer();
- arqContainer.stop();
- arqContainer.start();
- }
-}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/exportimport/ExportImportTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/exportimport/ExportImportTest.java
index fa30e65712..260eefecfa 100755
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/exportimport/ExportImportTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/exportimport/ExportImportTest.java
@@ -29,13 +29,18 @@ import org.keycloak.representations.idm.ComponentRepresentation;
import org.keycloak.representations.idm.KeysMetadataRepresentation;
import org.keycloak.representations.idm.RealmRepresentation;
import org.keycloak.representations.idm.UserRepresentation;
+import org.keycloak.testsuite.AbstractKeycloakTest;
import org.keycloak.testsuite.Assert;
import org.keycloak.testsuite.util.UserBuilder;
import java.io.File;
import java.net.URL;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
import static org.junit.Assert.assertEquals;
import static org.keycloak.testsuite.admin.AbstractAdminTest.loadJson;
@@ -45,7 +50,7 @@ import static org.keycloak.testsuite.admin.AbstractAdminTest.loadJson;
* @author Marek Posolda
* @author Stan Silvert ssilvert@redhat.com (C) 2016 Red Hat Inc.
*/
-public class ExportImportTest extends AbstractExportImportTest {
+public class ExportImportTest extends AbstractKeycloakTest {
@Override
public void addTestRealms(List testRealms) {
@@ -257,5 +262,21 @@ public class ExportImportTest extends AbstractExportImportTest {
}
}
+ private void clearExportImportProperties() {
+ // Clear export/import properties after test
+ Properties systemProps = System.getProperties();
+ Set propsToRemove = new HashSet();
+
+ for (Object key : systemProps.keySet()) {
+ if (key.toString().startsWith(ExportImportConfig.PREFIX)) {
+ propsToRemove.add(key.toString());
+ }
+ }
+
+ for (String propToRemove : propsToRemove) {
+ systemProps.remove(propToRemove);
+ }
+ }
+
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/exportimport/LegacyImportTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/exportimport/LegacyImportTest.java
deleted file mode 100644
index 3dcffcda01..0000000000
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/exportimport/LegacyImportTest.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Copyright 2016 Red Hat, Inc. and/or its affiliates
- * and other contributors as indicated by the @author tags.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.keycloak.testsuite.exportimport;
-
-import org.jboss.arquillian.container.spi.client.container.LifecycleException;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Test;
-import org.keycloak.Config;
-import org.keycloak.admin.client.resource.ClientResource;
-import org.keycloak.exportimport.ExportImportConfig;
-import org.keycloak.exportimport.singlefile.SingleFileExportProviderFactory;
-import org.keycloak.models.AdminRoles;
-import org.keycloak.models.ImpersonationConstants;
-import org.keycloak.protocol.oidc.OIDCLoginProtocol;
-import org.keycloak.protocol.oidc.OIDCLoginProtocolFactory;
-import org.keycloak.representations.idm.ProtocolMapperRepresentation;
-import org.keycloak.representations.idm.RealmRepresentation;
-import org.keycloak.representations.idm.RoleRepresentation;
-
-import java.io.File;
-import java.net.URL;
-import java.util.Collection;
-import java.util.List;
-import java.util.Set;
-import org.keycloak.admin.client.resource.RealmResource;
-import org.keycloak.exportimport.Strategy;
-import static org.keycloak.testsuite.Assert.assertNames;
-import static org.keycloak.testsuite.migration.MigrationTest.MIGRATION;
-
-/**
- * Test importing JSON files exported from previous adminClient versions
- *
- * @author Marek Posolda
- */
-public class LegacyImportTest extends AbstractExportImportTest {
-
- @After
- public void after() {
- clearExportImportProperties();
- }
-
-
- @Override
- public void addTestRealms(List testRealms) {
- }
-
- @Test
- public void testLegacyImport(String version) {
- String file = "/migration-test/migration-realm-1.9.8.Final.json";
-
- URL url = LegacyImportTest.class.getResource(file);
- String targetFilePath = new File(url.getFile()).getAbsolutePath();
- testingClient.testing().exportImport().setFile(targetFilePath);
- testingClient.testing().exportImport().setProvider(SingleFileExportProviderFactory.PROVIDER_ID);
- testingClient.testing().exportImport().setAction(ExportImportConfig.ACTION_IMPORT);
- testingClient.testing().exportImport().setRealmName(MIGRATION);
- testingClient.testing().exportImport().setStrategy(Strategy.IGNORE_EXISTING);
-
- try {
- testingClient.testing().exportImport().runImport();
-
- RealmResource imported = adminClient.realm(MIGRATION);
-
- assertNames(imported.roles().list(), "offline_access", "uma_authorization", "migration-test-realm-role");
- assertNames(imported.clients().findAll(), "account", "admin-cli", "broker", "migration-test-client", "realm-management", "security-admin-console");
- String id = imported.clients().findByClientId("migration-test-client").get(0).getId();
- assertNames(imported.clients().get(id).roles().list(), "migration-test-client-role");
- assertNames(imported.users().search("", 0, 5), "migration-test-user");
- assertNames(imported.groups().groups(), "migration-test-group");
- } finally {
- removeRealm(MIGRATION);
- }
- }
-
- //KEYCLOAK-1982
- @Test
- public void importFrom11() throws LifecycleException {
- URL url = LegacyImportTest.class.getResource("/exportimport-test/kc11-exported-realm.json");
- String targetFilePath = new File(url.getFile()).getAbsolutePath();
- testingClient.testing().exportImport().setFile(targetFilePath);
- testingClient.testing().exportImport().setProvider(SingleFileExportProviderFactory.PROVIDER_ID);
- testingClient.testing().exportImport().setAction(ExportImportConfig.ACTION_IMPORT);
-
- try {
- testingClient.testing().exportImport().runImport();
-
- // Assert "locale" mapper available in security-admin-console client
- ClientResource foo11AdminConsoleClient = adminClient.realm("foo11").clients().get("a9ca4217-74a8-4658-92c8-c2f9ed48a474");
- assertLocaleMapperPresent(foo11AdminConsoleClient);
-
- // Assert "realm-management" role correctly set and contains all admin roles.
- ClientResource foo11RealmManagementClient = adminClient.realm("foo11").clients().get("c7a9cf59-feeb-44a4-a467-e008e157efa2");
- List roles = foo11RealmManagementClient.roles().list();
- assertRolesAvailable(roles);
-
- // Assert all admin roles are also available as composites of "realm-admin"
- Set realmAdminComposites = foo11RealmManagementClient.roles().get(AdminRoles.REALM_ADMIN).getRoleComposites();
- assertRolesAvailable(realmAdminComposites);
-
- // Assert all admin roles are also available as composites of "admin" role
- Set masterAdminComposites = adminClient.realm(Config.getAdminRealm()).roles().get(AdminRoles.ADMIN).getRoleComposites();
- assertRolesAvailable(masterAdminComposites);
- } finally {
- removeRealm("foo11");
- }
- }
-
-
- private void assertLocaleMapperPresent(ClientResource client) {
- List protMappers = client.getProtocolMappers().getMappersPerProtocol(OIDCLoginProtocol.LOGIN_PROTOCOL);
- for (ProtocolMapperRepresentation protMapper : protMappers) {
- if (protMapper.getName().equals(OIDCLoginProtocolFactory.LOCALE)) {
- return;
- }
- }
-
- Assert.fail("Locale mapper not found for client");
- }
-
-
- private void assertRolesAvailable(Collection roles) {
- assertRoleAvailable(roles, AdminRoles.VIEW_IDENTITY_PROVIDERS);
- assertRoleAvailable(roles, AdminRoles.MANAGE_IDENTITY_PROVIDERS);
- assertRoleAvailable(roles, AdminRoles.CREATE_CLIENT);
- assertRoleAvailable(roles, ImpersonationConstants.IMPERSONATION_ROLE);
- }
-
-
- private RoleRepresentation assertRoleAvailable(Collection roles, String roleName) {
- for (RoleRepresentation role : roles) {
- if (role.getName().equals(roleName)) {
- return role;
- }
- }
-
- Assert.fail("Role " + roleName + " not found");
- return null;
- }
-}