aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGrégoire Aubert <gregoire.aubert@sonarsource.com>2017-04-11 14:47:02 +0200
committerGrégoire Aubert <gregaubert@users.noreply.github.com>2017-04-12 16:36:29 +0200
commit7b341707990b0ab9ab1c51cf19a7675af9507578 (patch)
treee1ea07f4c5871a19f7db14f17ff452bf35c83ef0
parentb3c2e0d524cd316326d642247972e12d00de0d12 (diff)
downloadsonarqube-7b341707990b0ab9ab1c51cf19a7675af9507578.tar.gz
sonarqube-7b341707990b0ab9ab1c51cf19a7675af9507578.zip
SONAR-9110 Update page extensions IT's
-rw-r--r--it/it-plugins/ui-extensions-plugin/src/main/java/UiPageDefinition.java5
-rw-r--r--it/it-plugins/ui-extensions-plugin/src/main/resources/static/organization_admin_page.js4
-rw-r--r--it/it-plugins/ui-extensions-plugin/src/main/resources/static/organization_page.js4
-rw-r--r--it/it-tests/src/test/java/it/uiExtension/OrganizationUiExtensionsTest.java93
4 files changed, 105 insertions, 1 deletions
diff --git a/it/it-plugins/ui-extensions-plugin/src/main/java/UiPageDefinition.java b/it/it-plugins/ui-extensions-plugin/src/main/java/UiPageDefinition.java
index 52f22d3f67a..6bcddd7c721 100644
--- a/it/it-plugins/ui-extensions-plugin/src/main/java/UiPageDefinition.java
+++ b/it/it-plugins/ui-extensions-plugin/src/main/java/UiPageDefinition.java
@@ -43,6 +43,7 @@ import org.sonar.api.web.page.Page;
import org.sonar.api.web.page.PageDefinition;
import static org.sonar.api.web.page.Page.Scope.COMPONENT;
+import static org.sonar.api.web.page.Page.Scope.ORGANIZATION;
public class UiPageDefinition implements PageDefinition {
@Override
@@ -51,6 +52,8 @@ public class UiPageDefinition implements PageDefinition {
.addPage(Page.builder("uiextensionsplugin/global_page").setName("Global Page").build())
.addPage(Page.builder("uiextensionsplugin/global_admin_page").setName("Global Admin Page").setAdmin(true).build())
.addPage(Page.builder("uiextensionsplugin/project_page").setName("Project Page").setScope(COMPONENT).build())
- .addPage(Page.builder("uiextensionsplugin/project_admin_page").setName("Project Admin Page").setScope(COMPONENT).setAdmin(true).build());
+ .addPage(Page.builder("uiextensionsplugin/project_admin_page").setName("Project Admin Page").setScope(COMPONENT).setAdmin(true).build())
+ .addPage(Page.builder("uiextensionsplugin/organization_page").setName("Organization Page").setScope(ORGANIZATION).build())
+ .addPage(Page.builder("uiextensionsplugin/organization_admin_page").setName("Organization Admin Page").setScope(ORGANIZATION).setAdmin(true).build());
}
}
diff --git a/it/it-plugins/ui-extensions-plugin/src/main/resources/static/organization_admin_page.js b/it/it-plugins/ui-extensions-plugin/src/main/resources/static/organization_admin_page.js
new file mode 100644
index 00000000000..a3f740d8823
--- /dev/null
+++ b/it/it-plugins/ui-extensions-plugin/src/main/resources/static/organization_admin_page.js
@@ -0,0 +1,4 @@
+window.registerExtension('uiextensionsplugin/organization_admin_page', function (options) {
+ options.el.textContent = 'uiextensionsplugin/organization_admin_page';
+ return function () {};
+});
diff --git a/it/it-plugins/ui-extensions-plugin/src/main/resources/static/organization_page.js b/it/it-plugins/ui-extensions-plugin/src/main/resources/static/organization_page.js
new file mode 100644
index 00000000000..50c7e242f12
--- /dev/null
+++ b/it/it-plugins/ui-extensions-plugin/src/main/resources/static/organization_page.js
@@ -0,0 +1,4 @@
+window.registerExtension('uiextensionsplugin/organization_page', function (options) {
+ options.el.textContent = 'uiextensionsplugin/organization_page';
+ return function () {};
+}); \ No newline at end of file
diff --git a/it/it-tests/src/test/java/it/uiExtension/OrganizationUiExtensionsTest.java b/it/it-tests/src/test/java/it/uiExtension/OrganizationUiExtensionsTest.java
new file mode 100644
index 00000000000..e9f1e3fc08e
--- /dev/null
+++ b/it/it-tests/src/test/java/it/uiExtension/OrganizationUiExtensionsTest.java
@@ -0,0 +1,93 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2017 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * 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.uiExtension;
+
+import com.codeborne.selenide.Condition;
+import com.sonar.orchestrator.Orchestrator;
+import org.junit.BeforeClass;
+import org.junit.ClassRule;
+import org.junit.Rule;
+import org.junit.Test;
+import org.openqa.selenium.By;
+import org.sonarqube.ws.client.WsClient;
+import org.sonarqube.ws.client.organization.CreateWsRequest;
+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 org.assertj.core.api.Assertions.assertThat;
+import static util.ItUtils.newAdminWsClient;
+import static util.ItUtils.pluginArtifact;
+import static util.ItUtils.xooPlugin;
+
+public class OrganizationUiExtensionsTest {
+
+ @ClassRule
+ public static final Orchestrator orchestrator = Orchestrator.builderEnv()
+ .addPlugin(xooPlugin())
+ .addPlugin(pluginArtifact("ui-extensions-plugin"))
+ .build();
+
+ @Rule
+ public Navigation nav = Navigation.get(orchestrator);
+
+ private static WsClient adminClient;
+
+ @BeforeClass
+ public static void setUp() throws Exception {
+ orchestrator.resetData();
+ adminClient = newAdminWsClient(orchestrator);
+ orchestrator.getServer().post("api/organizations/enable_support", emptyMap());
+ }
+
+ @Test
+ public void organization_page() {
+ String orgKey = createOrganization();
+ nav.open("/organizations/" + orgKey + "/projects");
+
+ $("#organization-navigation-more").click();
+ $(By.linkText("Organization Page")).shouldBe(Condition.visible).click();
+
+ assertThat(url()).contains("uiextensionsplugin/organization_page");
+ $("body").shouldHave(text("uiextensionsplugin/organization_page"));
+ }
+
+ @Test
+ public void organization_admin_page() {
+ String orgKey = createOrganization();
+ nav.logIn().asAdmin().open("/organizations/" + orgKey + "/projects");
+
+ $("#context-navigation a.navbar-admin-link").click();
+ $(By.linkText("Organization Admin Page")).shouldBe(Condition.visible).click();
+
+ assertThat(url()).contains("uiextensionsplugin/organization_admin_page");
+ $("body").shouldHave(text("uiextensionsplugin/organization_admin_page"));
+ }
+
+ private static String createOrganization() {
+ String keyAndName = randomAlphabetic(32).toLowerCase(ENGLISH);
+ adminClient.organizations().create(new CreateWsRequest.Builder().setKey(keyAndName).setName(keyAndName).build()).getOrganization();
+ return keyAndName;
+ }
+}