aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@sonarsource.com>2017-11-11 18:21:25 +0100
committerEric Hartmann <hartmann.eric@gmail.Com>2017-11-14 13:10:17 +0100
commit522c9d813b5f39073d809badffc85b0ebd7f1209 (patch)
tree2157b7242444144c80e3c0dbd179359652a006d4
parentd19b26a37c0810bc54659a167b779095912bc516 (diff)
downloadsonarqube-522c9d813b5f39073d809badffc85b0ebd7f1209.tar.gz
sonarqube-522c9d813b5f39073d809badffc85b0ebd7f1209.zip
Add category authorization to integration tests
-rwxr-xr-xcix.sh1
-rw-r--r--tests/src/test/java/org/sonarqube/tests/Category1Suite.java11
-rw-r--r--tests/src/test/java/org/sonarqube/tests/Category5Suite.java6
-rw-r--r--tests/src/test/java/org/sonarqube/tests/Category6Suite.java2
-rw-r--r--tests/src/test/java/org/sonarqube/tests/authorisation/PermissionTemplatesPageTest.java45
-rw-r--r--tests/src/test/java/org/sonarqube/tests/authorization/AuthorizationSuite.java55
-rw-r--r--tests/src/test/java/org/sonarqube/tests/authorization/ExecuteAnalysisPermissionTest.java (renamed from tests/src/test/java/org/sonarqube/tests/authorisation/ExecuteAnalysisPermissionTest.java)49
-rw-r--r--tests/src/test/java/org/sonarqube/tests/authorization/IssuePermissionTest.java (renamed from tests/src/test/java/org/sonarqube/tests/authorisation/IssuePermissionTest.java)21
-rw-r--r--tests/src/test/java/org/sonarqube/tests/authorization/PermissionSearchTest.java (renamed from tests/src/test/java/org/sonarqube/tests/authorisation/PermissionSearchTest.java)79
-rw-r--r--tests/src/test/java/org/sonarqube/tests/authorization/PermissionTemplateTest.java (renamed from tests/src/test/java/org/sonarqube/tests/authorisation/PermissionTemplateTest.java)2
-rw-r--r--tests/src/test/java/org/sonarqube/tests/authorization/ProvisioningPermissionTest.java (renamed from tests/src/test/java/org/sonarqube/tests/authorisation/ProvisioningPermissionTest.java)65
-rw-r--r--tests/src/test/java/org/sonarqube/tests/authorization/QualityProfileAdminPermissionTest.java (renamed from tests/src/test/java/org/sonarqube/tests/authorisation/QualityProfileAdminPermissionTest.java)9
-rw-r--r--tests/src/test/java/org/sonarqube/tests/authorization/SystemPasscodeTest.java (renamed from tests/src/test/java/org/sonarqube/tests/authorisation/SystemPasscodeTest.java)34
-rw-r--r--tests/src/test/java/util/user/Groups.java1
-rw-r--r--tests/src/test/java/util/user/UserRule.java26
-rw-r--r--tests/src/test/resources/authorisation/PermissionTemplatesPageTest/should_create.html94
-rw-r--r--tests/src/test/resources/authorisation/PermissionTemplatesPageTest/should_display_page.html84
-rw-r--r--tests/src/test/resources/authorisation/PermissionTemplatesPageTest/should_manage_project_creators.html105
18 files changed, 160 insertions, 529 deletions
diff --git a/cix.sh b/cix.sh
index 62b06de33c9..2830bc82ab4 100755
--- a/cix.sh
+++ b/cix.sh
@@ -33,6 +33,7 @@ case "$RUN_ACTIVITY" in
case "$CATEGORY_GROUP" in
Category1)
CATEGORY=Category1 && runCategory
+ CATEGORY=authorization && runCategory
CATEGORY=measure && runCategory
CATEGORY=source && runCategory
;;
diff --git a/tests/src/test/java/org/sonarqube/tests/Category1Suite.java b/tests/src/test/java/org/sonarqube/tests/Category1Suite.java
index 8fbbe37567d..2cc1da3ed4a 100644
--- a/tests/src/test/java/org/sonarqube/tests/Category1Suite.java
+++ b/tests/src/test/java/org/sonarqube/tests/Category1Suite.java
@@ -23,11 +23,6 @@ import com.sonar.orchestrator.Orchestrator;
import org.junit.ClassRule;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
-import org.sonarqube.tests.authorisation.ExecuteAnalysisPermissionTest;
-import org.sonarqube.tests.authorisation.IssuePermissionTest;
-import org.sonarqube.tests.authorisation.PermissionSearchTest;
-import org.sonarqube.tests.authorisation.ProvisioningPermissionTest;
-import org.sonarqube.tests.authorisation.QualityProfileAdminPermissionTest;
import org.sonarqube.tests.projectAdministration.BackgroundTasksTest;
import org.sonarqube.tests.projectAdministration.ProjectAdministrationTest;
import org.sonarqube.tests.projectAdministration.ProjectBulkDeletionPageTest;
@@ -67,12 +62,6 @@ import static util.ItUtils.xooPlugin;
QualityGateUiTest.class,
QualityGateNotificationTest.class,
QualityGateOnRatingMeasuresTest.class,
- // authorisation
- ExecuteAnalysisPermissionTest.class,
- IssuePermissionTest.class,
- PermissionSearchTest.class,
- ProvisioningPermissionTest.class,
- QualityProfileAdminPermissionTest.class,
// measure
ProjectsPageTest.class
})
diff --git a/tests/src/test/java/org/sonarqube/tests/Category5Suite.java b/tests/src/test/java/org/sonarqube/tests/Category5Suite.java
index 85125797af0..a5bc316c09f 100644
--- a/tests/src/test/java/org/sonarqube/tests/Category5Suite.java
+++ b/tests/src/test/java/org/sonarqube/tests/Category5Suite.java
@@ -22,10 +22,10 @@ package org.sonarqube.tests;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.sonarqube.tests.analysis.AnalysisEsResilienceTest;
-import org.sonarqube.tests.authorisation.SystemPasscodeTest;
import org.sonarqube.tests.ce.CeShutdownTest;
import org.sonarqube.tests.ce.CeWorkersTest;
import org.sonarqube.tests.issue.IssueCreationDatePluginChangedTest;
+import org.sonarqube.tests.marketplace.UpdateCenterTest;
import org.sonarqube.tests.qualityProfile.ActiveRuleEsResilienceTest;
import org.sonarqube.tests.qualityProfile.BuiltInQualityProfilesNotificationTest;
import org.sonarqube.tests.rule.RuleEsResilienceTest;
@@ -36,7 +36,6 @@ import org.sonarqube.tests.settings.SettingsTestRestartingOrchestrator;
import org.sonarqube.tests.startup.StartupIndexationTest;
import org.sonarqube.tests.telemetry.TelemetryOptOutTest;
import org.sonarqube.tests.telemetry.TelemetryUploadTest;
-import org.sonarqube.tests.marketplace.UpdateCenterTest;
import org.sonarqube.tests.user.OnboardingTest;
import org.sonarqube.tests.user.RealmAuthenticationTest;
import org.sonarqube.tests.user.SsoAuthenticationTest;
@@ -72,8 +71,7 @@ import org.sonarqube.tests.user.UserEsResilienceTest;
IssueCreationDatePluginChangedTest.class,
// elasticsearch
- StartupIndexationTest.class,
- SystemPasscodeTest.class
+ StartupIndexationTest.class
})
public class Category5Suite {
diff --git a/tests/src/test/java/org/sonarqube/tests/Category6Suite.java b/tests/src/test/java/org/sonarqube/tests/Category6Suite.java
index a7cec719ffc..aca8c327b4c 100644
--- a/tests/src/test/java/org/sonarqube/tests/Category6Suite.java
+++ b/tests/src/test/java/org/sonarqube/tests/Category6Suite.java
@@ -25,7 +25,7 @@ import java.net.InetAddress;
import org.junit.ClassRule;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
-import org.sonarqube.tests.authorisation.PermissionTemplateTest;
+import org.sonarqube.tests.authorization.PermissionTemplateTest;
import org.sonarqube.tests.ce.ReportFailureNotificationTest;
import org.sonarqube.tests.issue.IssueNotificationsTest;
import org.sonarqube.tests.issue.IssueTagsTest;
diff --git a/tests/src/test/java/org/sonarqube/tests/authorisation/PermissionTemplatesPageTest.java b/tests/src/test/java/org/sonarqube/tests/authorisation/PermissionTemplatesPageTest.java
deleted file mode 100644
index f94a50bb0b3..00000000000
--- a/tests/src/test/java/org/sonarqube/tests/authorisation/PermissionTemplatesPageTest.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * 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 org.sonarqube.tests.authorisation;
-
-import com.sonar.orchestrator.Orchestrator;
-import org.sonarqube.tests.Category1Suite;
-import org.junit.ClassRule;
-import org.junit.Test;
-
-import static util.selenium.Selenese.runSelenese;
-
-public class PermissionTemplatesPageTest {
-
- @ClassRule
- public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR;
-
- @Test
- public void should_display_page() throws Exception {
- runSelenese(orchestrator,
- "/authorisation/PermissionTemplatesPageTest/should_display_page.html",
- "/authorisation/PermissionTemplatesPageTest/should_create.html");
- }
-
- @Test
- public void should_manage_project_creators() throws Exception {
- runSelenese(orchestrator, "/authorisation/PermissionTemplatesPageTest/should_manage_project_creators.html");
- }
-}
diff --git a/tests/src/test/java/org/sonarqube/tests/authorization/AuthorizationSuite.java b/tests/src/test/java/org/sonarqube/tests/authorization/AuthorizationSuite.java
new file mode 100644
index 00000000000..cee2d04936e
--- /dev/null
+++ b/tests/src/test/java/org/sonarqube/tests/authorization/AuthorizationSuite.java
@@ -0,0 +1,55 @@
+/*
+ * 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 org.sonarqube.tests.authorization;
+
+import com.sonar.orchestrator.Orchestrator;
+import org.junit.ClassRule;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+import static util.ItUtils.pluginArtifact;
+import static util.ItUtils.xooPlugin;
+
+@RunWith(Suite.class)
+@Suite.SuiteClasses({
+ ExecuteAnalysisPermissionTest.class,
+ IssuePermissionTest.class,
+ PermissionSearchTest.class,
+ ProvisioningPermissionTest.class,
+ QualityProfileAdminPermissionTest.class,
+ SystemPasscodeTest.class
+})
+public class AuthorizationSuite {
+
+ @ClassRule
+ public static final Orchestrator ORCHESTRATOR = Orchestrator.builderEnv()
+ // reduce memory for Elasticsearch
+ .setServerProperty("sonar.search.javaOpts", "-Xms128m -Xmx128m")
+
+ // for SystemPasscodeTest
+ // this privileged plugin provides the WS api/system_passcode/check
+ // that is used by the tests
+ .addPlugin(pluginArtifact("fake-governance-plugin"))
+ .setServerProperty("sonar.web.systemPasscode", SystemPasscodeTest.VALID_PASSCODE)
+
+ .addPlugin(xooPlugin())
+ .build();
+
+}
diff --git a/tests/src/test/java/org/sonarqube/tests/authorisation/ExecuteAnalysisPermissionTest.java b/tests/src/test/java/org/sonarqube/tests/authorization/ExecuteAnalysisPermissionTest.java
index 65f1a52bce1..78f8cfc1e0a 100644
--- a/tests/src/test/java/org/sonarqube/tests/authorisation/ExecuteAnalysisPermissionTest.java
+++ b/tests/src/test/java/org/sonarqube/tests/authorization/ExecuteAnalysisPermissionTest.java
@@ -17,18 +17,16 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonarqube.tests.authorisation;
+package org.sonarqube.tests.authorization;
import com.sonar.orchestrator.Orchestrator;
import com.sonar.orchestrator.build.BuildFailureException;
-import org.sonarqube.tests.Category1Suite;
import org.junit.After;
import org.junit.Before;
import org.junit.ClassRule;
+import org.junit.Rule;
import org.junit.Test;
-import org.sonar.wsclient.SonarClient;
-import org.sonar.wsclient.user.UserParameters;
-import org.sonarqube.ws.client.WsClient;
+import org.sonarqube.qa.util.Tester;
import org.sonarqube.ws.client.permission.AddGroupWsRequest;
import org.sonarqube.ws.client.permission.AddProjectCreatorToTemplateWsRequest;
import org.sonarqube.ws.client.permission.RemoveGroupWsRequest;
@@ -36,7 +34,6 @@ import org.sonarqube.ws.client.project.UpdateVisibilityRequest;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.fail;
-import static util.ItUtils.newAdminWsClient;
import static util.ItUtils.runProjectAnalysis;
/**
@@ -44,29 +41,27 @@ import static util.ItUtils.runProjectAnalysis;
*/
public class ExecuteAnalysisPermissionTest {
- @ClassRule
- public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR;
-
private final static String USER_LOGIN = "scanperm";
private final static String USER_PASSWORD = "thewhite";
private final static String PROJECT_KEY = "sample";
- private static WsClient adminWsClient;
- private static SonarClient oldAdminWsClient;
+ @ClassRule
+ public static Orchestrator orchestrator = AuthorizationSuite.ORCHESTRATOR;
+
+ @Rule
+ public Tester tester = new Tester(orchestrator)
+ // all the tests of AuthorizationSuite must disable organizations
+ .disableOrganizations();
@Before
public void setUp() {
- orchestrator.resetData();
- oldAdminWsClient = orchestrator.getServer().adminWsClient();
- oldAdminWsClient.userClient().create(UserParameters.create().login(USER_LOGIN).name(USER_LOGIN).password(USER_PASSWORD).passwordConfirmation(USER_PASSWORD));
+ tester.users().generate(u -> u.setLogin(USER_LOGIN).setPassword(USER_PASSWORD));
orchestrator.getServer().provisionProject(PROJECT_KEY, "Sample");
- adminWsClient = newAdminWsClient(orchestrator);
}
@After
public void tearDown() {
addGlobalPermission("anyone", "scan");
- oldAdminWsClient.userClient().deactivate(USER_LOGIN);
}
@Test
@@ -83,7 +78,7 @@ public class ExecuteAnalysisPermissionTest {
"You're only authorized to execute a local (preview) SonarQube analysis without pushing the results to the SonarQube server. Please contact your SonarQube administrator.");
}
- newAdminWsClient(orchestrator).projects().updateVisibility(UpdateVisibilityRequest.builder().setProject(PROJECT_KEY).setVisibility("private").build());
+ tester.wsClient().projects().updateVisibility(UpdateVisibilityRequest.builder().setProject(PROJECT_KEY).setVisibility("private").build());
try {
// Execute anonymous analysis
executeAnonymousAnalysis();
@@ -100,7 +95,7 @@ public class ExecuteAnalysisPermissionTest {
executeAnonymousAnalysis();
// make project private
- newAdminWsClient(orchestrator).projects().updateVisibility(UpdateVisibilityRequest.builder().setProject("sample").setVisibility("private").build());
+ tester.wsClient().projects().updateVisibility(UpdateVisibilityRequest.builder().setProject("sample").setVisibility("private").build());
// still no error
executeAnonymousAnalysis();
@@ -117,7 +112,7 @@ public class ExecuteAnalysisPermissionTest {
@Test
public void execute_analysis_with_scan_on_default_template() {
removeGlobalPermission("anyone", "scan");
- adminWsClient.permissions().addProjectCreatorToTemplate(AddProjectCreatorToTemplateWsRequest.builder()
+ tester.wsClient().permissions().addProjectCreatorToTemplate(AddProjectCreatorToTemplateWsRequest.builder()
.setPermission("scan")
.setTemplateId("default_template")
.build());
@@ -125,20 +120,16 @@ public class ExecuteAnalysisPermissionTest {
runProjectAnalysis(orchestrator, "shared/xoo-sample", "sonar.login", USER_LOGIN, "sonar.password", USER_PASSWORD, "sonar.projectKey", "ANOTHER_PROJECT_KEY");
}
- private static void addProjectPermission(String groupName, String projectKey, String permission) {
- adminWsClient.permissions().addGroup(new AddGroupWsRequest().setGroupName(groupName).setProjectKey(projectKey).setPermission(permission));
- }
-
- private static void addGlobalPermission(String groupName, String permission) {
- adminWsClient.permissions().addGroup(new AddGroupWsRequest().setGroupName(groupName).setPermission(permission));
+ private void addProjectPermission(String groupName, String projectKey, String permission) {
+ tester.wsClient().permissions().addGroup(new AddGroupWsRequest().setGroupName(groupName).setProjectKey(projectKey).setPermission(permission));
}
- private static void removeProjectPermission(String groupName, String projectKey, String permission) {
- adminWsClient.permissions().removeGroup(new RemoveGroupWsRequest().setGroupName(groupName).setProjectKey(projectKey).setPermission(permission));
+ private void addGlobalPermission(String groupName, String permission) {
+ tester.wsClient().permissions().addGroup(new AddGroupWsRequest().setGroupName(groupName).setPermission(permission));
}
- private static void removeGlobalPermission(String groupName, String permission) {
- adminWsClient.permissions().removeGroup(new RemoveGroupWsRequest().setGroupName(groupName).setPermission(permission));
+ private void removeGlobalPermission(String groupName, String permission) {
+ tester.wsClient().permissions().removeGroup(new RemoveGroupWsRequest().setGroupName(groupName).setPermission(permission));
}
private static void executeLoggedAnalysis() {
diff --git a/tests/src/test/java/org/sonarqube/tests/authorisation/IssuePermissionTest.java b/tests/src/test/java/org/sonarqube/tests/authorization/IssuePermissionTest.java
index 21f39e7d636..910bb6124c2 100644
--- a/tests/src/test/java/org/sonarqube/tests/authorisation/IssuePermissionTest.java
+++ b/tests/src/test/java/org/sonarqube/tests/authorization/IssuePermissionTest.java
@@ -17,21 +17,21 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonarqube.tests.authorisation;
+package org.sonarqube.tests.authorization;
import com.sonar.orchestrator.Orchestrator;
import com.sonar.orchestrator.build.SonarScanner;
-import org.sonarqube.tests.Category1Suite;
import org.junit.Before;
import org.junit.ClassRule;
+import org.junit.Rule;
import org.junit.Test;
import org.sonar.wsclient.SonarClient;
import org.sonar.wsclient.base.HttpException;
import org.sonar.wsclient.issue.Issue;
import org.sonar.wsclient.issue.IssueQuery;
import org.sonar.wsclient.user.UserParameters;
+import org.sonarqube.qa.util.Tester;
import org.sonarqube.ws.Issues;
-import org.sonarqube.ws.client.WsClient;
import org.sonarqube.ws.client.issue.BulkChangeRequest;
import org.sonarqube.ws.client.permission.AddUserWsRequest;
import org.sonarqube.ws.client.project.UpdateVisibilityRequest;
@@ -40,24 +40,25 @@ import util.ItUtils;
import static java.util.Arrays.asList;
import static junit.framework.TestCase.fail;
import static org.assertj.core.api.Assertions.assertThat;
-import static util.ItUtils.newAdminWsClient;
import static util.ItUtils.newUserWsClient;
import static util.ItUtils.projectDir;
public class IssuePermissionTest {
@ClassRule
- public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR;
- public WsClient adminWsClient = newAdminWsClient(orchestrator);
+ public static Orchestrator orchestrator = AuthorizationSuite.ORCHESTRATOR;
+
+ @Rule
+ public Tester tester = new Tester(orchestrator)
+ // all the tests of AuthorizationSuite must disable organizations
+ .disableOrganizations();
@Before
public void init() {
- orchestrator.resetData();
-
ItUtils.restoreProfile(orchestrator, getClass().getResource("/authorisation/one-issue-per-line-profile.xml"));
orchestrator.getServer().provisionProject("privateProject", "PrivateProject");
- newAdminWsClient(orchestrator).projects().updateVisibility(UpdateVisibilityRequest.builder().setProject("privateProject").setVisibility("private").build());
+ tester.wsClient().projects().updateVisibility(UpdateVisibilityRequest.builder().setProject("privateProject").setVisibility("private").build());
orchestrator.getServer().associateProjectToQualityProfile("privateProject", "xoo", "one-issue-per-line");
SonarScanner privateProject = SonarScanner.create(projectDir("shared/xoo-sample"))
.setProperty("sonar.projectKey", "privateProject")
@@ -263,7 +264,7 @@ public class IssuePermissionTest {
}
private void addUserPermission(String login, String projectKey, String permission) {
- adminWsClient.permissions().addUser(
+ tester.wsClient().permissions().addUser(
new AddUserWsRequest()
.setLogin(login)
.setProjectKey(projectKey)
diff --git a/tests/src/test/java/org/sonarqube/tests/authorisation/PermissionSearchTest.java b/tests/src/test/java/org/sonarqube/tests/authorization/PermissionSearchTest.java
index 7698aa3bb8e..703544e337f 100644
--- a/tests/src/test/java/org/sonarqube/tests/authorisation/PermissionSearchTest.java
+++ b/tests/src/test/java/org/sonarqube/tests/authorization/PermissionSearchTest.java
@@ -17,20 +17,19 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonarqube.tests.authorisation;
+package org.sonarqube.tests.authorization;
import com.sonar.orchestrator.Orchestrator;
import com.sonar.orchestrator.build.SonarScanner;
-import org.sonarqube.tests.Category1Suite;
-import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.rules.RuleChain;
+import org.sonarqube.qa.util.Tester;
import org.sonarqube.ws.WsPermissions;
import org.sonarqube.ws.WsPermissions.Permission;
import org.sonarqube.ws.WsPermissions.SearchTemplatesWsResponse;
import org.sonarqube.ws.client.PostRequest;
-import org.sonarqube.ws.client.WsClient;
import org.sonarqube.ws.client.permission.AddGroupToTemplateWsRequest;
import org.sonarqube.ws.client.permission.AddGroupWsRequest;
import org.sonarqube.ws.client.permission.AddProjectCreatorToTemplateWsRequest;
@@ -38,7 +37,6 @@ import org.sonarqube.ws.client.permission.AddUserToTemplateWsRequest;
import org.sonarqube.ws.client.permission.AddUserWsRequest;
import org.sonarqube.ws.client.permission.CreateTemplateWsRequest;
import org.sonarqube.ws.client.permission.GroupsWsRequest;
-import org.sonarqube.ws.client.permission.PermissionsService;
import org.sonarqube.ws.client.permission.RemoveGroupFromTemplateWsRequest;
import org.sonarqube.ws.client.permission.RemoveProjectCreatorFromTemplateWsRequest;
import org.sonarqube.ws.client.permission.RemoveUserFromTemplateWsRequest;
@@ -48,65 +46,58 @@ import util.ItUtils;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.tuple;
-import static util.ItUtils.newAdminWsClient;
import static util.ItUtils.projectDir;
public class PermissionSearchTest {
- @ClassRule
- public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR;
- private static WsClient adminWsClient;
- private static PermissionsService permissionsWsClient;
private static final String PROJECT_KEY = "sample";
private static final String LOGIN = "george.orwell";
private static final String GROUP_NAME = "1984";
+
+ @ClassRule
+ public static Orchestrator orchestrator = AuthorizationSuite.ORCHESTRATOR;
+
+ private static Tester tester = new Tester(orchestrator)
+ // all the tests of AuthorizationSuite must disable organizations
+ .disableOrganizations();
+
+ @ClassRule
+ public static RuleChain ruleChain = RuleChain.outerRule(orchestrator).around(tester);
@BeforeClass
public static void analyzeProject() {
- orchestrator.resetData();
-
ItUtils.restoreProfile(orchestrator, PermissionSearchTest.class.getResource("/authorisation/one-issue-per-line-profile.xml"));
orchestrator.getServer().provisionProject(PROJECT_KEY, "Sample");
orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line");
SonarScanner sampleProject = SonarScanner.create(projectDir("shared/xoo-sample"));
orchestrator.executeBuild(sampleProject);
-
- adminWsClient = newAdminWsClient(orchestrator);
- permissionsWsClient = adminWsClient.permissions();
-
createUser(LOGIN, "George Orwell");
createGroup(GROUP_NAME);
}
- @AfterClass
- public static void delete_data() {
- deactivateUser(LOGIN);
- deleteGroup(GROUP_NAME);
- }
-
@Test
public void permission_web_services() {
- permissionsWsClient.addUser(
+ tester.wsClient().permissions().addUser(
new AddUserWsRequest()
.setPermission("admin")
.setLogin(LOGIN));
- permissionsWsClient.addGroup(
+ tester.wsClient().permissions().addGroup(
new AddGroupWsRequest()
.setPermission("admin")
.setGroupName(GROUP_NAME));
- WsPermissions.WsSearchGlobalPermissionsResponse searchGlobalPermissionsWsResponse = permissionsWsClient.searchGlobalPermissions();
+ WsPermissions.WsSearchGlobalPermissionsResponse searchGlobalPermissionsWsResponse = tester.wsClient().permissions().searchGlobalPermissions();
assertThat(searchGlobalPermissionsWsResponse.getPermissionsList().get(0).getKey()).isEqualTo("admin");
assertThat(searchGlobalPermissionsWsResponse.getPermissionsList().get(0).getUsersCount()).isEqualTo(1);
// by default, a group has the global admin permission
assertThat(searchGlobalPermissionsWsResponse.getPermissionsList().get(0).getGroupsCount()).isEqualTo(2);
- WsPermissions.UsersWsResponse users = permissionsWsClient
+ WsPermissions.UsersWsResponse users = tester.wsClient().permissions()
.users(new UsersWsRequest().setPermission("admin"));
assertThat(users.getUsersList()).extracting("login").contains(LOGIN);
- WsPermissions.WsGroupsResponse groupsResponse = permissionsWsClient
+ WsPermissions.WsGroupsResponse groupsResponse = tester.wsClient().permissions()
.groups(new GroupsWsRequest()
.setPermission("admin"));
assertThat(groupsResponse.getGroupsList()).extracting("name").contains(GROUP_NAME);
@@ -114,31 +105,31 @@ public class PermissionSearchTest {
@Test
public void template_permission_web_services() {
- WsPermissions.CreateTemplateWsResponse createTemplateWsResponse = permissionsWsClient.createTemplate(
+ WsPermissions.CreateTemplateWsResponse createTemplateWsResponse = tester.wsClient().permissions().createTemplate(
new CreateTemplateWsRequest()
.setName("my-new-template")
.setDescription("template-used-in-tests"));
assertThat(createTemplateWsResponse.getPermissionTemplate().getName()).isEqualTo("my-new-template");
- permissionsWsClient.addUserToTemplate(
+ tester.wsClient().permissions().addUserToTemplate(
new AddUserToTemplateWsRequest()
.setPermission("admin")
.setTemplateName("my-new-template")
.setLogin(LOGIN));
- permissionsWsClient.addGroupToTemplate(
+ tester.wsClient().permissions().addGroupToTemplate(
new AddGroupToTemplateWsRequest()
.setPermission("admin")
.setTemplateName("my-new-template")
.setGroupName(GROUP_NAME));
- permissionsWsClient.addProjectCreatorToTemplate(
+ tester.wsClient().permissions().addProjectCreatorToTemplate(
AddProjectCreatorToTemplateWsRequest.builder()
.setPermission("admin")
.setTemplateName("my-new-template")
.build());
- SearchTemplatesWsResponse searchTemplatesWsResponse = permissionsWsClient.searchTemplates(
+ SearchTemplatesWsResponse searchTemplatesWsResponse = tester.wsClient().permissions().searchTemplates(
new SearchTemplatesWsRequest()
.setQuery("my-new-template"));
assertThat(searchTemplatesWsResponse.getPermissionTemplates(0).getName()).isEqualTo("my-new-template");
@@ -147,26 +138,26 @@ public class PermissionSearchTest {
assertThat(searchTemplatesWsResponse.getPermissionTemplates(0).getPermissions(0).getGroupsCount()).isEqualTo(1);
assertThat(searchTemplatesWsResponse.getPermissionTemplates(0).getPermissions(0).getWithProjectCreator()).isTrue();
- permissionsWsClient.removeGroupFromTemplate(
+ tester.wsClient().permissions().removeGroupFromTemplate(
new RemoveGroupFromTemplateWsRequest()
.setPermission("admin")
.setTemplateName("my-new-template")
.setGroupName(GROUP_NAME));
- permissionsWsClient.removeUserFromTemplate(
+ tester.wsClient().permissions().removeUserFromTemplate(
new RemoveUserFromTemplateWsRequest()
.setPermission("admin")
.setTemplateName("my-new-template")
.setLogin(LOGIN));
- permissionsWsClient.removeProjectCreatorFromTemplate(
+ tester.wsClient().permissions().removeProjectCreatorFromTemplate(
RemoveProjectCreatorFromTemplateWsRequest.builder()
.setPermission("admin")
.setTemplateName("my-new-template")
.build()
);
- SearchTemplatesWsResponse clearedSearchTemplatesWsResponse = permissionsWsClient.searchTemplates(
+ SearchTemplatesWsResponse clearedSearchTemplatesWsResponse = tester.wsClient().permissions().searchTemplates(
new SearchTemplatesWsRequest()
.setQuery("my-new-template"));
assertThat(clearedSearchTemplatesWsResponse.getPermissionTemplates(0).getPermissionsList())
@@ -176,28 +167,16 @@ public class PermissionSearchTest {
}
private static void createUser(String login, String name) {
- adminWsClient.wsConnector().call(
+ tester.wsClient().wsConnector().call(
new PostRequest("api/users/create")
.setParam("login", login)
.setParam("name", name)
.setParam("password", "123456"));
}
- private static void deactivateUser(String login) {
- adminWsClient.wsConnector().call(
- new PostRequest("api/users/deactivate")
- .setParam("login", login));
- }
-
private static void createGroup(String groupName) {
- adminWsClient.wsConnector().call(
+ tester.wsClient().wsConnector().call(
new PostRequest("api/user_groups/create")
.setParam("name", groupName));
}
-
- private static void deleteGroup(String groupName) {
- adminWsClient.wsConnector().call(
- new PostRequest("api/user_groups/delete")
- .setParam("name", groupName));
- }
}
diff --git a/tests/src/test/java/org/sonarqube/tests/authorisation/PermissionTemplateTest.java b/tests/src/test/java/org/sonarqube/tests/authorization/PermissionTemplateTest.java
index b0a82a81dc3..66b925d4fc4 100644
--- a/tests/src/test/java/org/sonarqube/tests/authorisation/PermissionTemplateTest.java
+++ b/tests/src/test/java/org/sonarqube/tests/authorization/PermissionTemplateTest.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 org.sonarqube.tests.authorisation;
+package org.sonarqube.tests.authorization;
import com.sonar.orchestrator.Orchestrator;
import java.util.Arrays;
diff --git a/tests/src/test/java/org/sonarqube/tests/authorisation/ProvisioningPermissionTest.java b/tests/src/test/java/org/sonarqube/tests/authorization/ProvisioningPermissionTest.java
index a71af6eecc5..27c5b610d6e 100644
--- a/tests/src/test/java/org/sonarqube/tests/authorisation/ProvisioningPermissionTest.java
+++ b/tests/src/test/java/org/sonarqube/tests/authorization/ProvisioningPermissionTest.java
@@ -17,77 +17,67 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonarqube.tests.authorisation;
+package org.sonarqube.tests.authorization;
import com.sonar.orchestrator.Orchestrator;
-import org.sonarqube.tests.Category1Suite;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.ClassRule;
-import org.junit.Rule;
import org.junit.Test;
-import org.junit.rules.ExpectedException;
+import org.junit.rules.RuleChain;
+import org.sonarqube.qa.util.Tester;
import org.sonarqube.ws.WsProjects.CreateWsResponse.Project;
-import org.sonarqube.ws.client.HttpException;
import org.sonarqube.ws.client.permission.AddGroupWsRequest;
import org.sonarqube.ws.client.permission.AddUserWsRequest;
-import org.sonarqube.ws.client.permission.PermissionsService;
import org.sonarqube.ws.client.permission.RemoveGroupWsRequest;
import org.sonarqube.ws.client.permission.RemoveUserWsRequest;
import org.sonarqube.ws.client.project.CreateRequest;
-import util.user.UserRule;
+import util.ItUtils;
import static org.assertj.core.api.Assertions.assertThat;
-import static util.ItUtils.newAdminWsClient;
-import static util.ItUtils.newUserWsClient;
import static util.selenium.Selenese.runSelenese;
public class ProvisioningPermissionTest {
- @Rule
- public ExpectedException thrown = ExpectedException.none();
-
- @ClassRule
- public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR;
-
- @ClassRule
- public static UserRule userRule = UserRule.from(orchestrator);
-
private static final String PASSWORD = "password";
-
private static final String ADMIN_WITH_PROVISIONING = "admin-with-provisioning";
private static final String ADMIN_WITHOUT_PROVISIONING = "admin-without-provisioning";
private static final String USER_WITH_PROVISIONING = "user-with-provisioning";
private static final String USER_WITHOUT_PROVISIONING = "user-without-provisioning";
- private static PermissionsService permissionsWsClient;
+ @ClassRule
+ public static Orchestrator orchestrator = AuthorizationSuite.ORCHESTRATOR;
+
+ private static Tester tester = new Tester(orchestrator)
+ // all the tests of AuthorizationSuite must disable organizations
+ .disableOrganizations();
+
+ @ClassRule
+ public static RuleChain ruleChain = RuleChain.outerRule(orchestrator).around(tester);
@BeforeClass
public static void init() {
- permissionsWsClient = newAdminWsClient(orchestrator).permissions();
-
// remove default permission "provisioning" from anyone();
- permissionsWsClient.removeGroup(new RemoveGroupWsRequest().setGroupName("anyone").setPermission("provisioning"));
+ tester.wsClient().permissions().removeGroup(new RemoveGroupWsRequest().setGroupName("anyone").setPermission("provisioning"));
- userRule.createUser(ADMIN_WITH_PROVISIONING, PASSWORD);
+ tester.users().generate(u -> u.setLogin(ADMIN_WITH_PROVISIONING).setPassword(PASSWORD));
addUserPermission(ADMIN_WITH_PROVISIONING, "admin");
addUserPermission(ADMIN_WITH_PROVISIONING, "provisioning");
- userRule.createUser(ADMIN_WITHOUT_PROVISIONING, PASSWORD);
+ tester.users().generate(u -> u.setLogin(ADMIN_WITHOUT_PROVISIONING).setPassword(PASSWORD));
addUserPermission(ADMIN_WITHOUT_PROVISIONING, "admin");
removeUserPermission(ADMIN_WITHOUT_PROVISIONING, "provisioning");
- userRule.createUser(USER_WITH_PROVISIONING, PASSWORD);
+ tester.users().generate(u -> u.setLogin(USER_WITH_PROVISIONING).setPassword(PASSWORD));
addUserPermission(USER_WITH_PROVISIONING, "provisioning");
- userRule.createUser(USER_WITHOUT_PROVISIONING, PASSWORD);
+ tester.users().generate(u -> u.setLogin(USER_WITHOUT_PROVISIONING).setPassword(PASSWORD));
removeUserPermission(USER_WITHOUT_PROVISIONING, "provisioning");
}
@AfterClass
public static void restoreData() throws Exception {
- userRule.resetUsers();
- permissionsWsClient.addGroup(new AddGroupWsRequest().setGroupName("anyone").setPermission("provisioning"));
+ tester.wsClient().permissions().addGroup(new AddGroupWsRequest().setGroupName("anyone").setPermission("provisioning"));
}
/**
@@ -117,7 +107,7 @@ public class ProvisioningPermissionTest {
final String newKey = "new-project";
final String newName = "New Project";
- Project created = newUserWsClient(orchestrator, USER_WITH_PROVISIONING, PASSWORD).projects()
+ Project created = tester.as(USER_WITH_PROVISIONING, PASSWORD).wsClient().projects()
.create(CreateRequest.builder().setKey(newKey).setName(newName).build())
.getProject();
@@ -132,19 +122,18 @@ public class ProvisioningPermissionTest {
*/
@Test
public void user_cannot_provision_project_through_ws_if_he_does_not_have_provisioning_permission() {
- thrown.expect(HttpException.class);
- thrown.expectMessage("403");
-
- newUserWsClient(orchestrator, USER_WITHOUT_PROVISIONING, PASSWORD).projects()
- .create(CreateRequest.builder().setKey("new-project").setName("New Project").build())
- .getProject();
+ ItUtils.expectForbiddenError(() -> {
+ tester.as(USER_WITHOUT_PROVISIONING, PASSWORD).wsClient().projects()
+ .create(CreateRequest.builder().setKey("new-project").setName("New Project").build())
+ .getProject();
+ });
}
private static void addUserPermission(String login, String permission) {
- permissionsWsClient.addUser(new AddUserWsRequest().setLogin(login).setPermission(permission));
+ tester.wsClient().permissions().addUser(new AddUserWsRequest().setLogin(login).setPermission(permission));
}
private static void removeUserPermission(String login, String permission) {
- permissionsWsClient.removeUser(new RemoveUserWsRequest().setLogin(login).setPermission(permission));
+ tester.wsClient().permissions().removeUser(new RemoveUserWsRequest().setLogin(login).setPermission(permission));
}
}
diff --git a/tests/src/test/java/org/sonarqube/tests/authorisation/QualityProfileAdminPermissionTest.java b/tests/src/test/java/org/sonarqube/tests/authorization/QualityProfileAdminPermissionTest.java
index b96d5cc719c..97d784d596a 100644
--- a/tests/src/test/java/org/sonarqube/tests/authorisation/QualityProfileAdminPermissionTest.java
+++ b/tests/src/test/java/org/sonarqube/tests/authorization/QualityProfileAdminPermissionTest.java
@@ -17,13 +17,12 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonarqube.tests.authorisation;
+package org.sonarqube.tests.authorization;
import com.sonar.orchestrator.Orchestrator;
import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.Test;
-import org.sonarqube.tests.Category1Suite;
import org.sonarqube.qa.util.Tester;
import org.sonarqube.ws.client.permission.AddUserWsRequest;
import org.sonarqube.ws.client.qualityprofile.CreateRequest;
@@ -37,10 +36,12 @@ import static util.ItUtils.runProjectAnalysis;
public class QualityProfileAdminPermissionTest {
@ClassRule
- public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR;
+ public static Orchestrator orchestrator = AuthorizationSuite.ORCHESTRATOR;
@Rule
- public Tester tester = new Tester(orchestrator).disableOrganizations();
+ public Tester tester = new Tester(orchestrator)
+ // all the tests of AuthorizationSuite must disable organizations
+ .disableOrganizations();
@Test
public void permission_should_grant_access_to_profile() {
diff --git a/tests/src/test/java/org/sonarqube/tests/authorisation/SystemPasscodeTest.java b/tests/src/test/java/org/sonarqube/tests/authorization/SystemPasscodeTest.java
index b7fabd3bb92..5ec92f46fdd 100644
--- a/tests/src/test/java/org/sonarqube/tests/authorisation/SystemPasscodeTest.java
+++ b/tests/src/test/java/org/sonarqube/tests/authorization/SystemPasscodeTest.java
@@ -17,12 +17,10 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-package org.sonarqube.tests.authorisation;
+package org.sonarqube.tests.authorization;
import com.sonar.orchestrator.Orchestrator;
-import com.sonar.orchestrator.OrchestratorBuilder;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
+import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.Test;
import org.sonarqube.qa.util.Tester;
@@ -31,36 +29,20 @@ import org.sonarqube.ws.client.WsRequest;
import org.sonarqube.ws.client.WsResponse;
import static org.assertj.core.api.Assertions.assertThat;
-import static util.ItUtils.pluginArtifact;
public class SystemPasscodeTest {
- private static final String VALID_PASSCODE = "123456";
+ static final String VALID_PASSCODE = "123456";
private static final String INVALID_PASSCODE = "not" + VALID_PASSCODE;
private static final String PASSCODE_HEADER = "X-Sonar-Passcode";
- private static Orchestrator orchestrator;
-
- @BeforeClass
- public static void setUp() throws Exception {
- OrchestratorBuilder builder = Orchestrator.builderEnv()
- // this privileged plugin provides the WS api/system_passcode/check
- // that is used by the tests
- .addPlugin(pluginArtifact("fake-governance-plugin"))
- .setServerProperty("sonar.web.systemPasscode", VALID_PASSCODE);
- orchestrator = builder.build();
- orchestrator.start();
- }
-
- @AfterClass
- public static void stop() {
- if (orchestrator != null) {
- orchestrator.stop();
- }
- }
+ @ClassRule
+ public static Orchestrator orchestrator = AuthorizationSuite.ORCHESTRATOR;
@Rule
- public Tester tester = new Tester(orchestrator);
+ public Tester tester = new Tester(orchestrator)
+ // all the tests of AuthorizationSuite must disable organizations
+ .disableOrganizations();
@Test
public void system_access_is_granted_if_valid_passcode_is_sent_through_http_header() {
diff --git a/tests/src/test/java/util/user/Groups.java b/tests/src/test/java/util/user/Groups.java
index 8aa1f63c869..32ef4f27250 100644
--- a/tests/src/test/java/util/user/Groups.java
+++ b/tests/src/test/java/util/user/Groups.java
@@ -27,7 +27,6 @@ import org.sonarqube.qa.util.Tester;
* @deprecated replaced by {@link Tester}
*/
@Deprecated
-
public class Groups {
private List<Group> groups;
diff --git a/tests/src/test/java/util/user/UserRule.java b/tests/src/test/java/util/user/UserRule.java
index 994e4a0c2e7..beb07e114d2 100644
--- a/tests/src/test/java/util/user/UserRule.java
+++ b/tests/src/test/java/util/user/UserRule.java
@@ -31,7 +31,6 @@ import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import org.junit.rules.ExternalResource;
import org.sonarqube.qa.util.Tester;
-import org.sonarqube.ws.Organizations;
import org.sonarqube.ws.WsUsers;
import org.sonarqube.ws.client.GetRequest;
import org.sonarqube.ws.client.PostRequest;
@@ -139,13 +138,6 @@ public class UserRule extends ExternalResource implements GroupManagement {
createUser(login, login, null, password);
}
- public WsUsers.CreateWsResponse.User createAdministrator(Organizations.Organization organization, String password) {
- WsUsers.CreateWsResponse.User user = generate(p -> p.setPassword(password));
- adminWsClient.organizations().addMember(organization.getKey(), user.getLogin());
- forOrganization(organization.getKey()).associateGroupsToUser(user.getLogin(), "Owners");
- return user;
- }
-
/**
* Create a new admin user with random login, having password same as login
*/
@@ -161,28 +153,10 @@ public class UserRule extends ExternalResource implements GroupManagement {
return login;
}
- /**
- * Create a new root user with random login, having password same as login
- */
- public String createRootUser() {
- String login = randomAlphabetic(10).toLowerCase();
- return createRootUser(login, login);
- }
-
- public String createRootUser(String login, String password) {
- createUser(login, password);
- setRoot(login);
- return login;
- }
-
public void setRoot(String login) {
adminWsClient().roots().setRoot(login);
}
- public void unsetRoot(String login) {
- adminWsClient().roots().unsetRoot(login);
- }
-
public Optional<Users.User> getUserByLogin(String login) {
return FluentIterable.from(getUsers().getUsers()).firstMatch(new MatchUserLogin(login));
}
diff --git a/tests/src/test/resources/authorisation/PermissionTemplatesPageTest/should_create.html b/tests/src/test/resources/authorisation/PermissionTemplatesPageTest/should_create.html
deleted file mode 100644
index 5265dab2239..00000000000
--- a/tests/src/test/resources/authorisation/PermissionTemplatesPageTest/should_create.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<?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>should_create</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
- <tbody>
- <tr>
- <td>open</td>
- <td>/sessions/new</td>
- <td></td>
- </tr>
- <tr>
- <td>type</td>
- <td>password</td>
- <td>root-user</td>
- </tr>
- <tr>
- <td>type</td>
- <td>login</td>
- <td>root-user</td>
- </tr>
- <tr>
- <td>clickAndWait</td>
- <td>name=commit</td>
- <td></td>
- </tr>
- <tr>
- <td>open</td>
- <td>/permission_templates</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForElementPresent</td>
- <td>css=.page-actions button</td>
- <td></td>
- </tr>
- <tr>
- <td>click</td>
- <td>css=.page-actions button</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForElementPresent</td>
- <td>css=#permission-template-name</td>
- <td></td>
- </tr>
- <tr>
- <td>type</td>
- <td>css=#permission-template-name</td>
- <td>Custom</td>
- </tr>
- <tr>
- <td>type</td>
- <td>css=#permission-template-description</td>
- <td>Description</td>
- </tr>
- <tr>
- <td>type</td>
- <td>css=#permission-template-project-key-pattern</td>
- <td>.*</td>
- </tr>
- <tr>
- <td>click</td>
- <td>css=#permission-template-submit</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForElementPresent</td>
- <td>css=tr[data-name=&quot;Custom&quot;]</td>
- <td></td>
- </tr>
- <tr>
- <td>assertText</td>
- <td>css=tr[data-name=&quot;Custom&quot;] .js-name</td>
- <td>*Custom*</td>
- </tr>
- <tr>
- <td>assertText</td>
- <td>css=tr[data-name=&quot;Custom&quot;] .js-description</td>
- <td>*Description*</td>
- </tr>
- <tr>
- <td>assertText</td>
- <td>css=tr[data-name=&quot;Custom&quot;] .js-project-key-pattern</td>
- <td>*.*</td>
- </tr>
- </tbody>
-</table>
-</body>
-</html>
diff --git a/tests/src/test/resources/authorisation/PermissionTemplatesPageTest/should_display_page.html b/tests/src/test/resources/authorisation/PermissionTemplatesPageTest/should_display_page.html
deleted file mode 100644
index 2e05e15a692..00000000000
--- a/tests/src/test/resources/authorisation/PermissionTemplatesPageTest/should_display_page.html
+++ /dev/null
@@ -1,84 +0,0 @@
-<?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>should_display_page</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
- <tbody>
- <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>/permission_templates</td>
- <td></td>
-</tr>
-<tr>
- <td>waitForElementPresent</td>
- <td>css=tr[data-id=&quot;default_template&quot;]</td>
- <td></td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>css=tr[data-id=&quot;default_template&quot;] .js-name</td>
- <td>*Default template*</td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>css=tr[data-id=&quot;default_template&quot;] .js-defaults</td>
- <td>*Projects*</td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>css=tr[data-id=&quot;default_template&quot;] .js-description</td>
- <td>*This permission template will be used*</td>
-</tr>
-<tr>
- <td>assertElementPresent</td>
- <td>css=td[data-permission=&quot;user&quot;]</td>
- <td></td>
-</tr>
-<tr>
- <td>assertElementPresent</td>
- <td>css=td[data-permission=&quot;codeviewer&quot;]</td>
- <td></td>
-</tr>
-<tr>
- <td>assertElementPresent</td>
- <td>css=td[data-permission=&quot;issueadmin&quot;]</td>
- <td></td>
-</tr>
-<tr>
- <td>assertElementPresent</td>
- <td>css=td[data-permission=&quot;admin&quot;]</td>
- <td></td>
-</tr>
-<tr>
- <td>assertElementPresent</td>
- <td>css=td[data-permission=&quot;scan&quot;]</td>
- <td></td>
-</tr>
-</tbody>
-</table>
-</body>
-</html>
diff --git a/tests/src/test/resources/authorisation/PermissionTemplatesPageTest/should_manage_project_creators.html b/tests/src/test/resources/authorisation/PermissionTemplatesPageTest/should_manage_project_creators.html
deleted file mode 100644
index d6226cb6fa7..00000000000
--- a/tests/src/test/resources/authorisation/PermissionTemplatesPageTest/should_manage_project_creators.html
+++ /dev/null
@@ -1,105 +0,0 @@
-<?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>should_manage_project_creators</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
- <tbody>
-
- <tr>
- <td>open</td>
- <td>/sessions/new</td>
- <td></td>
- </tr>
- <tr>
- <td>type</td>
- <td>password</td>
- <td>admin-user</td>
- </tr>
- <tr>
- <td>type</td>
- <td>login</td>
- <td>admin-user</td>
- </tr>
- <tr>
- <td>clickAndWait</td>
- <td>name=commit</td>
- <td></td>
- </tr>
- <tr>
- <td>open</td>
- <td>/permission_templates</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForElementPresent</td>
- <td>css=td[data-permission=&quot;user&quot;]</td>
- <td></td>
- </tr>
- <tr>
- <td>click</td>
- <td>css=td[data-permission=&quot;user&quot;] .js-update-users</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForElementPresent</td>
- <td>css=#grant-to-project-creators</td>
- <td></td>
- </tr>
- <tr>
- <td>assertElementPresent</td>
- <td>css=#grant-to-project-creators:not(:checked)</td>
- <td></td>
- </tr>
- <tr>
- <td>click</td>
- <td>css=#grant-to-project-creators</td>
- <td></td>
- </tr>
- <tr>
- <td>click</td>
- <td>css=.js-modal-close</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForElementPresent</td>
- <td>css=td[data-permission=&quot;user&quot;] .js-project-creators</td>
- <td></td>
- </tr>
- <tr>
- <td>click</td>
- <td>css=td[data-permission=&quot;user&quot;] .js-update-users</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForElementPresent</td>
- <td>css=#grant-to-project-creators</td>
- <td></td>
- </tr>
- <tr>
- <td>assertElementPresent</td>
- <td>css=#grant-to-project-creators:checked</td>
- <td></td>
- </tr>
- <tr>
- <td>click</td>
- <td>css=#grant-to-project-creators</td>
- <td></td>
- </tr>
- <tr>
- <td>click</td>
- <td>css=.js-modal-close</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForElementNotPresent</td>
- <td>css=td[data-permission=&quot;user&quot;] .js-project-creators</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-</body>
-</html>