From 7997d13bb54f2c61d1ca4782c3f16a4d06ff7ee4 Mon Sep 17 00:00:00 2001 From: Julien Lancelot Date: Fri, 12 Feb 2016 09:28:39 +0100 Subject: [PATCH] Move QualityProfileAdminPermissionTest ITs --- .../src/test/java/it/Category1Suite.java | 2 + .../QualityProfileAdminPermissionTest.java | 75 ++++++++++++++++++ .../normal-user.html | 79 +++++++++++++++++++ .../profile-admin.html | 79 +++++++++++++++++++ 4 files changed, 235 insertions(+) create mode 100644 it/it-tests/src/test/java/it/authorisation/QualityProfileAdminPermissionTest.java create mode 100644 it/it-tests/src/test/resources/authorisation/QualityProfileAdminPermissionTest/normal-user.html create mode 100644 it/it-tests/src/test/resources/authorisation/QualityProfileAdminPermissionTest/profile-admin.html diff --git a/it/it-tests/src/test/java/it/Category1Suite.java b/it/it-tests/src/test/java/it/Category1Suite.java index 7169de40565..8e5b1bdeac5 100644 --- a/it/it-tests/src/test/java/it/Category1Suite.java +++ b/it/it-tests/src/test/java/it/Category1Suite.java @@ -46,6 +46,7 @@ import it.authorisation.ExecuteAnalysisPermissionTest; import it.authorisation.IssuePermissionTest; import it.authorisation.PermissionSearchTest; import it.authorisation.ProvisioningPermissionTest; +import it.authorisation.QualityProfileAdminPermissionTest; import it.i18n.I18nTest; import it.measureHistory.DifferentialPeriodsTest; import it.measureHistory.HistoryUiTest; @@ -105,6 +106,7 @@ import static util.ItUtils.xooPlugin; IssuePermissionTest.class, PermissionSearchTest.class, ProvisioningPermissionTest.class, + QualityProfileAdminPermissionTest.class, // measure history DifferentialPeriodsTest.class, HistoryUiTest.class, diff --git a/it/it-tests/src/test/java/it/authorisation/QualityProfileAdminPermissionTest.java b/it/it-tests/src/test/java/it/authorisation/QualityProfileAdminPermissionTest.java new file mode 100644 index 00000000000..befe2c242a2 --- /dev/null +++ b/it/it-tests/src/test/java/it/authorisation/QualityProfileAdminPermissionTest.java @@ -0,0 +1,75 @@ +/* + * 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.authorisation; + +import com.sonar.orchestrator.Orchestrator; +import com.sonar.orchestrator.selenium.Selenese; +import it.Category1Suite; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.ClassRule; +import org.junit.Test; +import org.sonarqube.ws.client.permission.AddUserWsRequest; +import org.sonarqube.ws.client.permission.PermissionsService; +import util.user.UserRule; + +import static util.ItUtils.newAdminWsClient; +import static util.ItUtils.runProjectAnalysis; + +/** + * SONAR-4210 + */ +public class QualityProfileAdminPermissionTest { + + @ClassRule + public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR; + + @ClassRule + public static UserRule userRule = UserRule.from(orchestrator); + + static PermissionsService permissionsWsClient; + + @BeforeClass + public static void init() { + orchestrator.resetData(); + permissionsWsClient = newAdminWsClient(orchestrator).permissions(); + runProjectAnalysis(orchestrator, "shared/xoo-sample"); + } + + @AfterClass + public static void clearUsers() throws Exception { + userRule.resetUsers(); + } + + @Test + public void permission_should_grant_access_to_profile() { + userRule.createUser("not_profileadm", "userpwd"); + userRule.createUser("profileadm", "papwd"); + permissionsWsClient.addUser(new AddUserWsRequest().setLogin("profileadm").setPermission("profileadmin")); + + orchestrator.executeSelenese(Selenese.builder().setHtmlTestsInClasspath("administrate-profiles", + // Verify normal user is not allowed to do any modification + "/authorisation/QualityProfileAdminPermissionTest/normal-user.html", + // Verify profile admin is allowed to do modifications + "/authorisation/QualityProfileAdminPermissionTest/profile-admin.html" + ).build()); + } + +} diff --git a/it/it-tests/src/test/resources/authorisation/QualityProfileAdminPermissionTest/normal-user.html b/it/it-tests/src/test/resources/authorisation/QualityProfileAdminPermissionTest/normal-user.html new file mode 100644 index 00000000000..6d88e48f5c9 --- /dev/null +++ b/it/it-tests/src/test/resources/authorisation/QualityProfileAdminPermissionTest/normal-user.html @@ -0,0 +1,79 @@ + + + + + + user-cannot-administrate-profile + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
open/sessions/logout
open/sessions/new
typeid=loginnot_profileadm
typeid=passworduserpwd
clickAndWaitname=commit
open/profiles
waitForTextcss=.quality-profiles-results*Basic*
assertNotTextcss=.search-navigator-filters*Create*
assertNotTextcss=.search-navigator-filters*Restore Profile*
assertNotTextcss=.search-navigator-filters*Restore Built-in Profiles*
open/project/profile/sample
waitForTextid=content*Log In to SonarQube*
assertTextid=login_formglob:*You are not authorized to access this page*
+ + diff --git a/it/it-tests/src/test/resources/authorisation/QualityProfileAdminPermissionTest/profile-admin.html b/it/it-tests/src/test/resources/authorisation/QualityProfileAdminPermissionTest/profile-admin.html new file mode 100644 index 00000000000..0242b441deb --- /dev/null +++ b/it/it-tests/src/test/resources/authorisation/QualityProfileAdminPermissionTest/profile-admin.html @@ -0,0 +1,79 @@ + + + + + + user-can-administrate-profile + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
open/sessions/logout
open/sessions/new
typeid=loginprofileadm
typeid=passwordpapwd
clickAndWaitname=commit
open/profiles
waitForTextcss=.quality-profiles-results*Basic*
assertTextcss=.search-navigator-filters*Create*
assertTextcss=.search-navigator-filters*Restore Profile*
assertTextcss=.search-navigator-filters*Restore Built-in Profiles*
open/project/profile/sample
waitForTextid=content*Quality Profiles*
assertValueid=submit-xooglob:*Update*
+ + -- 2.39.5