From 1ff5bd2cb76894f7c184c9df9ff729112ba5a246 Mon Sep 17 00:00:00 2001 From: Julien Lancelot Date: Thu, 13 Apr 2017 10:03:36 +0200 Subject: [PATCH] Cleanup organizations ITs --- .../src/test/java/it/Category6Suite.java | 11 +++-- .../OrganizationIssueAssignTest.java} | 4 +- .../it/organization/OrganizationTest.java | 44 ++++++++++--------- .../OrganizationQualityProfilesPageTest.java | 2 +- .../OrganizationUiExtensionsTest.java | 18 +++----- 5 files changed, 39 insertions(+), 40 deletions(-) rename it/it-tests/src/test/java/it/{organization/IssueAssignTest.java => issue/OrganizationIssueAssignTest.java} (99%) rename it/it-tests/src/test/java/it/{organization => qualityProfile}/OrganizationQualityProfilesPageTest.java (99%) diff --git a/it/it-tests/src/test/java/it/Category6Suite.java b/it/it-tests/src/test/java/it/Category6Suite.java index 8f5f70f0d30..9e627ae9bf5 100644 --- a/it/it-tests/src/test/java/it/Category6Suite.java +++ b/it/it-tests/src/test/java/it/Category6Suite.java @@ -20,10 +20,11 @@ package it; import com.sonar.orchestrator.Orchestrator; -import it.organization.IssueAssignTest; +import it.issue.OrganizationIssueAssignTest; import it.organization.OrganizationMembershipTest; -import it.organization.OrganizationQualityProfilesPageTest; import it.organization.OrganizationTest; +import it.qualityProfile.OrganizationQualityProfilesPageTest; +import it.uiExtension.OrganizationUiExtensionsTest; import it.user.OrganizationIdentityProviderTest; import org.junit.BeforeClass; import org.junit.ClassRule; @@ -39,11 +40,12 @@ import static util.ItUtils.xooPlugin; */ @RunWith(Suite.class) @Suite.SuiteClasses({ - IssueAssignTest.class, OrganizationIdentityProviderTest.class, + OrganizationIssueAssignTest.class, OrganizationMembershipTest.class, OrganizationQualityProfilesPageTest.class, - OrganizationTest.class + OrganizationTest.class, + OrganizationUiExtensionsTest.class, }) public class Category6Suite { @@ -51,6 +53,7 @@ public class Category6Suite { public static final Orchestrator ORCHESTRATOR = Orchestrator.builderEnv() .addPlugin(xooPlugin()) .addPlugin(pluginArtifact("base-auth-plugin")) + .addPlugin(pluginArtifact("ui-extensions-plugin")) .build(); @BeforeClass diff --git a/it/it-tests/src/test/java/it/organization/IssueAssignTest.java b/it/it-tests/src/test/java/it/issue/OrganizationIssueAssignTest.java similarity index 99% rename from it/it-tests/src/test/java/it/organization/IssueAssignTest.java rename to it/it-tests/src/test/java/it/issue/OrganizationIssueAssignTest.java index dd275e2e7a5..3790627a7ce 100644 --- a/it/it-tests/src/test/java/it/organization/IssueAssignTest.java +++ b/it/it-tests/src/test/java/it/issue/OrganizationIssueAssignTest.java @@ -18,7 +18,7 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package it.organization; +package it.issue; import com.sonar.orchestrator.Orchestrator; import it.Category6Suite; @@ -57,7 +57,7 @@ import static util.ItUtils.restoreProfile; import static util.ItUtils.runProjectAnalysis; import static util.ItUtils.setServerProperty; -public class IssueAssignTest { +public class OrganizationIssueAssignTest { private final static String ORGANIZATION_KEY = newOrganizationKey(); private final static String OTHER_ORGANIZATION_KEY = newOrganizationKey(); diff --git a/it/it-tests/src/test/java/it/organization/OrganizationTest.java b/it/it-tests/src/test/java/it/organization/OrganizationTest.java index 22b97189368..933cef82a3d 100644 --- a/it/it-tests/src/test/java/it/organization/OrganizationTest.java +++ b/it/it-tests/src/test/java/it/organization/OrganizationTest.java @@ -68,6 +68,7 @@ public class OrganizationTest { private static final String URL = "https://www.foo.fr"; private static final String AVATAR_URL = "https://www.foo.fr/corporate_logo.png"; private static final String SETTING_ANYONE_CAN_CREATE_ORGANIZATIONS = "sonar.organizations.anyoneCanCreate"; + private static final String USER_LOGIN = "foo"; @ClassRule public static Orchestrator orchestrator = Category6Suite.ORCHESTRATOR; @@ -89,6 +90,7 @@ public class OrganizationTest { public void setUp() throws Exception { resetSettings(orchestrator, null, SETTING_ANYONE_CAN_CREATE_ORGANIZATIONS); deleteOrganizationsIfExists(orchestrator, KEY, "an-org"); + userRule.deactivateUsers(USER_LOGIN); } @After @@ -163,10 +165,10 @@ public class OrganizationTest { verifyUserNotAuthenticated(service -> service.delete(KEY)); // verify logged in user without any permission can't create update nor delete an organization by default - userRule.createUser("john", "doh"); - verifyUserNotAuthorized("john", "doh", service -> service.create(new CreateWsRequest.Builder().setName("An org").build())); - verifyUserNotAuthorized("john", "doh", service -> service.update(new UpdateWsRequest.Builder().setKey(KEY).setName("new name").build())); - verifyUserNotAuthorized("john", "doh", service -> service.delete(KEY)); + userRule.createUser(USER_LOGIN, USER_LOGIN); + verifyUserNotAuthorized(USER_LOGIN, USER_LOGIN, service -> service.create(new CreateWsRequest.Builder().setName("An org").build())); + verifyUserNotAuthorized(USER_LOGIN, USER_LOGIN, service -> service.update(new UpdateWsRequest.Builder().setKey(KEY).setName("new name").build())); + verifyUserNotAuthorized(USER_LOGIN, USER_LOGIN, service -> service.delete(KEY)); ItUtils.setServerProperty(orchestrator, SETTING_ANYONE_CAN_CREATE_ORGANIZATIONS, "true"); // verify anonymous still can't create update nor delete an organization if property is true @@ -175,12 +177,12 @@ public class OrganizationTest { verifyUserNotAuthenticated(service -> service.delete(KEY)); // verify logged in user without any permission can't create nor update nor delete an organization if property is true - verifyUserNotAuthorized("john", "doh", service -> service.update(new UpdateWsRequest.Builder().setKey(KEY).setName("new name").build())); - verifyUserNotAuthorized("john", "doh", service -> service.delete(KEY)); + verifyUserNotAuthorized(USER_LOGIN, USER_LOGIN, service -> service.update(new UpdateWsRequest.Builder().setKey(KEY).setName("new name").build())); + verifyUserNotAuthorized(USER_LOGIN, USER_LOGIN, service -> service.delete(KEY)); // clean-up adminOrganizationService.delete(KEY); verifySingleSearchResult( - verifyUserAuthorized("john", "doh", service -> service.create(new CreateWsRequest.Builder().setName("An org").build())).getOrganization(), + verifyUserAuthorized(USER_LOGIN, USER_LOGIN, service -> service.create(new CreateWsRequest.Builder().setName("An org").build())).getOrganization(), "An org", null, null, null); } @@ -245,21 +247,21 @@ public class OrganizationTest { @Test public void create_fails_if_user_is_not_root() { - userRule.createUser("foo", "bar"); + userRule.createUser(USER_LOGIN, USER_LOGIN); CreateWsRequest createWsRequest = new CreateWsRequest.Builder() .setName("bla bla") .build(); - OrganizationService fooUserOrganizationService = ItUtils.newUserWsClient(orchestrator, "foo", "bar").organizations(); + OrganizationService fooUserOrganizationService = ItUtils.newUserWsClient(orchestrator, USER_LOGIN, USER_LOGIN).organizations(); expect403HttpError(() -> fooUserOrganizationService.create(createWsRequest)); - userRule.setRoot("foo"); + userRule.setRoot(USER_LOGIN); assertThat(fooUserOrganizationService.create(createWsRequest).getOrganization().getKey()).isEqualTo("bla-bla"); // delete org, attempt recreate when no root anymore and ensure it can't anymore fooUserOrganizationService.delete("bla-bla"); - userRule.unsetRoot("foo"); + userRule.unsetRoot(USER_LOGIN); expect403HttpError(() -> fooUserOrganizationService.create(createWsRequest)); } @@ -274,13 +276,13 @@ public class OrganizationTest { .getOrganization(); verifySingleSearchResult(createdOrganization, KEY, null, null, null); - userRule.createUser("bob", "bob"); + userRule.createUser(USER_LOGIN, USER_LOGIN); userRule.removeGroups("sonar-users"); - adminOrganizationService.addMember(KEY, "bob"); - addPermissionsToUser(KEY, "bob", "provisioning", "scan"); + adminOrganizationService.addMember(KEY, USER_LOGIN); + addPermissionsToUser(KEY, USER_LOGIN, "provisioning", "scan"); ItUtils.runProjectAnalysis(orchestrator, "shared/xoo-sample", - "sonar.organization", KEY, "sonar.login", "bob", "sonar.password", "bob"); + "sonar.organization", KEY, "sonar.login", USER_LOGIN, "sonar.password", USER_LOGIN); ComponentsService componentsService = ItUtils.newAdminWsClient(orchestrator).components(); assertThat(searchSampleProject(KEY, componentsService).getComponentsList()).hasSize(1); } @@ -329,18 +331,18 @@ public class OrganizationTest { GroupManagement groupManagement = userRule.forOrganization(KEY); - userRule.createUser("bob", "bob"); - adminOrganizationService.addMember(KEY, "bob"); + userRule.createUser(USER_LOGIN, USER_LOGIN); + adminOrganizationService.addMember(KEY, USER_LOGIN); groupManagement.createGroup("grp1"); groupManagement.createGroup("grp2"); - groupManagement.associateGroupsToUser("bob", "grp1", "grp2"); - assertThat(groupManagement.getUserGroups("bob").getGroups()) + groupManagement.associateGroupsToUser(USER_LOGIN, "grp1", "grp2"); + assertThat(groupManagement.getUserGroups(USER_LOGIN).getGroups()) .extracting(Groups.Group::getName) .contains("grp1", "grp2"); - addPermissionsToUser(KEY, "bob", "provisioning", "scan"); + addPermissionsToUser(KEY, USER_LOGIN, "provisioning", "scan"); ItUtils.runProjectAnalysis(orchestrator, "shared/xoo-sample", - "sonar.organization", KEY, "sonar.login", "bob", "sonar.password", "bob"); + "sonar.organization", KEY, "sonar.login", USER_LOGIN, "sonar.password", USER_LOGIN); ComponentsService componentsService = ItUtils.newAdminWsClient(orchestrator).components(); assertThat(searchSampleProject(KEY, componentsService).getComponentsList()).hasSize(1); diff --git a/it/it-tests/src/test/java/it/organization/OrganizationQualityProfilesPageTest.java b/it/it-tests/src/test/java/it/qualityProfile/OrganizationQualityProfilesPageTest.java similarity index 99% rename from it/it-tests/src/test/java/it/organization/OrganizationQualityProfilesPageTest.java rename to it/it-tests/src/test/java/it/qualityProfile/OrganizationQualityProfilesPageTest.java index b67c9e14fd3..eeeab7003b0 100644 --- a/it/it-tests/src/test/java/it/organization/OrganizationQualityProfilesPageTest.java +++ b/it/it-tests/src/test/java/it/qualityProfile/OrganizationQualityProfilesPageTest.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package it.organization; +package it.qualityProfile; import com.codeborne.selenide.Condition; import com.sonar.orchestrator.Orchestrator; diff --git a/it/it-tests/src/test/java/it/uiExtension/OrganizationUiExtensionsTest.java b/it/it-tests/src/test/java/it/uiExtension/OrganizationUiExtensionsTest.java index e9f1e3fc08e..41150c6d192 100644 --- a/it/it-tests/src/test/java/it/uiExtension/OrganizationUiExtensionsTest.java +++ b/it/it-tests/src/test/java/it/uiExtension/OrganizationUiExtensionsTest.java @@ -21,6 +21,7 @@ package it.uiExtension; import com.codeborne.selenide.Condition; import com.sonar.orchestrator.Orchestrator; +import it.Category6Suite; import org.junit.BeforeClass; import org.junit.ClassRule; import org.junit.Rule; @@ -33,21 +34,15 @@ import pageobjects.Navigation; import static com.codeborne.selenide.Condition.text; import static com.codeborne.selenide.Selenide.$; import static com.codeborne.selenide.WebDriverRunner.url; -import static java.util.Collections.emptyMap; -import static java.util.Locale.ENGLISH; -import static org.apache.commons.lang.RandomStringUtils.randomAlphabetic; +import static it.Category6Suite.enableOrganizationsSupport; import static org.assertj.core.api.Assertions.assertThat; import static util.ItUtils.newAdminWsClient; -import static util.ItUtils.pluginArtifact; -import static util.ItUtils.xooPlugin; +import static util.ItUtils.newOrganizationKey; public class OrganizationUiExtensionsTest { @ClassRule - public static final Orchestrator orchestrator = Orchestrator.builderEnv() - .addPlugin(xooPlugin()) - .addPlugin(pluginArtifact("ui-extensions-plugin")) - .build(); + public static Orchestrator orchestrator = Category6Suite.ORCHESTRATOR; @Rule public Navigation nav = Navigation.get(orchestrator); @@ -56,9 +51,8 @@ public class OrganizationUiExtensionsTest { @BeforeClass public static void setUp() throws Exception { - orchestrator.resetData(); adminClient = newAdminWsClient(orchestrator); - orchestrator.getServer().post("api/organizations/enable_support", emptyMap()); + enableOrganizationsSupport(); } @Test @@ -86,7 +80,7 @@ public class OrganizationUiExtensionsTest { } private static String createOrganization() { - String keyAndName = randomAlphabetic(32).toLowerCase(ENGLISH); + String keyAndName = newOrganizationKey(); adminClient.organizations().create(new CreateWsRequest.Builder().setKey(keyAndName).setName(keyAndName).build()).getOrganization(); return keyAndName; } -- 2.39.5