]> source.dussan.org Git - sonarqube.git/commitdiff
move in IT SystemAdminPermissionTest from it-core
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Mon, 8 Feb 2016 16:47:37 +0000 (17:47 +0100)
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>
Fri, 12 Feb 2016 07:41:37 +0000 (08:41 +0100)
it/it-tests/src/test/java/it/permissions/SystemAdminPermissionTest.java [new file with mode: 0644]
it/it-tests/src/test/resources/permissions/SystemAdminPermissionTest/change-other-measure-filter-owner.html [new file with mode: 0644]
it/it-tests/src/test/resources/permissions/SystemAdminPermissionTest/change-own-measure-filter-owner.html [new file with mode: 0644]
it/it-tests/src/test/resources/permissions/SystemAdminPermissionTest/change-shared-global-dashboard-owner-failure.html [new file with mode: 0644]
it/it-tests/src/test/resources/permissions/SystemAdminPermissionTest/change-shared-global-dashboard-owner.html [new file with mode: 0644]
it/it-tests/src/test/resources/permissions/SystemAdminPermissionTest/change-shared-project-dashboard-owner-failure.html [new file with mode: 0644]
it/it-tests/src/test/resources/permissions/SystemAdminPermissionTest/change-shared-project-dashboard-owner.html [new file with mode: 0644]
it/it-tests/src/test/resources/permissions/SystemAdminPermissionTest/change-system-measure-filter-owner.html [new file with mode: 0644]

diff --git a/it/it-tests/src/test/java/it/permissions/SystemAdminPermissionTest.java b/it/it-tests/src/test/java/it/permissions/SystemAdminPermissionTest.java
new file mode 100644 (file)
index 0000000..5f04b26
--- /dev/null
@@ -0,0 +1,120 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2016 SonarSource SA
+ * mailto:contact 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.permissions;
+
+import com.sonar.orchestrator.Orchestrator;
+import com.sonar.orchestrator.build.SonarScanner;
+import com.sonar.orchestrator.selenium.Selenese;
+import it.Category4Suite;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.ClassRule;
+import org.junit.Test;
+import org.sonarqube.ws.client.PostRequest;
+import org.sonarqube.ws.client.WsClient;
+import util.ItUtils;
+
+public class SystemAdminPermissionTest {
+
+  @ClassRule
+  public static Orchestrator orchestrator = Category4Suite.ORCHESTRATOR;
+
+  @BeforeClass
+  public static void setUpUsers() {
+    orchestrator.resetData();
+
+    WsClient client = ItUtils.newAdminWsClient(orchestrator);
+
+    createUser(client, "can_share", "password");
+    addPermission("can_share", "shareDashboard");
+
+    createUser(client, "cannot_share", "password");
+  }
+
+  @AfterClass
+  public static void reset() {
+    WsClient client = ItUtils.newAdminWsClient(orchestrator);
+    deactivateUser(client, "can_share");
+    deactivateUser(client, "cannot_share");
+  }
+
+  /**
+   * SONAR-4398
+   */
+  @Test
+  public void should_change_ownership_of_shared_measure_filter() throws Exception {
+    // change-own-measure-filter-owner.html
+    // 1 - as admin, create measure filter, shared with every one
+    // 2 - as admin, edit filter and set owner to can_share
+    seleniumSuite("change-measure-filter-ownership",
+      "/permissions/SystemAdminPermissionTest/change-own-measure-filter-owner.html",
+      "/permissions/SystemAdminPermissionTest/change-other-measure-filter-owner.html",
+      "/permissions/SystemAdminPermissionTest/change-system-measure-filter-owner.html");
+  }
+
+  /**
+   * SONAR-4136
+   */
+  @Test
+  public void should_change_ownership_of_shared_global_dashboard() throws Exception {
+    seleniumSuite("change-global-dashboard-ownership",
+      "/permissions/SystemAdminPermissionTest/change-shared-global-dashboard-owner.html",
+      "/permissions/SystemAdminPermissionTest/change-shared-global-dashboard-owner-failure.html");
+  }
+
+  /**
+   * SONAR-4136
+   */
+  @Test
+  public void should_change_ownership_of_shared_project_dashboard() throws Exception {
+    orchestrator.executeBuild(SonarScanner.create(ItUtils.projectDir("shared/xoo-sample")));
+
+    seleniumSuite("change-project-dashboard-ownership",
+      "/permissions/SystemAdminPermissionTest/change-shared-project-dashboard-owner.html",
+      "/permissions/SystemAdminPermissionTest/change-shared-project-dashboard-owner-failure.html");
+  }
+
+  private void seleniumSuite(String suiteName, String... tests) {
+    Selenese selenese = Selenese.builder().setHtmlTestsInClasspath(suiteName, tests).build();
+    orchestrator.executeSelenese(selenese);
+  }
+
+  private static void addPermission(String login, String permission) {
+    orchestrator.getServer().adminWsClient().post("api/permissions/add_user",
+      "login", login,
+      "permission", permission);
+  }
+
+  private static void createUser(WsClient client, String login, String password) {
+    client.wsConnector().call(
+      new PostRequest("api/users/create")
+        .setParam("login", login)
+        .setParam("name", login)
+        .setParam("password", password)
+      );
+  }
+
+  private static void deactivateUser(WsClient client, String login) {
+    client.wsConnector().call(
+      new PostRequest("/api/users/deactivate")
+        .setParam("login", login)
+      );
+  }
+}
diff --git a/it/it-tests/src/test/resources/permissions/SystemAdminPermissionTest/change-other-measure-filter-owner.html b/it/it-tests/src/test/resources/permissions/SystemAdminPermissionTest/change-other-measure-filter-owner.html
new file mode 100644 (file)
index 0000000..bd7ab43
--- /dev/null
@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>change-other-measure-filter-owner</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+    <tbody>
+    <tr>
+       <td>storeEval</td>
+       <td>'filter_'+(new Date()).getTime()</td>
+       <td>FILTER_NAME</td>
+</tr>
+<tr>
+    <td>open</td>
+    <td>/sessions/logout</td>
+       <td></td>
+</tr>
+<tr>
+       <td>open</td>
+       <td>/sessions/new</td>
+       <td></td>
+</tr>
+<tr>
+       <td>type</td>
+       <td>login</td>
+       <td>can_share</td>
+</tr>
+<tr>
+       <td>type</td>
+       <td>password</td>
+       <td>password</td>
+</tr>
+<tr>
+       <td>clickAndWait</td>
+       <td>commit</td>
+       <td></td>
+</tr>
+<tr>
+       <td>open</td>
+       <td>/measures</td>
+       <td></td>
+</tr>
+<tr>
+  <td>waitForElementPresent</td>
+  <td>class=navigator-filter-submit</td>
+  <td></td>
+</tr>
+<tr>
+       <td>click</td>
+  <td>class=navigator-filter-submit</td>
+       <td></td>
+</tr>
+<tr>
+       <td>waitForText</td>
+       <td>content</td>
+       <td>*Save As*</td>
+</tr>
+<tr>
+       <td>click</td>
+       <td>save-as</td>
+       <td></td>
+</tr>
+<tr>
+       <td>waitForText</td>
+       <td>save-as-filter-form</td>
+       <td>*Save Filter*</td>
+</tr>
+<tr>
+       <td>type</td>
+       <td>name</td>
+       <td>${FILTER_NAME}</td>
+</tr>
+<tr>
+       <td>click</td>
+       <td>name=shared</td>
+       <td></td>
+</tr>
+<tr>
+       <td>clickAndWait</td>
+       <td>save-as-submit</td>
+       <td></td>
+</tr>
+<tr>
+       <td>waitForText</td>
+       <td>filter-title</td>
+       <td>glob:*${FILTER_NAME}*Shared with all users*</td>
+</tr>
+<tr>
+    <td>open</td>
+    <td>/sessions/logout</td>
+       <td></td>
+</tr>
+<tr>
+       <td>open</td>
+       <td>/sessions/new</td>
+       <td></td>
+</tr>
+<tr>
+       <td>type</td>
+       <td>login</td>
+       <td>admin</td>
+</tr>
+<tr>
+       <td>type</td>
+       <td>password</td>
+       <td>admin</td>
+</tr>
+<tr>
+       <td>clickAndWait</td>
+       <td>commit</td>
+       <td></td>
+</tr>
+<tr>
+       <td>open</td>
+       <td>/measures</td>
+       <td></td>
+</tr>
+<tr>
+  <td>waitForElementPresent</td>
+  <td>id=manage-favorites</td>
+  <td></td>
+</tr>
+<tr>
+       <td>clickAndWait</td>
+  <td>id=manage-favorites</td>
+       <td></td>
+</tr>
+<tr>
+       <td>assertText</td>
+       <td>shared-filters</td>
+       <td>glob:*${FILTER_NAME}*</td>
+</tr>
+<tr>
+       <td>click</td>
+       <td>edit_system_${FILTER_NAME}</td>
+       <td></td>
+</tr>
+<tr>
+       <td>waitForText</td>
+       <td>edit-filter-form</td>
+       <td>*Edit Filter*</td>
+</tr>
+<tr>
+       <td>type</td>
+       <td>select-filter-owner</td>
+       <td>admin</td>
+</tr>
+<tr>
+       <td>clickAndWait</td>
+       <td>save-submit</td>
+       <td></td>
+</tr>
+<tr>
+       <td>assertText</td>
+       <td>filter-title</td>
+       <td>glob:*${FILTER_NAME}*Shared with all users*</td>
+</tr>
+</tbody>
+</table>
+</body>
+</html>
diff --git a/it/it-tests/src/test/resources/permissions/SystemAdminPermissionTest/change-own-measure-filter-owner.html b/it/it-tests/src/test/resources/permissions/SystemAdminPermissionTest/change-own-measure-filter-owner.html
new file mode 100644 (file)
index 0000000..fda11c0
--- /dev/null
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>change-own-measure-filter-owner</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+    <tbody>
+    <tr>
+       <td>storeEval</td>
+       <td>'filter_'+(new Date()).getTime()</td>
+       <td>FILTER_NAME</td>
+</tr>
+<tr>
+       <td>open</td>
+       <td>/sessions/logout</td>
+       <td></td>
+</tr>
+<tr>
+       <td>open</td>
+       <td>/sessions/new</td>
+       <td></td>
+</tr>
+<tr>
+       <td>type</td>
+       <td>login</td>
+       <td>admin</td>
+</tr>
+<tr>
+       <td>type</td>
+       <td>password</td>
+       <td>admin</td>
+</tr>
+<tr>
+       <td>clickAndWait</td>
+       <td>commit</td>
+       <td></td>
+</tr>
+<tr>
+       <td>open</td>
+       <td>/measures</td>
+       <td></td>
+</tr>
+<tr>
+       <td>waitForElementPresent</td>
+       <td>class=navigator-filter-submit</td>
+       <td></td>
+</tr>
+<tr>
+       <td>click</td>
+       <td>class=navigator-filter-submit</td>
+       <td></td>
+</tr>
+<tr>
+       <td>waitForText</td>
+       <td>content</td>
+       <td>*Save As*</td>
+</tr>
+<tr>
+       <td>click</td>
+       <td>save-as</td>
+       <td></td>
+</tr>
+<tr>
+       <td>waitForText</td>
+       <td>save-as-filter-form</td>
+       <td>*Save Filter*</td>
+</tr>
+<tr>
+       <td>type</td>
+       <td>name</td>
+       <td>${FILTER_NAME}</td>
+</tr>
+<tr>
+       <td>click</td>
+       <td>name=shared</td>
+       <td></td>
+</tr>
+<tr>
+       <td>clickAndWait</td>
+       <td>save-as-submit</td>
+       <td></td>
+</tr>
+<tr>
+       <td>waitForText</td>
+       <td>filter-title</td>
+       <td>glob:*${FILTER_NAME}*Shared with all users*</td>
+</tr>
+<tr>
+       <td>waitForElementPresent</td>
+       <td>id=manage-favorites</td>
+       <td></td>
+</tr>
+<tr>
+       <td>clickAndWait</td>
+       <td>id=manage-favorites</td>
+       <td></td>
+</tr>
+<tr>
+       <td>assertText</td>
+       <td>my-filters</td>
+       <td>glob:*${FILTER_NAME}*</td>
+</tr>
+<tr>
+       <td>click</td>
+       <td>edit_${FILTER_NAME}</td>
+       <td></td>
+</tr>
+<tr>
+       <td>waitForText</td>
+       <td>edit-filter-form</td>
+       <td>*Edit Filter*</td>
+</tr>
+<tr>
+       <td>type</td>
+       <td>select-filter-owner</td>
+       <td>can_share</td>
+</tr>
+<tr>
+       <td>clickAndWait</td>
+       <td>save-submit</td>
+       <td></td>
+</tr>
+<tr>
+       <td>assertText</td>
+       <td>filter-title</td>
+       <td>glob:*${FILTER_NAME}*Shared by can_share*</td>
+</tr>
+</tbody>
+</table>
+</body>
+</html>
diff --git a/it/it-tests/src/test/resources/permissions/SystemAdminPermissionTest/change-shared-global-dashboard-owner-failure.html b/it/it-tests/src/test/resources/permissions/SystemAdminPermissionTest/change-shared-global-dashboard-owner-failure.html
new file mode 100644 (file)
index 0000000..d89c7cb
--- /dev/null
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+  <title>change-shared-global-dashboard-owner</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+  <tbody>
+  <tr>
+      <td>open</td>
+      <td>/sessions/logout</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>open</td>
+    <td>/dashboards</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>type</td>
+    <td>login</td>
+    <td>admin</td>
+  </tr>
+  <tr>
+    <td>type</td>
+    <td>password</td>
+    <td>admin</td>
+  </tr>
+  <tr>
+    <td>clickAndWait</td>
+    <td>commit</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>click</td>
+    <td>create-link-dashboard</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>waitForVisible</td>
+    <td>css=div.modal-body</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>type</td>
+    <td>name</td>
+    <td>shared-global-dashboard-fail</td>
+  </tr>
+  <tr>
+    <td>storeValue</td>
+    <td>name</td>
+    <td>DASHBOARD_NAME</td>
+  </tr>
+  <tr>
+    <td>click</td>
+    <td>name=shared</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>clickAndWait</td>
+    <td>save-submit</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>waitForVisible</td>
+    <td>edit-${DASHBOARD_NAME}</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>click</td>
+    <td>edit-${DASHBOARD_NAME}</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>waitForVisible</td>
+    <td>css=div.modal-body</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>type</td>
+    <td>select-dashboard-owner</td>
+    <td>cannot_share</td>
+  </tr>
+  <tr>
+    <td>click</td>
+    <td>save-submit</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>waitForVisible</td>
+    <td>css=div.modal-body > p.error</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>assertText</td>
+    <td>css=div.modal-body > p.error</td>
+    <td>glob:*User cannot own this dashboard because of insufficient rights*</td>
+  </tr>
+  </tbody>
+</table>
+</body>
+</html>
diff --git a/it/it-tests/src/test/resources/permissions/SystemAdminPermissionTest/change-shared-global-dashboard-owner.html b/it/it-tests/src/test/resources/permissions/SystemAdminPermissionTest/change-shared-global-dashboard-owner.html
new file mode 100644 (file)
index 0000000..46819e9
--- /dev/null
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+  <title>change-shared-global-dashboard-owner</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+  <tbody>
+  <tr>
+      <td>open</td>
+      <td>/sessions/logout</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>open</td>
+    <td>/dashboards</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>type</td>
+    <td>login</td>
+    <td>admin</td>
+  </tr>
+  <tr>
+    <td>type</td>
+    <td>password</td>
+    <td>admin</td>
+  </tr>
+  <tr>
+    <td>clickAndWait</td>
+    <td>commit</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>waitForVisible</td>
+    <td>create-link-dashboard</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>click</td>
+    <td>create-link-dashboard</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>waitForVisible</td>
+    <td>css=div.modal-body</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>type</td>
+    <td>name</td>
+    <td>shared-global-dashboard</td>
+  </tr>
+  <tr>
+    <td>storeValue</td>
+    <td>name</td>
+    <td>DASHBOARD_NAME</td>
+  </tr>
+  <tr>
+    <td>click</td>
+    <td>name=shared</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>clickAndWait</td>
+    <td>save-submit</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>waitForVisible</td>
+    <td>edit-${DASHBOARD_NAME}</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>click</td>
+    <td>edit-${DASHBOARD_NAME}</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>waitForVisible</td>
+    <td>css=div.modal-body</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>type</td>
+    <td>select-dashboard-owner</td>
+    <td>can_share</td>
+  </tr>
+  <tr>
+    <td>clickAndWait</td>
+    <td>save-submit</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>assertText</td>
+    <td>dashboards</td>
+    <td>glob:*can_share*</td>
+  </tr>
+  </tbody>
+</table>
+</body>
+</html>
diff --git a/it/it-tests/src/test/resources/permissions/SystemAdminPermissionTest/change-shared-project-dashboard-owner-failure.html b/it/it-tests/src/test/resources/permissions/SystemAdminPermissionTest/change-shared-project-dashboard-owner-failure.html
new file mode 100644 (file)
index 0000000..7a4545d
--- /dev/null
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+  <title>change-shared-project-dashboard-owner</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+  <tbody>
+  <tr>
+      <td>open</td>
+      <td>/sessions/logout</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>open</td>
+    <td>/sessions/new</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>type</td>
+    <td>login</td>
+    <td>admin</td>
+  </tr>
+  <tr>
+    <td>type</td>
+    <td>password</td>
+    <td>admin</td>
+  </tr>
+  <tr>
+    <td>clickAndWait</td>
+    <td>commit</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>open</td>
+    <td>/dashboards?resource=sample</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>click</td>
+    <td>create-link-dashboard</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>waitForVisible</td>
+    <td>css=div.modal-body</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>type</td>
+    <td>name</td>
+    <td>shared-project-dashboard-fail</td>
+  </tr>
+  <tr>
+    <td>storeValue</td>
+    <td>name</td>
+    <td>DASHBOARD_NAME</td>
+  </tr>
+  <tr>
+    <td>click</td>
+    <td>name=shared</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>clickAndWait</td>
+    <td>save-submit</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>waitForVisible</td>
+    <td>edit-${DASHBOARD_NAME}</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>click</td>
+    <td>edit-${DASHBOARD_NAME}</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>waitForVisible</td>
+    <td>css=div.modal-body</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>type</td>
+    <td>select-dashboard-owner</td>
+    <td>cannot_share</td>
+  </tr>
+  <tr>
+    <td>click</td>
+    <td>save-submit</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>waitForVisible</td>
+    <td>css=div.modal-body > p.error</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>assertText</td>
+    <td>css=div.modal-body > p.error</td>
+    <td>glob:*User cannot own this dashboard because of insufficient rights*</td>
+  </tr>
+  </tbody>
+</table>
+</body>
+</html>
diff --git a/it/it-tests/src/test/resources/permissions/SystemAdminPermissionTest/change-shared-project-dashboard-owner.html b/it/it-tests/src/test/resources/permissions/SystemAdminPermissionTest/change-shared-project-dashboard-owner.html
new file mode 100644 (file)
index 0000000..05bfe50
--- /dev/null
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+  <title>change-shared-project-dashboard-owner</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+  <tbody>
+  <tr>
+      <td>open</td>
+      <td>/sessions/logout</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>open</td>
+    <td>/sessions/new</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>type</td>
+    <td>login</td>
+    <td>admin</td>
+  </tr>
+  <tr>
+    <td>type</td>
+    <td>password</td>
+    <td>admin</td>
+  </tr>
+  <tr>
+    <td>clickAndWait</td>
+    <td>commit</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>open</td>
+    <td>/dashboards?resource=sample</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>click</td>
+    <td>create-link-dashboard</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>waitForVisible</td>
+    <td>css=div.modal-body</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>type</td>
+    <td>name</td>
+    <td>shared-project-dashboard</td>
+  </tr>
+  <tr>
+    <td>storeValue</td>
+    <td>name</td>
+    <td>DASHBOARD_NAME</td>
+  </tr>
+  <tr>
+    <td>click</td>
+    <td>name=shared</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>clickAndWait</td>
+    <td>save-submit</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>waitForVisible</td>
+    <td>edit-${DASHBOARD_NAME}</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>click</td>
+    <td>edit-${DASHBOARD_NAME}</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>waitForVisible</td>
+    <td>css=div.modal-body</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>type</td>
+    <td>select-dashboard-owner</td>
+    <td>can_share</td>
+  </tr>
+  <tr>
+    <td>clickAndWait</td>
+    <td>save-submit</td>
+    <td></td>
+  </tr>
+  <tr>
+    <td>assertText</td>
+    <td>dashboards</td>
+    <td>glob:*can_share*</td>
+  </tr>
+  </tbody>
+</table>
+</body>
+</html>
diff --git a/it/it-tests/src/test/resources/permissions/SystemAdminPermissionTest/change-system-measure-filter-owner.html b/it/it-tests/src/test/resources/permissions/SystemAdminPermissionTest/change-system-measure-filter-owner.html
new file mode 100644 (file)
index 0000000..0379982
--- /dev/null
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://selenium-ide.openqa.org/profiles/test-case">
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>change-system-measure-filter-owner</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+    <tbody>
+    <tr>
+      <td>storeEval</td>
+      <td>'filter_'+(new Date()).getTime()</td>
+      <td>FILTER_NAME</td>
+    </tr>
+    <tr>
+        <td>open</td>
+        <td>/sessions/logout</td>
+        <td></td>
+    </tr>
+    <tr>
+        <td>open</td>
+        <td>/sessions/new</td>
+        <td></td>
+    </tr>
+    <tr>
+        <td>type</td>
+        <td>login</td>
+        <td>admin</td>
+    </tr>
+    <tr>
+        <td>type</td>
+        <td>password</td>
+        <td>admin</td>
+    </tr>
+    <tr>
+        <td>clickAndWait</td>
+        <td>commit</td>
+        <td></td>
+    </tr>
+    <tr>
+        <td>open</td>
+        <td>/measures</td>
+        <td></td>
+    </tr>
+    <tr>
+        <td>waitForElementPresent</td>
+        <td>id=manage-favorites</td>
+        <td></td>
+    </tr>
+    <tr>
+        <td>clickAndWait</td>
+        <td>id=manage-favorites</td>
+        <td></td>
+    </tr>
+    <tr>
+        <td>assertText</td>
+        <td>shared-filters</td>
+        <td>glob:*My favourites*</td>
+    </tr>
+    <tr>
+        <td>click</td>
+        <td>edit_system_my-favourites</td>
+        <td></td>
+    </tr>
+    <tr>
+      <td>waitForText</td>
+      <td>edit-filter-form</td>
+      <td>*Edit Filter*</td>
+    </tr>
+    <tr>
+        <td>type</td>
+        <td>select-filter-owner</td>
+        <td>admin</td>
+    </tr>
+    <tr>
+        <td>clickAndWait</td>
+        <td>save-submit</td>
+        <td></td>
+    </tr>
+    <tr>
+        <td>assertText</td>
+        <td>filter-title</td>
+        <td>glob:*My favourites*Shared with all users*</td>
+    </tr>
+    </tbody>
+</table>
+</body>
+</html>