]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-10285 WS org enable support is now only available on SonarCloud
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Tue, 3 Apr 2018 14:58:02 +0000 (16:58 +0200)
committerSonarTech <sonartech@sonarsource.com>
Thu, 5 Apr 2018 18:20:47 +0000 (20:20 +0200)
server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/Tester.java
server/sonar-server/src/main/java/org/sonar/server/organization/ws/OrganizationsWsModule.java
server/sonar-server/src/test/java/org/sonar/server/organization/ws/OrganizationsWsModuleTest.java
tests/src/test/java/org/sonarqube/tests/Category6Suite.java
tests/src/test/java/org/sonarqube/tests/analysis/AnalysisEsResilienceTest.java
tests/src/test/java/org/sonarqube/tests/project/ProjectBadgesTest.java
tests/src/test/java/org/sonarqube/tests/project/SonarCloudProjectBadgesTest.java
tests/src/test/java/org/sonarqube/tests/qualityProfile/ActiveRuleEsResilienceTest.java
tests/src/test/java/org/sonarqube/tests/qualityProfile/OrganizationQualityProfilesUiTest.java

index 715020b78120caf93bebf2141599dabec99ddbd0..a3287db9f2f119e5445538568cbdeddf18ec37e0 100644 (file)
@@ -139,12 +139,8 @@ public class Tester extends ExternalResource implements TesterSession {
    */
   public Navigation openBrowser() {
     verifyStarted();
-    return Navigation.create(orchestrator);
-  }
-
-  public Navigation openBrowser(String path) {
-    verifyStarted();
-    return Navigation.create(orchestrator, path);
+    // /projects is used as on SonarCloud instance, the "/" is redirected to SonarCloud website
+    return Navigation.create(orchestrator, "/projects");
   }
 
   private void verifyNotStarted() {
index 354def6d2ce8bf2120751b0e9e095cd896776e1d..3a60efbdea19c4f5343b8e7ec5af5cd647e7db10 100644 (file)
  */
 package org.sonar.server.organization.ws;
 
+import org.sonar.api.config.Configuration;
 import org.sonar.core.platform.Module;
 
+import static org.sonar.process.ProcessProperties.Property.SONARCLOUD_ENABLED;
+
 public class OrganizationsWsModule extends Module {
 
+  private final Configuration config;
+
+  public OrganizationsWsModule(Configuration config) {
+    this.config = config;
+  }
+
   @Override
   protected void configureModule() {
     add(
       OrganizationsWs.class,
       OrganizationsWsSupport.class,
       // actions
-      AddMemberAction.class,
-      CreateAction.class,
-      DeleteAction.class,
-      EnableSupportAction.class,
-      RemoveMemberAction.class,
       SearchAction.class,
-      SearchMembersAction.class,
-      UpdateAction.class,
-      UpdateProjectVisibilityAction.class);
+      SearchMembersAction.class);
+    if (config.getBoolean(SONARCLOUD_ENABLED.getKey()).orElse(false)) {
+      add(
+        EnableSupportAction.class,
+        AddMemberAction.class,
+        CreateAction.class,
+        DeleteAction.class,
+        RemoveMemberAction.class,
+        UpdateAction.class,
+        UpdateProjectVisibilityAction.class);
+    }
   }
 
 }
index 8a9e2cf0735f7266f884187c93c46bc055c5dd75..dc857653cccf4126683d65434cb73da15c3cc923 100644 (file)
 package org.sonar.server.organization.ws;
 
 import org.junit.Test;
+import org.sonar.api.config.internal.MapSettings;
 import org.sonar.core.platform.ComponentContainer;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.sonar.core.platform.ComponentContainer.COMPONENTS_IN_EMPTY_COMPONENT_CONTAINER;
 
 public class OrganizationsWsModuleTest {
-  private OrganizationsWsModule underTest = new OrganizationsWsModule();
+
+  private ComponentContainer container = new ComponentContainer();
+  private MapSettings mapSettings = new MapSettings();
+  private OrganizationsWsModule underTest = new OrganizationsWsModule(mapSettings.asConfig());
+
+  @Test
+  public void verify_component_count_when_not_on_sonar_cloud() {
+    mapSettings.setProperty("sonar.sonarcloud.enabled", false);
+
+    underTest.configure(container);
+
+    assertThat(container.getPicoContainer().getComponentAdapters())
+      .hasSize(COMPONENTS_IN_EMPTY_COMPONENT_CONTAINER + 4);
+  }
 
   @Test
-  public void verify_component_count() {
-    ComponentContainer container = new ComponentContainer();
+  public void verify_component_count_when_on_sonar_cloud() {
+    mapSettings.setProperty("sonar.sonarcloud.enabled", true);
+
     underTest.configure(container);
+
     assertThat(container.getPicoContainer().getComponentAdapters())
       .hasSize(COMPONENTS_IN_EMPTY_COMPONENT_CONTAINER + 11);
   }
index 842aa61711ce84e4c75dbe5c8794f61891b3f809..c8bbc8001f3b616950f74eec88c80b8874d1b599 100644 (file)
@@ -83,5 +83,7 @@ public class Category6Suite {
     .addPlugin(pluginArtifact("base-auth-plugin"))
     .addPlugin(pluginArtifact("ui-extensions-plugin"))
 
+    .setServerProperty("sonar.sonarcloud.enabled", "true")
+
     .build();
 }
index eee7c8edf6b5fd5e0b6138572a1079d048580270..9cb1c5d39ddf48c1edcc5f32c46e74d92c4ec44a 100644 (file)
@@ -69,6 +69,7 @@ public class AnalysisEsResilienceTest {
       .getOrchestratorBuilder()
       .addPlugin(ItUtils.xooPlugin())
       .setServerProperty("sonar.search.httpPort", "" + esHttpPort)
+      .setServerProperty("sonar.sonarcloud.enabled", "true")
       .build();
   }
 
index 4a38bcb4d6be5513543b18a9ebc5230c967c3bc9..fe8bc6c1f81c9c7c159df6176bf3c73e78fda2f2 100644 (file)
@@ -53,7 +53,7 @@ public class ProjectBadgesTest {
   @Test
   public void public_project_badges() {
     orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample")));
-    tester.openBrowser("/projects").openProjectDashboard(PROJECT_KEY);
+    tester.openBrowser().openProjectDashboard(PROJECT_KEY);
 
     SelenideElement badgesModal = openBadgesModal();
     ElementsCollection badgeButtons = badgesModal.$$(".badge-button").shouldHaveSize(2);
@@ -80,7 +80,7 @@ public class ProjectBadgesTest {
         .setProperties("sonar.organization", org.getKey(), "sonar.login", user.getLogin(), "sonar.password", user.getLogin())
     );
     tester.wsClient().projects().updateVisibility(new UpdateVisibilityRequest().setProject("sample").setVisibility("private"));
-    tester.openBrowser("/projects").logIn().submitCredentials(user.getLogin()).openProjectDashboard(PROJECT_KEY);
+    tester.openBrowser().logIn().submitCredentials(user.getLogin()).openProjectDashboard(PROJECT_KEY);
     shouldNotHaveBadges();
   }
 
index 87833c335d94edcc78d6b91d22928c7901b8d304..289539b2820372aeb769934c8c150edbfe01f1d6 100644 (file)
@@ -54,7 +54,7 @@ public class SonarCloudProjectBadgesTest {
   @Test
   public void public_project_badges() {
     orchestrator.executeBuild(SonarScanner.create(projectDir("shared/xoo-sample")));
-    tester.openBrowser("/projects").openProjectDashboard(PROJECT_KEY);
+    tester.openBrowser().openProjectDashboard(PROJECT_KEY);
 
     SelenideElement badgesModal = openBadgesModal();
     ElementsCollection badgeButtons = badgesModal.$$(".badge-button").shouldHaveSize(3);
@@ -86,7 +86,7 @@ public class SonarCloudProjectBadgesTest {
         .setProperties("sonar.organization", org.getKey(), "sonar.login", user.getLogin(), "sonar.password", user.getLogin())
     );
     tester.wsClient().projects().updateVisibility(new UpdateVisibilityRequest().setProject("sample").setVisibility("private"));
-    tester.openBrowser("/projects").logIn().submitCredentials(user.getLogin()).openProjectDashboard(PROJECT_KEY);
+    tester.openBrowser().logIn().submitCredentials(user.getLogin()).openProjectDashboard(PROJECT_KEY);
     shouldNotHaveBadges();
   }
 
index 44a91226fda6921d75ae443f617090cc01c74088..1320f6447fe05e2fab09545f60d8c2244b20e491 100644 (file)
@@ -29,8 +29,8 @@ import org.junit.Test;
 import org.junit.rules.DisableOnDebug;
 import org.junit.rules.TestRule;
 import org.junit.rules.Timeout;
-import org.sonarqube.tests.Byteman;
 import org.sonarqube.qa.util.Tester;
+import org.sonarqube.tests.Byteman;
 import org.sonarqube.ws.Organizations;
 import org.sonarqube.ws.Qualityprofiles;
 import org.sonarqube.ws.client.rules.SearchRequest;
@@ -53,6 +53,7 @@ public class ActiveRuleEsResilienceTest {
       .getOrchestratorBuilder()
       .setServerProperty("sonar.search.recovery.delayInMs", "1000")
       .setServerProperty("sonar.search.recovery.minAgeInMs", "3000")
+      .setServerProperty("sonar.sonarcloud.enabled", "true")
       .addPlugin(ItUtils.xooPlugin())
       .build();
   }
index 4a39d3f2aa2e41f8edfa7c177c35f985e0be4f0d..fc6c84db04f260d9c4fe4a6a6209fd688e0f7633 100644 (file)
@@ -86,7 +86,7 @@ public class OrganizationQualityProfilesUiTest {
       "/organization/OrganizationQualityProfilesUiTest/should_display_profile_inheritance.html",
       "/organization/OrganizationQualityProfilesUiTest/should_display_profile_exporters.html");
 
-    tester.openBrowser().openHome().logIn().submitCredentials(user.getLogin())
+    tester.openBrowser().logIn().submitCredentials(user.getLogin())
       .openQualityProfile("xoo", "sample", organization.getKey())
       .shouldHaveAssociatedProject("Sample")
       .shouldAllowToChangeProjects();