aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@sonarsource.com>2016-02-16 17:55:26 +0100
committerSimon Brandhof <simon.brandhof@sonarsource.com>2016-02-18 12:33:53 +0100
commit8012cb4145a6d3014bb09a00aea1845a87b5cc8a (patch)
tree04db2e4e978af4bbfa07bb5f7ee5586511ef9682
parent9e831b5a926bb2d6c43028193949fd404e555330 (diff)
downloadsonarqube-8012cb4145a6d3014bb09a00aea1845a87b5cc8a.tar.gz
sonarqube-8012cb4145a6d3014bb09a00aea1845a87b5cc8a.zip
Exclude some QA tests from build environment
-rw-r--r--it/it-tests/pom.xml16
-rw-r--r--it/it-tests/src/test/java/it/Category1Suite.java23
-rw-r--r--it/it-tests/src/test/java/it/actionPlan/ActionPlanTest.java4
-rw-r--r--it/it-tests/src/test/java/it/actionPlan/ActionPlanUiTest.java83
-rw-r--r--it/it-tests/src/test/java/it/administration/UsersPageTest.java3
-rw-r--r--it/it-tests/src/test/java/it/analysis/BatchTest.java10
-rw-r--r--it/it-tests/src/test/java/it/analysis/ExtensionLifecycleTest.java3
-rw-r--r--it/it-tests/src/test/java/it/analysis/LinksTest.java3
-rw-r--r--it/it-tests/src/test/java/it/analysis/MavenTest.java7
-rw-r--r--it/it-tests/src/test/java/it/analysis/ProjectBuilderTest.java3
-rw-r--r--it/it-tests/src/test/java/it/analysis/ProjectExclusionsTest.java3
-rw-r--r--it/it-tests/src/test/java/it/analysis/SettingsEncryptionTest.java3
-rw-r--r--it/it-tests/src/test/java/it/authorisation/DashboardSharingPermissionTest.java3
-rw-r--r--it/it-tests/src/test/java/it/authorisation/ExecuteAnalysisPermissionTest.java3
-rw-r--r--it/it-tests/src/test/java/it/authorisation/IssuePermissionTest.java3
-rw-r--r--it/it-tests/src/test/java/it/authorisation/PermissionSearchTest.java3
-rw-r--r--it/it-tests/src/test/java/it/authorisation/ProvisioningPermissionTest.java3
-rw-r--r--it/it-tests/src/test/java/it/authorisation/QualityProfileAdminPermissionTest.java3
-rw-r--r--it/it-tests/src/test/java/it/ce/CeWsTest.java4
-rw-r--r--it/it-tests/src/test/java/it/component/ProjectSearchTest.java3
-rw-r--r--it/it-tests/src/test/java/it/componentDashboard/DashboardTest.java3
-rw-r--r--it/it-tests/src/test/java/it/componentSearch/AllProjectsTest.java3
-rw-r--r--it/it-tests/src/test/java/it/customMeasure/CustomMeasuresTest.java3
-rw-r--r--it/it-tests/src/test/java/it/debt/DebtConfigurationRule.java3
-rw-r--r--it/it-tests/src/test/java/it/debt/TechnicalDebtInIssueChangelogTest.java3
-rw-r--r--it/it-tests/src/test/java/it/debt/TechnicalDebtWidgetTest.java3
-rw-r--r--it/it-tests/src/test/java/it/duplication/CrossModuleDuplicationsTest.java3
-rw-r--r--it/it-tests/src/test/java/it/duplication/CrossProjectDuplicationsOnRemoveFileTest.java3
-rw-r--r--it/it-tests/src/test/java/it/i18n/I18nTest.java3
-rw-r--r--it/it-tests/src/test/java/it/issue/CommonRulesTest.java3
-rw-r--r--it/it-tests/src/test/java/it/issue/CustomRulesTest.java3
-rw-r--r--it/it-tests/src/test/java/it/issue/IssueActionTest.java3
-rw-r--r--it/it-tests/src/test/java/it/issue/IssueBulkChangeTest.java3
-rw-r--r--it/it-tests/src/test/java/it/issue/IssueChangelogTest.java3
-rw-r--r--it/it-tests/src/test/java/it/issue/IssueFilterExtensionTest.java3
-rw-r--r--it/it-tests/src/test/java/it/issue/IssueNotificationsTest.java3
-rw-r--r--it/it-tests/src/test/java/it/issue/IssuePurgeTest.java3
-rw-r--r--it/it-tests/src/test/java/it/issue/ManualIssueRelocationTest.java3
-rw-r--r--it/it-tests/src/test/java/it/issue/ManualIssueTest.java3
-rw-r--r--it/it-tests/src/test/java/it/measure/DecimalScaleMetricTest.java3
-rw-r--r--it/it-tests/src/test/java/it/measure/ProjectWidgetsTest.java3
-rw-r--r--it/it-tests/src/test/java/it/measureFilter/MeasureFiltersTest.java3
-rw-r--r--it/it-tests/src/test/java/it/measureHistory/HistoryUiTest.java3
-rw-r--r--it/it-tests/src/test/java/it/measureHistory/SincePreviousVersionHistoryTest.java3
-rw-r--r--it/it-tests/src/test/java/it/measureHistory/SinceXDaysHistoryTest.java3
-rw-r--r--it/it-tests/src/test/java/it/measureHistory/TimeMachineTest.java3
-rw-r--r--it/it-tests/src/test/java/it/projectAdministration/BulkDeletionTest.java3
-rw-r--r--it/it-tests/src/test/java/it/projectAdministration/ProjectAdministrationTest.java3
-rw-r--r--it/it-tests/src/test/java/it/projectAdministration/ProjectPermissionsTest.java3
-rw-r--r--it/it-tests/src/test/java/it/projectComparison/ProjectComparisonTest.java3
-rw-r--r--it/it-tests/src/test/java/it/projectEvent/EventTest.java3
-rw-r--r--it/it-tests/src/test/java/it/qualityGate/QualityGateNotificationTest.java3
-rw-r--r--it/it-tests/src/test/java/it/qualityGate/QualityGateUiTest.java3
-rw-r--r--it/it-tests/src/test/java/it/rule/ManualRulesTest.java3
-rw-r--r--it/it-tests/src/test/java/it/serverSystem/HttpsTest.java3
-rw-r--r--it/it-tests/src/test/java/it/serverSystem/RestartTest.java3
-rw-r--r--it/it-tests/src/test/java/it/serverSystem/ServerSystemRestartingOrchestrator.java3
-rw-r--r--it/it-tests/src/test/java/it/serverSystem/ServerSystemTest.java3
-rw-r--r--it/it-tests/src/test/java/it/settings/PropertySetsTest.java3
-rw-r--r--it/it-tests/src/test/java/it/settings/SettingsTestRestartingOrchestrator.java3
-rw-r--r--it/it-tests/src/test/java/it/settings/SubCategoriesTest.java3
-rw-r--r--it/it-tests/src/test/java/it/sourceCode/EncodingTest.java3
-rw-r--r--it/it-tests/src/test/java/it/test/CoverageTrackingTest.java3
-rw-r--r--it/it-tests/src/test/java/it/ui/UiTest.java3
-rw-r--r--it/it-tests/src/test/java/it/uiExtension/UiExtensionsTest.java3
-rw-r--r--it/it-tests/src/test/java/it/updateCenter/UpdateCenterTest.java3
-rw-r--r--it/it-tests/src/test/java/it/user/BaseIdentityProviderTest.java3
-rw-r--r--it/it-tests/src/test/java/it/user/FavouriteTest.java3
-rw-r--r--it/it-tests/src/test/java/it/user/ForceAuthenticationTest.java3
-rw-r--r--it/it-tests/src/test/java/it/user/LocalAuthenticationTest.java3
-rw-r--r--it/it-tests/src/test/java/it/user/MyAccountPageTest.java3
-rw-r--r--it/it-tests/src/test/java/it/user/OAuth2IdentityProviderTest.java3
-rw-r--r--it/it-tests/src/test/java/it/user/RailsExternalAuthenticationTest.java3
-rw-r--r--it/it-tests/src/test/java/util/QaOnly.java23
-rw-r--r--it/it-tests/src/test/resources/actionPlan/ActionPlanUiTest/can_create_action_plan_with_date_today.html89
-rw-r--r--it/it-tests/src/test/resources/actionPlan/ActionPlanUiTest/cannot_create_action_plan_with_date_in_past.html84
-rw-r--r--it/it-tests/src/test/resources/actionPlan/ActionPlanUiTest/cannot_create_action_plan_with_invalid_date.html84
-rw-r--r--it/it-tests/src/test/resources/actionPlan/ActionPlanUiTest/cannot_create_two_action_plans_with_same_name.html144
-rw-r--r--it/it-tests/src/test/resources/actionPlan/ActionPlanUiTest/close_and_reopen_action_plan.html134
-rw-r--r--it/it-tests/src/test/resources/actionPlan/ActionPlanUiTest/create_and_delete_action_plan.html119
-rw-r--r--it/it-tests/src/test/resources/actionPlan/ActionPlanUiTest/edit_action_plan.html159
-rw-r--r--server/sonar-web/npm-debug.log.21525273250
-rwxr-xr-xtravis.sh2
83 files changed, 263 insertions, 920 deletions
diff --git a/it/it-tests/pom.xml b/it/it-tests/pom.xml
index d3d4d665a28..5aa538addde 100644
--- a/it/it-tests/pom.xml
+++ b/it/it-tests/pom.xml
@@ -14,6 +14,7 @@
<properties>
<category>*</category>
<skipIts>false</skipIts>
+ <excludeJunitGroups></excludeJunitGroups>
</properties>
<dependencies>
@@ -121,6 +122,7 @@
<includes>
<include>*/${category}Suite.java</include>
</includes>
+ <excludedGroups>${excludeJunitGroups}</excludedGroups>
</configuration>
</plugin>
</plugins>
@@ -197,6 +199,20 @@
</dependency>
</dependencies>
</profile>
+ <profile>
+ <!-- SonarSource internal use -->
+ <id>exclude-qa-tests</id>
+ <activation>
+ <property>
+ <name>exclude-qa-tests</name>
+ </property>
+ </activation>
+ <properties>
+ <excludeJunitGroups>util.QaOnly</excludeJunitGroups>
+ </properties>
+ </profile>
+
</profiles>
+
</project>
diff --git a/it/it-tests/src/test/java/it/Category1Suite.java b/it/it-tests/src/test/java/it/Category1Suite.java
index 791c7675887..b0a519ffc7c 100644
--- a/it/it-tests/src/test/java/it/Category1Suite.java
+++ b/it/it-tests/src/test/java/it/Category1Suite.java
@@ -17,29 +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 it;/*
- * SonarQube, open source software quality management tool.
- * Copyright (C) 2008-2014 SonarSource
- * mailto:contact AT sonarsource DOT com
- *
- * SonarQube 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.
- *
- * SonarQube 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;
import com.sonar.orchestrator.Orchestrator;
import it.actionPlan.ActionPlanTest;
-import it.actionPlan.ActionPlanUiTest;
import it.administration.UsersPageTest;
import it.authorisation.DashboardSharingPermissionTest;
import it.authorisation.ExecuteAnalysisPermissionTest;
@@ -125,12 +106,10 @@ import static util.ItUtils.xooPlugin;
TimeMachineTest.class,
// action plan
ActionPlanTest.class,
- ActionPlanUiTest.class,
// source code
EncodingTest.class,
HighlightingTest.class,
ProjectCodeTest.class
-
})
public class Category1Suite {
diff --git a/it/it-tests/src/test/java/it/actionPlan/ActionPlanTest.java b/it/it-tests/src/test/java/it/actionPlan/ActionPlanTest.java
index 111621d02da..9f3a637307d 100644
--- a/it/it-tests/src/test/java/it/actionPlan/ActionPlanTest.java
+++ b/it/it-tests/src/test/java/it/actionPlan/ActionPlanTest.java
@@ -27,6 +27,7 @@ import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.SonarClient;
import org.sonar.wsclient.base.HttpException;
import org.sonar.wsclient.issue.ActionPlan;
@@ -48,6 +49,9 @@ import static util.ItUtils.runProjectAnalysis;
import static util.ItUtils.toDate;
import static util.ItUtils.verifyHttpException;
+import util.QaOnly;
+
+@Category(QaOnly.class)
public class ActionPlanTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/actionPlan/ActionPlanUiTest.java b/it/it-tests/src/test/java/it/actionPlan/ActionPlanUiTest.java
deleted file mode 100644
index dc5bc933971..00000000000
--- a/it/it-tests/src/test/java/it/actionPlan/ActionPlanUiTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * 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.actionPlan;
-
-import com.sonar.orchestrator.Orchestrator;
-import com.sonar.orchestrator.locator.FileLocation;
-import com.sonar.orchestrator.selenium.Selenese;
-import it.Category1Suite;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.sonar.wsclient.issue.ActionPlanClient;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static util.ItUtils.runProjectAnalysis;
-
-@Ignore
-public class ActionPlanUiTest {
-
- private static final String PROJECT_KEY = "sample";
-
- @ClassRule
- public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR;
-
- @BeforeClass
- public static void analyzeProject() {
- orchestrator.resetData();
-
- orchestrator.getServer().restoreProfile(FileLocation.ofClasspath("/actionPlan/one-issue-per-line-profile.xml"));
- orchestrator.getServer().provisionProject("sample", "Sample");
- orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line-profile");
- runProjectAnalysis(orchestrator, "shared/xoo-sample");
- }
-
- protected static ActionPlanClient adminActionPlanClient() {
- return orchestrator.getServer().adminWsClient().actionPlanClient();
- }
-
- @Before
- public void resetData() {
- // TODO should be done by a WS
- orchestrator.getDatabase().truncate("action_plans");
- assertThat(adminActionPlanClient().find(PROJECT_KEY)).isEmpty();
- }
-
- @Test
- @Ignore("Must be refactored to use web services when applicable")
- public void test_console() {
- Selenese selenese = Selenese
- .builder()
- .setHtmlTestsInClasspath("action-plans-console",
- "/actionPlan/ActionPlanUiTest/create_and_delete_action_plan.html",
- "/actionPlan/ActionPlanUiTest/cannot_create_action_plan_with_date_in_past.html",
- "/actionPlan/ActionPlanUiTest/cannot_create_action_plan_with_invalid_date.html",
- "/actionPlan/ActionPlanUiTest/cannot_create_two_action_plans_with_same_name.html",
- // SONAR-3200
- "/actionPlan/ActionPlanUiTest/close_and_reopen_action_plan.html",
- "/actionPlan/ActionPlanUiTest/edit_action_plan.html",
- // SONAR-3198
- "/actionPlan/ActionPlanUiTest/can_create_action_plan_with_date_today.html").build();
- orchestrator.executeSelenese(selenese);
- }
-
-}
diff --git a/it/it-tests/src/test/java/it/administration/UsersPageTest.java b/it/it-tests/src/test/java/it/administration/UsersPageTest.java
index 54b5e60b3cc..098c69f7acc 100644
--- a/it/it-tests/src/test/java/it/administration/UsersPageTest.java
+++ b/it/it-tests/src/test/java/it/administration/UsersPageTest.java
@@ -24,8 +24,11 @@ import com.sonar.orchestrator.selenium.Selenese;
import it.Category1Suite;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import util.QaOnly;
import util.selenium.SeleneseTest;
+@Category(QaOnly.class)
public class UsersPageTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/analysis/BatchTest.java b/it/it-tests/src/test/java/it/analysis/BatchTest.java
index 7214aa4336d..b69a4dd2abf 100644
--- a/it/it-tests/src/test/java/it/analysis/BatchTest.java
+++ b/it/it-tests/src/test/java/it/analysis/BatchTest.java
@@ -27,6 +27,7 @@ import com.sonar.orchestrator.locator.FileLocation;
import it.Category3Suite;
import org.apache.commons.io.FileUtils;
import org.junit.*;
+import org.junit.experimental.categories.Category;
import org.junit.rules.ExpectedException;
import org.junit.rules.TemporaryFolder;
import org.sonar.wsclient.Sonar;
@@ -39,6 +40,7 @@ import util.ItUtils;
import java.io.File;
import java.io.IOException;
import java.util.Date;
+import util.QaOnly;
import static org.assertj.core.api.Assertions.assertThat;
@@ -63,6 +65,7 @@ public class BatchTest {
* SONAR-3718
*/
@Test
+ @Category(QaOnly.class)
public void should_scan_branch_with_forward_slash() {
scan("shared/xoo-multi-modules-sample");
scan("shared/xoo-multi-modules-sample", "sonar.branch", "branch/0.x");
@@ -173,6 +176,7 @@ public class BatchTest {
* SONAR-3116
*/
@Test
+ @Category(QaOnly.class)
public void should_not_exclude_root_module() {
orchestrator.getServer().provisionProject("com.sonarsource.it.samples:multi-modules-sample", "Sonar :: Integration Tests :: Multi-modules Sample");
orchestrator.getServer().associateProjectToQualityProfile("com.sonarsource.it.samples:multi-modules-sample", "xoo", "one-issue-per-line");
@@ -186,6 +190,7 @@ public class BatchTest {
* SONAR-3024
*/
@Test
+ @Category(QaOnly.class)
public void should_support_source_files_with_same_deprecated_key() {
orchestrator.getServer().provisionProject("com.sonarsource.it.projects.batch:duplicate-source", "exclusions");
orchestrator.getServer().associateProjectToQualityProfile("com.sonarsource.it.projects.batch:duplicate-source", "xoo", "one-issue-per-line");
@@ -282,6 +287,7 @@ public class BatchTest {
* SONAR-4211 Test Sonar Runner when server requires authentication
*/
@Test
+ @Category(QaOnly.class)
public void sonar_runner_with_secured_server() {
try {
orchestrator.getServer().provisionProject("sample", "xoo-sample");
@@ -350,6 +356,7 @@ public class BatchTest {
* SONAR-4239
*/
@Test
+ @Category(QaOnly.class)
public void should_display_project_url_after_analysis() throws IOException {
orchestrator.getServer().provisionProject("com.sonarsource.it.samples:multi-modules-sample", "Sonar :: Integration Tests :: Multi-modules Sample");
orchestrator.getServer().associateProjectToQualityProfile("com.sonarsource.it.samples:multi-modules-sample", "xoo", "one-issue-per-line");
@@ -377,6 +384,7 @@ public class BatchTest {
* SONAR-4188, SONAR-5178, SONAR-5915
*/
@Test
+ @Category(QaOnly.class)
public void should_display_explicit_message_when_invalid_project_key_or_branch() {
orchestrator.getServer().provisionProject("sample", "xoo-sample");
orchestrator.getServer().associateProjectToQualityProfile("sample", "xoo", "one-issue-per-line");
@@ -422,6 +430,7 @@ public class BatchTest {
* SONAR-4751
*/
@Test
+ @Category(QaOnly.class)
public void file_extensions_are_case_insensitive() throws Exception {
orchestrator.getServer().provisionProject("case-sensitive-file-extensions", "Case Sensitive");
orchestrator.getServer().associateProjectToQualityProfile("case-sensitive-file-extensions", "xoo", "one-issue-per-line");
@@ -436,6 +445,7 @@ public class BatchTest {
* SONAR-4876
*/
@Test
+ @Category(QaOnly.class)
public void custom_module_key() {
orchestrator.getServer().provisionProject("com.sonarsource.it.samples:multi-modules-sample", "Sonar :: Integration Tests :: Multi-modules Sample");
orchestrator.getServer().associateProjectToQualityProfile("com.sonarsource.it.samples:multi-modules-sample", "xoo", "one-issue-per-line");
diff --git a/it/it-tests/src/test/java/it/analysis/ExtensionLifecycleTest.java b/it/it-tests/src/test/java/it/analysis/ExtensionLifecycleTest.java
index 997bd620852..81acd37d046 100644
--- a/it/it-tests/src/test/java/it/analysis/ExtensionLifecycleTest.java
+++ b/it/it-tests/src/test/java/it/analysis/ExtensionLifecycleTest.java
@@ -25,8 +25,11 @@ import it.Category3Suite;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import util.ItUtils;
+import util.QaOnly;
+@Category(QaOnly.class)
public class ExtensionLifecycleTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/analysis/LinksTest.java b/it/it-tests/src/test/java/it/analysis/LinksTest.java
index 8bda3d4b3d0..4a84614ae48 100644
--- a/it/it-tests/src/test/java/it/analysis/LinksTest.java
+++ b/it/it-tests/src/test/java/it/analysis/LinksTest.java
@@ -32,10 +32,13 @@ import org.junit.After;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import util.ItUtils;
+import util.QaOnly;
import static org.assertj.core.api.Assertions.assertThat;
+@Category(QaOnly.class)
public class LinksTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/analysis/MavenTest.java b/it/it-tests/src/test/java/it/analysis/MavenTest.java
index ad9d0cc33cd..3f8b7475ba8 100644
--- a/it/it-tests/src/test/java/it/analysis/MavenTest.java
+++ b/it/it-tests/src/test/java/it/analysis/MavenTest.java
@@ -28,10 +28,12 @@ import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Ignore;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.Sonar;
import org.sonar.wsclient.services.Resource;
import org.sonar.wsclient.services.ResourceQuery;
import util.ItUtils;
+import util.QaOnly;
import static org.assertj.core.api.Assertions.assertThat;
@@ -46,6 +48,7 @@ public class MavenTest {
}
@Test
+ @Category(QaOnly.class)
public void shouldSupportJarWithoutSources() {
MavenBuild build = MavenBuild.create(ItUtils.projectPom("maven/project-with-module-without-sources"))
.setCleanSonarGoals();
@@ -63,6 +66,7 @@ public class MavenTest {
* See SONAR-594
*/
@Test
+ @Category(QaOnly.class)
public void shouldSupportJeeProjects() {
MavenBuild build = MavenBuild.create(ItUtils.projectPom("maven/jee"))
.setGoals("clean install", "sonar:sonar");
@@ -79,6 +83,7 @@ public class MavenTest {
* See SONAR-222
*/
@Test
+ @Category(QaOnly.class)
public void shouldSupportMavenExtensions() {
MavenBuild build = MavenBuild.create(ItUtils.projectPom("maven/maven-extensions"))
.setCleanSonarGoals();
@@ -154,6 +159,7 @@ public class MavenTest {
* See SONAR-3843
*/
@Test
+ @Category(QaOnly.class)
public void should_support_shade_with_dependency_reduced_pom_with_clean_install_sonar_goals() {
MavenBuild build = MavenBuild.create(ItUtils.projectPom("maven/shade-with-dependency-reduced-pom"))
.setProperty("sonar.dynamicAnalysis", "false")
@@ -231,6 +237,7 @@ public class MavenTest {
* The property sonar.sources has a typo -> fail, like in sonar-runner
*/
@Test
+ @Category(QaOnly.class)
public void fail_if_bad_value_of_sonar_sources_property() {
MavenBuild build = MavenBuild.create(ItUtils.projectPom("maven/maven-bad-sources-property")).setGoals("sonar:sonar");
BuildResult result = orchestrator.executeBuildQuietly(build);
diff --git a/it/it-tests/src/test/java/it/analysis/ProjectBuilderTest.java b/it/it-tests/src/test/java/it/analysis/ProjectBuilderTest.java
index 8236c5fed52..08c5790e508 100644
--- a/it/it-tests/src/test/java/it/analysis/ProjectBuilderTest.java
+++ b/it/it-tests/src/test/java/it/analysis/ProjectBuilderTest.java
@@ -24,9 +24,11 @@ import com.sonar.orchestrator.build.MavenBuild;
import it.Category3Suite;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.services.Resource;
import org.sonar.wsclient.services.ResourceQuery;
import util.ItUtils;
+import util.QaOnly;
import static org.assertj.core.api.Assertions.assertThat;
@@ -38,6 +40,7 @@ import static org.assertj.core.api.Assertions.assertThat;
*
* @since 2.9
*/
+@Category(QaOnly.class)
public class ProjectBuilderTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/analysis/ProjectExclusionsTest.java b/it/it-tests/src/test/java/it/analysis/ProjectExclusionsTest.java
index 23fbd6ef18b..81c5d1a5b85 100644
--- a/it/it-tests/src/test/java/it/analysis/ProjectExclusionsTest.java
+++ b/it/it-tests/src/test/java/it/analysis/ProjectExclusionsTest.java
@@ -25,13 +25,16 @@ import it.Category3Suite;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.services.Resource;
import org.sonar.wsclient.services.ResourceQuery;
import util.ItUtils;
+import util.QaOnly;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
+@Category(QaOnly.class)
public class ProjectExclusionsTest {
@ClassRule
public static Orchestrator orchestrator = Category3Suite.ORCHESTRATOR;
diff --git a/it/it-tests/src/test/java/it/analysis/SettingsEncryptionTest.java b/it/it-tests/src/test/java/it/analysis/SettingsEncryptionTest.java
index 4278acf04e1..48a594e5d89 100644
--- a/it/it-tests/src/test/java/it/analysis/SettingsEncryptionTest.java
+++ b/it/it-tests/src/test/java/it/analysis/SettingsEncryptionTest.java
@@ -28,10 +28,13 @@ import java.io.File;
import java.net.URL;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import util.ItUtils;
+import util.QaOnly;
import static org.assertj.core.api.Assertions.assertThat;
+@Category(QaOnly.class)
public class SettingsEncryptionTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/authorisation/DashboardSharingPermissionTest.java b/it/it-tests/src/test/java/it/authorisation/DashboardSharingPermissionTest.java
index 3236b69ccfc..3e01abff757 100644
--- a/it/it-tests/src/test/java/it/authorisation/DashboardSharingPermissionTest.java
+++ b/it/it-tests/src/test/java/it/authorisation/DashboardSharingPermissionTest.java
@@ -27,13 +27,16 @@ import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonarqube.ws.client.permission.AddUserWsRequest;
import org.sonarqube.ws.client.permission.PermissionsService;
+import util.QaOnly;
import util.user.UserRule;
import static util.ItUtils.newAdminWsClient;
import static util.ItUtils.runProjectAnalysis;
+@Category(QaOnly.class)
public class DashboardSharingPermissionTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/authorisation/ExecuteAnalysisPermissionTest.java b/it/it-tests/src/test/java/it/authorisation/ExecuteAnalysisPermissionTest.java
index d92c490f72e..3c942025097 100644
--- a/it/it-tests/src/test/java/it/authorisation/ExecuteAnalysisPermissionTest.java
+++ b/it/it-tests/src/test/java/it/authorisation/ExecuteAnalysisPermissionTest.java
@@ -26,8 +26,10 @@ import org.junit.After;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.SonarClient;
import org.sonar.wsclient.user.UserParameters;
+import util.QaOnly;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.fail;
@@ -36,6 +38,7 @@ import static util.ItUtils.runProjectAnalysis;
/**
* SONAR-4397
*/
+@Category(QaOnly.class)
public class ExecuteAnalysisPermissionTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/authorisation/IssuePermissionTest.java b/it/it-tests/src/test/java/it/authorisation/IssuePermissionTest.java
index b8409ae8b06..2c1a857c594 100644
--- a/it/it-tests/src/test/java/it/authorisation/IssuePermissionTest.java
+++ b/it/it-tests/src/test/java/it/authorisation/IssuePermissionTest.java
@@ -26,6 +26,7 @@ import it.Category1Suite;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.SonarClient;
import org.sonar.wsclient.base.HttpException;
import org.sonar.wsclient.issue.BulkChange;
@@ -36,12 +37,14 @@ import org.sonar.wsclient.user.UserParameters;
import org.sonarqube.ws.client.WsClient;
import org.sonarqube.ws.client.permission.AddUserWsRequest;
import org.sonarqube.ws.client.permission.RemoveGroupWsRequest;
+import util.QaOnly;
import static junit.framework.TestCase.fail;
import static org.assertj.core.api.Assertions.assertThat;
import static util.ItUtils.newAdminWsClient;
import static util.ItUtils.projectDir;
+@Category(QaOnly.class)
public class IssuePermissionTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/authorisation/PermissionSearchTest.java b/it/it-tests/src/test/java/it/authorisation/PermissionSearchTest.java
index 648d1243be4..d0303175b7d 100644
--- a/it/it-tests/src/test/java/it/authorisation/PermissionSearchTest.java
+++ b/it/it-tests/src/test/java/it/authorisation/PermissionSearchTest.java
@@ -27,6 +27,7 @@ import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonarqube.ws.WsPermissions;
import org.sonarqube.ws.WsPermissions.SearchTemplatesWsResponse;
import org.sonarqube.ws.client.PostRequest;
@@ -42,11 +43,13 @@ import org.sonarqube.ws.client.permission.RemoveGroupFromTemplateWsRequest;
import org.sonarqube.ws.client.permission.RemoveUserFromTemplateWsRequest;
import org.sonarqube.ws.client.permission.SearchTemplatesWsRequest;
import org.sonarqube.ws.client.permission.UsersWsRequest;
+import util.QaOnly;
import static org.assertj.core.api.Assertions.assertThat;
import static util.ItUtils.newAdminWsClient;
import static util.ItUtils.projectDir;
+@Category(QaOnly.class)
public class PermissionSearchTest {
@ClassRule
public static Orchestrator orchestrator = Category1Suite.ORCHESTRATOR;
diff --git a/it/it-tests/src/test/java/it/authorisation/ProvisioningPermissionTest.java b/it/it-tests/src/test/java/it/authorisation/ProvisioningPermissionTest.java
index 90aa184763c..27a621ac910 100644
--- a/it/it-tests/src/test/java/it/authorisation/ProvisioningPermissionTest.java
+++ b/it/it-tests/src/test/java/it/authorisation/ProvisioningPermissionTest.java
@@ -27,6 +27,7 @@ import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.junit.rules.ExpectedException;
import org.sonar.wsclient.SonarClient;
import org.sonar.wsclient.base.HttpException;
@@ -37,11 +38,13 @@ 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 util.QaOnly;
import util.user.UserRule;
import static org.assertj.core.api.Assertions.assertThat;
import static util.ItUtils.newAdminWsClient;
+@Category(QaOnly.class)
public class ProvisioningPermissionTest {
@Rule
diff --git a/it/it-tests/src/test/java/it/authorisation/QualityProfileAdminPermissionTest.java b/it/it-tests/src/test/java/it/authorisation/QualityProfileAdminPermissionTest.java
index befe2c242a2..754a7b45359 100644
--- a/it/it-tests/src/test/java/it/authorisation/QualityProfileAdminPermissionTest.java
+++ b/it/it-tests/src/test/java/it/authorisation/QualityProfileAdminPermissionTest.java
@@ -26,8 +26,10 @@ import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonarqube.ws.client.permission.AddUserWsRequest;
import org.sonarqube.ws.client.permission.PermissionsService;
+import util.QaOnly;
import util.user.UserRule;
import static util.ItUtils.newAdminWsClient;
@@ -36,6 +38,7 @@ import static util.ItUtils.runProjectAnalysis;
/**
* SONAR-4210
*/
+@Category(QaOnly.class)
public class QualityProfileAdminPermissionTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/ce/CeWsTest.java b/it/it-tests/src/test/java/it/ce/CeWsTest.java
index ef82dec5087..98fd04a1a38 100644
--- a/it/it-tests/src/test/java/it/ce/CeWsTest.java
+++ b/it/it-tests/src/test/java/it/ce/CeWsTest.java
@@ -26,19 +26,21 @@ import it.Category4Suite;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonarqube.ws.WsCe;
import org.sonarqube.ws.client.WsClient;
import org.sonarqube.ws.client.ce.ActivityWsRequest;
import util.ItUtils;
+import util.QaOnly;
import static com.google.common.collect.Lists.newArrayList;
import static org.assertj.core.api.Assertions.assertThat;
import static util.ItUtils.projectDir;
+@Category(QaOnly.class)
public class CeWsTest {
@ClassRule
public static final Orchestrator orchestrator = Category4Suite.ORCHESTRATOR;
- private static final String FILE_KEY = "sample:src/main/xoo/sample/Sample.xoo";
WsClient wsClient;
@Before
diff --git a/it/it-tests/src/test/java/it/component/ProjectSearchTest.java b/it/it-tests/src/test/java/it/component/ProjectSearchTest.java
index 51d447401a4..0bd21727022 100644
--- a/it/it-tests/src/test/java/it/component/ProjectSearchTest.java
+++ b/it/it-tests/src/test/java/it/component/ProjectSearchTest.java
@@ -32,10 +32,13 @@ import org.apache.http.util.EntityUtils;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import util.QaOnly;
import static org.assertj.core.api.Assertions.assertThat;
import static util.ItUtils.projectDir;
+@Category(QaOnly.class)
public class ProjectSearchTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/componentDashboard/DashboardTest.java b/it/it-tests/src/test/java/it/componentDashboard/DashboardTest.java
index b22bcc3807f..3c2bc9c0419 100644
--- a/it/it-tests/src/test/java/it/componentDashboard/DashboardTest.java
+++ b/it/it-tests/src/test/java/it/componentDashboard/DashboardTest.java
@@ -25,9 +25,12 @@ import it.Category4Suite;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import util.QaOnly;
import static util.ItUtils.runProjectAnalysis;
+@Category(QaOnly.class)
public class DashboardTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/componentSearch/AllProjectsTest.java b/it/it-tests/src/test/java/it/componentSearch/AllProjectsTest.java
index b3f6bd3651f..b9038e12626 100644
--- a/it/it-tests/src/test/java/it/componentSearch/AllProjectsTest.java
+++ b/it/it-tests/src/test/java/it/componentSearch/AllProjectsTest.java
@@ -26,10 +26,13 @@ import it.Category4Suite;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import util.QaOnly;
import util.selenium.SeleneseTest;
import static util.ItUtils.projectDir;
+@Category(QaOnly.class)
public class AllProjectsTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/customMeasure/CustomMeasuresTest.java b/it/it-tests/src/test/java/it/customMeasure/CustomMeasuresTest.java
index 5aa1c2d8296..3edb5cbe8e6 100644
--- a/it/it-tests/src/test/java/it/customMeasure/CustomMeasuresTest.java
+++ b/it/it-tests/src/test/java/it/customMeasure/CustomMeasuresTest.java
@@ -27,13 +27,16 @@ import java.util.regex.Pattern;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.services.Measure;
import org.sonar.wsclient.services.Resource;
import org.sonar.wsclient.services.ResourceQuery;
+import util.QaOnly;
import static org.assertj.core.api.Assertions.assertThat;
import static util.ItUtils.projectDir;
+@Category(QaOnly.class)
public class CustomMeasuresTest {
public static final String PROJECT_KEY = "sample";
diff --git a/it/it-tests/src/test/java/it/debt/DebtConfigurationRule.java b/it/it-tests/src/test/java/it/debt/DebtConfigurationRule.java
index 25e577e95c6..18d68e81b2e 100644
--- a/it/it-tests/src/test/java/it/debt/DebtConfigurationRule.java
+++ b/it/it-tests/src/test/java/it/debt/DebtConfigurationRule.java
@@ -23,7 +23,9 @@ import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableSet;
import com.sonar.orchestrator.Orchestrator;
import java.util.Set;
+import org.junit.experimental.categories.Category;
import org.junit.rules.ExternalResource;
+import util.QaOnly;
import static com.google.common.base.Preconditions.checkState;
import static util.ItUtils.setServerProperty;
@@ -31,6 +33,7 @@ import static util.ItUtils.setServerProperty;
/**
* This rule should be used when dealing with technical debt properties, in order to always be sure that the properties are correctly reset between each tests.
*/
+@Category(QaOnly.class)
public class DebtConfigurationRule extends ExternalResource {
private static final String HOURS_IN_DAY_PROPERTY = "sonar.technicalDebt.hoursInDay";
diff --git a/it/it-tests/src/test/java/it/debt/TechnicalDebtInIssueChangelogTest.java b/it/it-tests/src/test/java/it/debt/TechnicalDebtInIssueChangelogTest.java
index 657e0e2e35d..aef6d629943 100644
--- a/it/it-tests/src/test/java/it/debt/TechnicalDebtInIssueChangelogTest.java
+++ b/it/it-tests/src/test/java/it/debt/TechnicalDebtInIssueChangelogTest.java
@@ -28,11 +28,13 @@ import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.issue.Issue;
import org.sonar.wsclient.issue.IssueChange;
import org.sonar.wsclient.issue.IssueChangeDiff;
import org.sonar.wsclient.issue.IssueClient;
import org.sonar.wsclient.issue.IssueQuery;
+import util.QaOnly;
import static org.assertj.core.api.Assertions.assertThat;
import static util.ItUtils.projectDir;
@@ -40,6 +42,7 @@ import static util.ItUtils.projectDir;
/**
* SONAR-4834
*/
+@Category(QaOnly.class)
public class TechnicalDebtInIssueChangelogTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/debt/TechnicalDebtWidgetTest.java b/it/it-tests/src/test/java/it/debt/TechnicalDebtWidgetTest.java
index b1698bfa30b..89f10f8a918 100644
--- a/it/it-tests/src/test/java/it/debt/TechnicalDebtWidgetTest.java
+++ b/it/it-tests/src/test/java/it/debt/TechnicalDebtWidgetTest.java
@@ -27,10 +27,13 @@ import it.Category2Suite;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import util.QaOnly;
import util.selenium.SeleneseTest;
import static util.ItUtils.projectDir;
+@Category(QaOnly.class)
public class TechnicalDebtWidgetTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/duplication/CrossModuleDuplicationsTest.java b/it/it-tests/src/test/java/it/duplication/CrossModuleDuplicationsTest.java
index 5c72f8b399d..c96b3333ca9 100644
--- a/it/it-tests/src/test/java/it/duplication/CrossModuleDuplicationsTest.java
+++ b/it/it-tests/src/test/java/it/duplication/CrossModuleDuplicationsTest.java
@@ -30,6 +30,7 @@ import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.junit.rules.TemporaryFolder;
import org.sonar.wsclient.services.Resource;
import org.sonar.wsclient.services.ResourceQuery;
@@ -37,9 +38,11 @@ import util.ItUtils;
import java.io.File;
import java.io.IOException;
+import util.QaOnly;
import static org.assertj.core.api.Assertions.assertThat;
+@Category(QaOnly.class)
public class CrossModuleDuplicationsTest {
private static final String PROJECT_KEY = "cross-module";
private static final String PROJECT_DIR = "duplications/" + PROJECT_KEY;
diff --git a/it/it-tests/src/test/java/it/duplication/CrossProjectDuplicationsOnRemoveFileTest.java b/it/it-tests/src/test/java/it/duplication/CrossProjectDuplicationsOnRemoveFileTest.java
index 45741d2a18e..118715d4cfb 100644
--- a/it/it-tests/src/test/java/it/duplication/CrossProjectDuplicationsOnRemoveFileTest.java
+++ b/it/it-tests/src/test/java/it/duplication/CrossProjectDuplicationsOnRemoveFileTest.java
@@ -27,13 +27,16 @@ import org.apache.commons.io.IOUtils;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.services.ResourceQuery;
+import util.QaOnly;
import util.selenium.SeleneseTest;
import static org.assertj.core.api.Assertions.assertThat;
import static org.skyscreamer.jsonassert.JSONAssert.assertEquals;
import static util.ItUtils.runProjectAnalysis;
+@Category(QaOnly.class)
public class CrossProjectDuplicationsOnRemoveFileTest {
static final String ORIGIN_PROJECT = "origin-project";
diff --git a/it/it-tests/src/test/java/it/i18n/I18nTest.java b/it/it-tests/src/test/java/it/i18n/I18nTest.java
index 638ea310107..793d78069dd 100644
--- a/it/it-tests/src/test/java/it/i18n/I18nTest.java
+++ b/it/it-tests/src/test/java/it/i18n/I18nTest.java
@@ -27,10 +27,13 @@ import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Ignore;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import util.QaOnly;
import util.selenium.SeleneseTest;
import static util.ItUtils.projectDir;
+@Category(QaOnly.class)
public class I18nTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/issue/CommonRulesTest.java b/it/it-tests/src/test/java/it/issue/CommonRulesTest.java
index 5b676c907d8..194db53d7cd 100644
--- a/it/it-tests/src/test/java/it/issue/CommonRulesTest.java
+++ b/it/it-tests/src/test/java/it/issue/CommonRulesTest.java
@@ -23,15 +23,18 @@ import com.sonar.orchestrator.locator.FileLocation;
import java.util.List;
import org.junit.BeforeClass;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonarqube.ws.Issues.Issue;
import org.sonarqube.ws.client.WsClient;
import org.sonarqube.ws.client.issue.SearchWsRequest;
+import util.QaOnly;
import static java.util.Collections.singletonList;
import static org.assertj.core.api.Assertions.assertThat;
import static util.ItUtils.newAdminWsClient;
import static util.ItUtils.runProjectAnalysis;
+@Category(QaOnly.class)
public class CommonRulesTest extends AbstractIssueTest {
public static final String FILE_KEY = "common-rules-project:src/Sample.xoo";
diff --git a/it/it-tests/src/test/java/it/issue/CustomRulesTest.java b/it/it-tests/src/test/java/it/issue/CustomRulesTest.java
index 7d3478b5312..25258b1107c 100644
--- a/it/it-tests/src/test/java/it/issue/CustomRulesTest.java
+++ b/it/it-tests/src/test/java/it/issue/CustomRulesTest.java
@@ -23,12 +23,15 @@ import java.util.List;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.issue.Issue;
import util.ProjectAnalysis;
import util.ProjectAnalysisRule;
+import util.QaOnly;
import static org.assertj.core.api.Assertions.assertThat;
+@Category(QaOnly.class)
public class CustomRulesTest extends AbstractIssueTest {
@Rule
diff --git a/it/it-tests/src/test/java/it/issue/IssueActionTest.java b/it/it-tests/src/test/java/it/issue/IssueActionTest.java
index 495d8c41d31..ee8b3fbd15a 100644
--- a/it/it-tests/src/test/java/it/issue/IssueActionTest.java
+++ b/it/it-tests/src/test/java/it/issue/IssueActionTest.java
@@ -24,6 +24,7 @@ import org.assertj.core.api.Assertions;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.base.HttpException;
import org.sonar.wsclient.issue.ActionPlan;
import org.sonar.wsclient.issue.ActionPlanClient;
@@ -34,12 +35,14 @@ import org.sonar.wsclient.issue.Issues;
import org.sonar.wsclient.issue.NewActionPlan;
import util.ProjectAnalysis;
import util.ProjectAnalysisRule;
+import util.QaOnly;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.fail;
import static util.ItUtils.toDate;
import static util.ItUtils.verifyHttpException;
+@Category(QaOnly.class)
public class IssueActionTest extends AbstractIssueTest {
@Rule
diff --git a/it/it-tests/src/test/java/it/issue/IssueBulkChangeTest.java b/it/it-tests/src/test/java/it/issue/IssueBulkChangeTest.java
index f404e1d8f2f..a0e82bef592 100644
--- a/it/it-tests/src/test/java/it/issue/IssueBulkChangeTest.java
+++ b/it/it-tests/src/test/java/it/issue/IssueBulkChangeTest.java
@@ -25,6 +25,7 @@ import java.util.List;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.base.HttpException;
import org.sonar.wsclient.issue.ActionPlan;
import org.sonar.wsclient.issue.ActionPlanClient;
@@ -35,12 +36,14 @@ import org.sonar.wsclient.issue.NewActionPlan;
import util.ItUtils;
import util.ProjectAnalysis;
import util.ProjectAnalysisRule;
+import util.QaOnly;
import static org.assertj.core.api.Assertions.assertThat;
/**
* SONAR-4421
*/
+@Category(QaOnly.class)
public class IssueBulkChangeTest extends AbstractIssueTest {
private static final int BULK_EDITED_ISSUE_COUNT = 3;
diff --git a/it/it-tests/src/test/java/it/issue/IssueChangelogTest.java b/it/it-tests/src/test/java/it/issue/IssueChangelogTest.java
index f4a1d58b038..f0c14f42fbc 100644
--- a/it/it-tests/src/test/java/it/issue/IssueChangelogTest.java
+++ b/it/it-tests/src/test/java/it/issue/IssueChangelogTest.java
@@ -23,14 +23,17 @@ import java.util.List;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.issue.Issue;
import org.sonar.wsclient.issue.IssueChange;
import org.sonar.wsclient.issue.IssueChangeDiff;
import util.ProjectAnalysis;
import util.ProjectAnalysisRule;
+import util.QaOnly;
import static org.assertj.core.api.Assertions.assertThat;
+@Category(QaOnly.class)
public class IssueChangelogTest extends AbstractIssueTest {
@Rule
diff --git a/it/it-tests/src/test/java/it/issue/IssueFilterExtensionTest.java b/it/it-tests/src/test/java/it/issue/IssueFilterExtensionTest.java
index d580259b668..d856063881c 100644
--- a/it/it-tests/src/test/java/it/issue/IssueFilterExtensionTest.java
+++ b/it/it-tests/src/test/java/it/issue/IssueFilterExtensionTest.java
@@ -22,6 +22,7 @@ package it.issue;
import java.util.List;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.issue.Issue;
import org.sonar.wsclient.issue.IssueQuery;
import org.sonar.wsclient.services.Measure;
@@ -29,12 +30,14 @@ import org.sonar.wsclient.services.Resource;
import org.sonar.wsclient.services.ResourceQuery;
import util.ProjectAnalysis;
import util.ProjectAnalysisRule;
+import util.QaOnly;
import static org.assertj.core.api.Assertions.assertThat;
/**
* Tests the extension point IssueFilter
*/
+@Category(QaOnly.class)
public class IssueFilterExtensionTest extends AbstractIssueTest {
@Rule
diff --git a/it/it-tests/src/test/java/it/issue/IssueNotificationsTest.java b/it/it-tests/src/test/java/it/issue/IssueNotificationsTest.java
index 00f6f61a15f..77fe48f2942 100644
--- a/it/it-tests/src/test/java/it/issue/IssueNotificationsTest.java
+++ b/it/it-tests/src/test/java/it/issue/IssueNotificationsTest.java
@@ -28,6 +28,7 @@ import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.issue.BulkChangeQuery;
import org.sonar.wsclient.issue.Issue;
import org.sonar.wsclient.issue.IssueClient;
@@ -36,6 +37,7 @@ import org.sonar.wsclient.issue.Issues;
import org.subethamail.wiser.Wiser;
import org.subethamail.wiser.WiserMessage;
import util.NetworkUtils;
+import util.QaOnly;
import util.selenium.SeleneseTest;
import util.user.UserRule;
@@ -43,6 +45,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import static util.ItUtils.runProjectAnalysis;
import static util.ItUtils.setServerProperty;
+@Category(QaOnly.class)
public class IssueNotificationsTest extends AbstractIssueTest {
private final static String PROJECT_KEY = "sample";
diff --git a/it/it-tests/src/test/java/it/issue/IssuePurgeTest.java b/it/it-tests/src/test/java/it/issue/IssuePurgeTest.java
index 45255b5263e..8a361c23570 100644
--- a/it/it-tests/src/test/java/it/issue/IssuePurgeTest.java
+++ b/it/it-tests/src/test/java/it/issue/IssuePurgeTest.java
@@ -24,13 +24,16 @@ import org.assertj.core.api.Assertions;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.issue.Issue;
import org.sonar.wsclient.issue.IssueQuery;
import util.ProjectAnalysis;
import util.ProjectAnalysisRule;
+import util.QaOnly;
import static org.assertj.core.api.Assertions.assertThat;
+@Category(QaOnly.class)
public class IssuePurgeTest extends AbstractIssueTest {
@Rule
diff --git a/it/it-tests/src/test/java/it/issue/ManualIssueRelocationTest.java b/it/it-tests/src/test/java/it/issue/ManualIssueRelocationTest.java
index 33f4de419af..399fc3475bb 100644
--- a/it/it-tests/src/test/java/it/issue/ManualIssueRelocationTest.java
+++ b/it/it-tests/src/test/java/it/issue/ManualIssueRelocationTest.java
@@ -26,13 +26,16 @@ import javax.annotation.Nullable;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.issue.Issue;
import org.sonar.wsclient.issue.IssueQuery;
import org.sonar.wsclient.issue.NewIssue;
+import util.QaOnly;
import static org.assertj.core.api.Assertions.assertThat;
import static util.ItUtils.runProjectAnalysis;
+@Category(QaOnly.class)
public class ManualIssueRelocationTest extends AbstractIssueTest {
private final static String COMPONENT_KEY = "sample:src/main/xoo/sample/Sample.xoo";
diff --git a/it/it-tests/src/test/java/it/issue/ManualIssueTest.java b/it/it-tests/src/test/java/it/issue/ManualIssueTest.java
index f4e8c3be78e..25397379936 100644
--- a/it/it-tests/src/test/java/it/issue/ManualIssueTest.java
+++ b/it/it-tests/src/test/java/it/issue/ManualIssueTest.java
@@ -23,11 +23,13 @@ import com.google.common.collect.ImmutableMap;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.issue.Issue;
import org.sonar.wsclient.issue.IssueComment;
import org.sonar.wsclient.issue.IssueQuery;
import org.sonar.wsclient.issue.Issues;
import org.sonar.wsclient.issue.NewIssue;
+import util.QaOnly;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.fail;
@@ -37,6 +39,7 @@ import static util.ItUtils.verifyHttpException;
/**
* SONAR-4304
*/
+@Category(QaOnly.class)
public class ManualIssueTest extends AbstractIssueTest {
private final static String COMPONENT_KEY = "sample:src/main/xoo/sample/Sample.xoo";
diff --git a/it/it-tests/src/test/java/it/measure/DecimalScaleMetricTest.java b/it/it-tests/src/test/java/it/measure/DecimalScaleMetricTest.java
index b874aa16de1..d77c6877987 100644
--- a/it/it-tests/src/test/java/it/measure/DecimalScaleMetricTest.java
+++ b/it/it-tests/src/test/java/it/measure/DecimalScaleMetricTest.java
@@ -23,15 +23,18 @@ import com.sonar.orchestrator.Orchestrator;
import it.Category3Suite;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.services.Resource;
import org.sonar.wsclient.services.ResourceQuery;
import util.ItUtils;
+import util.QaOnly;
import static org.assertj.core.api.Assertions.assertThat;
/**
* SONAR-6939
*/
+@Category(QaOnly.class)
public class DecimalScaleMetricTest {
/**
diff --git a/it/it-tests/src/test/java/it/measure/ProjectWidgetsTest.java b/it/it-tests/src/test/java/it/measure/ProjectWidgetsTest.java
index d5c2bdff52c..c6fa73a8255 100644
--- a/it/it-tests/src/test/java/it/measure/ProjectWidgetsTest.java
+++ b/it/it-tests/src/test/java/it/measure/ProjectWidgetsTest.java
@@ -27,11 +27,14 @@ import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Ignore;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.services.ResourceQuery;
+import util.QaOnly;
import util.selenium.SeleneseTest;
import static util.ItUtils.projectDir;
+@Category(QaOnly.class)
public class ProjectWidgetsTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/measureFilter/MeasureFiltersTest.java b/it/it-tests/src/test/java/it/measureFilter/MeasureFiltersTest.java
index 01b09402103..2cb3c19215a 100644
--- a/it/it-tests/src/test/java/it/measureFilter/MeasureFiltersTest.java
+++ b/it/it-tests/src/test/java/it/measureFilter/MeasureFiltersTest.java
@@ -27,15 +27,18 @@ import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.SonarClient;
import org.sonar.wsclient.user.UserParameters;
import org.sonarqube.ws.client.WsClient;
import org.sonarqube.ws.client.permission.AddUserWsRequest;
+import util.QaOnly;
import util.selenium.SeleneseTest;
import static util.ItUtils.newAdminWsClient;
import static util.ItUtils.projectDir;
+@Category(QaOnly.class)
public class MeasureFiltersTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/measureHistory/HistoryUiTest.java b/it/it-tests/src/test/java/it/measureHistory/HistoryUiTest.java
index ae141e4447f..747e91f94a8 100644
--- a/it/it-tests/src/test/java/it/measureHistory/HistoryUiTest.java
+++ b/it/it-tests/src/test/java/it/measureHistory/HistoryUiTest.java
@@ -27,10 +27,13 @@ import it.Category1Suite;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import util.QaOnly;
import util.selenium.SeleneseTest;
import static util.ItUtils.projectDir;
+@Category(QaOnly.class)
public class HistoryUiTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/measureHistory/SincePreviousVersionHistoryTest.java b/it/it-tests/src/test/java/it/measureHistory/SincePreviousVersionHistoryTest.java
index 368dcc76163..05fa389d17e 100644
--- a/it/it-tests/src/test/java/it/measureHistory/SincePreviousVersionHistoryTest.java
+++ b/it/it-tests/src/test/java/it/measureHistory/SincePreviousVersionHistoryTest.java
@@ -31,15 +31,18 @@ import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.services.Measure;
import org.sonar.wsclient.services.Resource;
import org.sonar.wsclient.services.ResourceQuery;
import util.ItUtils;
+import util.QaOnly;
import static org.assertj.core.api.Assertions.assertThat;
import static util.ItUtils.projectDir;
import static util.ItUtils.setServerProperty;
+@Category(QaOnly.class)
public class SincePreviousVersionHistoryTest {
private static final String PROJECT = "com.sonarsource.it.samples:multi-modules-sample";
diff --git a/it/it-tests/src/test/java/it/measureHistory/SinceXDaysHistoryTest.java b/it/it-tests/src/test/java/it/measureHistory/SinceXDaysHistoryTest.java
index ef3257fcf63..6141e1a3164 100644
--- a/it/it-tests/src/test/java/it/measureHistory/SinceXDaysHistoryTest.java
+++ b/it/it-tests/src/test/java/it/measureHistory/SinceXDaysHistoryTest.java
@@ -30,15 +30,18 @@ import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.services.Measure;
import org.sonar.wsclient.services.Resource;
import org.sonar.wsclient.services.ResourceQuery;
import util.ItUtils;
+import util.QaOnly;
import static org.assertj.core.api.Assertions.assertThat;
import static util.ItUtils.projectDir;
import static util.ItUtils.setServerProperty;
+@Category(QaOnly.class)
public class SinceXDaysHistoryTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/measureHistory/TimeMachineTest.java b/it/it-tests/src/test/java/it/measureHistory/TimeMachineTest.java
index c3ba1d38fa7..9c3585c369c 100644
--- a/it/it-tests/src/test/java/it/measureHistory/TimeMachineTest.java
+++ b/it/it-tests/src/test/java/it/measureHistory/TimeMachineTest.java
@@ -29,17 +29,20 @@ import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.services.Resource;
import org.sonar.wsclient.services.ResourceQuery;
import org.sonar.wsclient.services.TimeMachine;
import org.sonar.wsclient.services.TimeMachineCell;
import org.sonar.wsclient.services.TimeMachineQuery;
import util.ItUtils;
+import util.QaOnly;
import static org.assertj.core.api.Assertions.assertThat;
import static util.ItUtils.projectDir;
import static util.ItUtils.setServerProperty;
+@Category(QaOnly.class)
public class TimeMachineTest {
private static final String PROJECT = "sample";
diff --git a/it/it-tests/src/test/java/it/projectAdministration/BulkDeletionTest.java b/it/it-tests/src/test/java/it/projectAdministration/BulkDeletionTest.java
index cb6bbfbe2ea..c23d74f5882 100644
--- a/it/it-tests/src/test/java/it/projectAdministration/BulkDeletionTest.java
+++ b/it/it-tests/src/test/java/it/projectAdministration/BulkDeletionTest.java
@@ -26,10 +26,13 @@ import it.Category1Suite;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import util.QaOnly;
import util.selenium.SeleneseTest;
import static util.ItUtils.projectDir;
+@Category(QaOnly.class)
public class BulkDeletionTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/projectAdministration/ProjectAdministrationTest.java b/it/it-tests/src/test/java/it/projectAdministration/ProjectAdministrationTest.java
index 37770d094c9..c9ebffb8ac9 100644
--- a/it/it-tests/src/test/java/it/projectAdministration/ProjectAdministrationTest.java
+++ b/it/it-tests/src/test/java/it/projectAdministration/ProjectAdministrationTest.java
@@ -31,17 +31,20 @@ import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.junit.rules.ExpectedException;
import org.sonar.wsclient.SonarClient;
import org.sonar.wsclient.base.HttpException;
import org.sonar.wsclient.services.PropertyQuery;
import org.sonar.wsclient.services.ResourceQuery;
import org.sonar.wsclient.user.UserParameters;
+import util.QaOnly;
import util.selenium.SeleneseTest;
import static org.assertj.core.api.Assertions.assertThat;
import static util.ItUtils.projectDir;
+@Category(QaOnly.class)
public class ProjectAdministrationTest {
private static final String DELETE_WS_ENDPOINT = "api/projects/bulk_delete";
diff --git a/it/it-tests/src/test/java/it/projectAdministration/ProjectPermissionsTest.java b/it/it-tests/src/test/java/it/projectAdministration/ProjectPermissionsTest.java
index fa04e7aab1e..fc6fecc4470 100644
--- a/it/it-tests/src/test/java/it/projectAdministration/ProjectPermissionsTest.java
+++ b/it/it-tests/src/test/java/it/projectAdministration/ProjectPermissionsTest.java
@@ -25,10 +25,13 @@ import com.sonar.orchestrator.selenium.Selenese;
import it.Category1Suite;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import util.QaOnly;
import util.selenium.SeleneseTest;
import static util.ItUtils.projectDir;
+@Category(QaOnly.class)
public class ProjectPermissionsTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/projectComparison/ProjectComparisonTest.java b/it/it-tests/src/test/java/it/projectComparison/ProjectComparisonTest.java
index b06d762b80b..4a459dcd071 100644
--- a/it/it-tests/src/test/java/it/projectComparison/ProjectComparisonTest.java
+++ b/it/it-tests/src/test/java/it/projectComparison/ProjectComparisonTest.java
@@ -27,10 +27,13 @@ import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Ignore;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import util.QaOnly;
import util.selenium.SeleneseTest;
import static util.ItUtils.projectDir;
+@Category(QaOnly.class)
public class ProjectComparisonTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/projectEvent/EventTest.java b/it/it-tests/src/test/java/it/projectEvent/EventTest.java
index 0c479d84b89..f1be806d728 100644
--- a/it/it-tests/src/test/java/it/projectEvent/EventTest.java
+++ b/it/it-tests/src/test/java/it/projectEvent/EventTest.java
@@ -28,8 +28,10 @@ import java.util.List;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.services.Event;
import org.sonar.wsclient.services.EventQuery;
+import util.QaOnly;
import util.selenium.SeleneseTest;
import static org.hamcrest.Matchers.hasItems;
@@ -37,6 +39,7 @@ import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
import static util.ItUtils.projectDir;
+@Category(QaOnly.class)
public class EventTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/qualityGate/QualityGateNotificationTest.java b/it/it-tests/src/test/java/it/qualityGate/QualityGateNotificationTest.java
index 620c781385a..5ed4454c776 100644
--- a/it/it-tests/src/test/java/it/qualityGate/QualityGateNotificationTest.java
+++ b/it/it-tests/src/test/java/it/qualityGate/QualityGateNotificationTest.java
@@ -30,6 +30,7 @@ import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.Sonar;
import org.sonar.wsclient.qualitygate.NewCondition;
import org.sonar.wsclient.qualitygate.QualityGate;
@@ -42,12 +43,14 @@ import org.subethamail.wiser.Wiser;
import org.subethamail.wiser.WiserMessage;
import util.ItUtils;
import util.NetworkUtils;
+import util.QaOnly;
import util.selenium.SeleneseTest;
import static org.assertj.core.api.Assertions.assertThat;
import static util.ItUtils.projectDir;
import static util.ItUtils.setServerProperty;
+@Category(QaOnly.class)
public class QualityGateNotificationTest {
private static long DEFAULT_QUALITY_GATE;
diff --git a/it/it-tests/src/test/java/it/qualityGate/QualityGateUiTest.java b/it/it-tests/src/test/java/it/qualityGate/QualityGateUiTest.java
index 79733afc282..d81c6d2ee3c 100644
--- a/it/it-tests/src/test/java/it/qualityGate/QualityGateUiTest.java
+++ b/it/it-tests/src/test/java/it/qualityGate/QualityGateUiTest.java
@@ -29,17 +29,20 @@ import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.qualitygate.NewCondition;
import org.sonar.wsclient.qualitygate.QualityGate;
import org.sonar.wsclient.qualitygate.QualityGateClient;
import org.sonar.wsclient.qualitygate.QualityGateCondition;
import org.sonar.wsclient.qualitygate.UpdateCondition;
import util.ItUtils;
+import util.QaOnly;
import util.selenium.SeleneseTest;
import static util.ItUtils.projectDir;
import static util.ItUtils.setServerProperty;
+@Category(QaOnly.class)
public class QualityGateUiTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/rule/ManualRulesTest.java b/it/it-tests/src/test/java/it/rule/ManualRulesTest.java
index 02f4d98c668..90b0fd9b0d6 100644
--- a/it/it-tests/src/test/java/it/rule/ManualRulesTest.java
+++ b/it/it-tests/src/test/java/it/rule/ManualRulesTest.java
@@ -28,8 +28,11 @@ import org.junit.AfterClass;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import util.QaOnly;
import util.selenium.SeleneseTest;
+@Category(QaOnly.class)
public class ManualRulesTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/serverSystem/HttpsTest.java b/it/it-tests/src/test/java/it/serverSystem/HttpsTest.java
index b08cee741c4..6a39cffac43 100644
--- a/it/it-tests/src/test/java/it/serverSystem/HttpsTest.java
+++ b/it/it-tests/src/test/java/it/serverSystem/HttpsTest.java
@@ -41,8 +41,10 @@ import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.junit.rules.ExpectedException;
import util.NetworkUtils;
+import util.QaOnly;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.fail;
@@ -50,6 +52,7 @@ import static org.junit.Assert.fail;
/**
* This class start a new orchestrator on each test case
*/
+@Category(QaOnly.class)
public class HttpsTest {
public static final String HTTPS_PROTOCOLS = "https.protocols";
diff --git a/it/it-tests/src/test/java/it/serverSystem/RestartTest.java b/it/it-tests/src/test/java/it/serverSystem/RestartTest.java
index 3101b9cc7ec..c5d35cb1fd4 100644
--- a/it/it-tests/src/test/java/it/serverSystem/RestartTest.java
+++ b/it/it-tests/src/test/java/it/serverSystem/RestartTest.java
@@ -25,10 +25,12 @@ import org.apache.commons.lang.SystemUtils;
import org.junit.After;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.junit.rules.DisableOnDebug;
import org.junit.rules.ExpectedException;
import org.junit.rules.TestRule;
import org.junit.rules.Timeout;
+import util.QaOnly;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.fail;
@@ -38,6 +40,7 @@ import static util.ItUtils.newWsClient;
/**
* This class starts a new orchestrator on each test case
*/
+@Category(QaOnly.class)
public class RestartTest {
Orchestrator orchestrator;
diff --git a/it/it-tests/src/test/java/it/serverSystem/ServerSystemRestartingOrchestrator.java b/it/it-tests/src/test/java/it/serverSystem/ServerSystemRestartingOrchestrator.java
index 5b72bde89a6..4869e31fe52 100644
--- a/it/it-tests/src/test/java/it/serverSystem/ServerSystemRestartingOrchestrator.java
+++ b/it/it-tests/src/test/java/it/serverSystem/ServerSystemRestartingOrchestrator.java
@@ -26,10 +26,12 @@ import org.apache.commons.io.FileUtils;
import org.junit.After;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.junit.rules.ExpectedException;
import org.sonar.wsclient.services.Server;
import org.sonar.wsclient.services.ServerQuery;
import util.ItUtils;
+import util.QaOnly;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.fail;
@@ -37,6 +39,7 @@ import static org.junit.Assert.fail;
/**
* This class start a new orchestrator on each test case
*/
+@Category(QaOnly.class)
public class ServerSystemRestartingOrchestrator {
Orchestrator orchestrator;
diff --git a/it/it-tests/src/test/java/it/serverSystem/ServerSystemTest.java b/it/it-tests/src/test/java/it/serverSystem/ServerSystemTest.java
index 412b8b07c07..64c72d3faec 100644
--- a/it/it-tests/src/test/java/it/serverSystem/ServerSystemTest.java
+++ b/it/it-tests/src/test/java/it/serverSystem/ServerSystemTest.java
@@ -37,14 +37,17 @@ import org.json.simple.JSONValue;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.services.Server;
import org.sonar.wsclient.services.ServerQuery;
import util.ItUtils;
+import util.QaOnly;
import util.selenium.SeleneseTest;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.fail;
+@Category(QaOnly.class)
public class ServerSystemTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/settings/PropertySetsTest.java b/it/it-tests/src/test/java/it/settings/PropertySetsTest.java
index 666a145eeb1..00f4311f40e 100644
--- a/it/it-tests/src/test/java/it/settings/PropertySetsTest.java
+++ b/it/it-tests/src/test/java/it/settings/PropertySetsTest.java
@@ -24,12 +24,15 @@ import com.sonar.orchestrator.selenium.Selenese;
import it.Category1Suite;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.services.PropertyQuery;
import org.sonar.wsclient.services.PropertyUpdateQuery;
+import util.QaOnly;
import util.selenium.SeleneseTest;
import static org.assertj.core.api.Assertions.assertThat;
+@Category(QaOnly.class)
public class PropertySetsTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/settings/SettingsTestRestartingOrchestrator.java b/it/it-tests/src/test/java/it/settings/SettingsTestRestartingOrchestrator.java
index 1f7835c3f28..f0ebfe4816d 100644
--- a/it/it-tests/src/test/java/it/settings/SettingsTestRestartingOrchestrator.java
+++ b/it/it-tests/src/test/java/it/settings/SettingsTestRestartingOrchestrator.java
@@ -26,7 +26,9 @@ import java.net.URL;
import org.junit.After;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.junit.rules.ExpectedException;
+import util.QaOnly;
import util.selenium.SeleneseTest;
import static util.ItUtils.pluginArtifact;
@@ -36,6 +38,7 @@ import static util.ItUtils.xooPlugin;
/**
* This class start a new orchestrator on each test case
*/
+@Category(QaOnly.class)
public class SettingsTestRestartingOrchestrator {
Orchestrator orchestrator;
diff --git a/it/it-tests/src/test/java/it/settings/SubCategoriesTest.java b/it/it-tests/src/test/java/it/settings/SubCategoriesTest.java
index 08ec69218ab..3c87d7c97f2 100644
--- a/it/it-tests/src/test/java/it/settings/SubCategoriesTest.java
+++ b/it/it-tests/src/test/java/it/settings/SubCategoriesTest.java
@@ -25,12 +25,15 @@ import com.sonar.orchestrator.selenium.Selenese;
import it.Category1Suite;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.services.PropertyQuery;
+import util.QaOnly;
import util.selenium.SeleneseTest;
import static org.assertj.core.api.Assertions.assertThat;
import static util.ItUtils.projectDir;
+@Category(QaOnly.class)
public class SubCategoriesTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/sourceCode/EncodingTest.java b/it/it-tests/src/test/java/it/sourceCode/EncodingTest.java
index a47d68f8983..8d21f85ee39 100644
--- a/it/it-tests/src/test/java/it/sourceCode/EncodingTest.java
+++ b/it/it-tests/src/test/java/it/sourceCode/EncodingTest.java
@@ -25,10 +25,13 @@ import it.Category1Suite;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import util.QaOnly;
import util.selenium.SeleneseTest;
import static util.ItUtils.runProjectAnalysis;
+@Category(QaOnly.class)
public class EncodingTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/test/CoverageTrackingTest.java b/it/it-tests/src/test/java/it/test/CoverageTrackingTest.java
index 1456e3e274c..656f8de6a00 100644
--- a/it/it-tests/src/test/java/it/test/CoverageTrackingTest.java
+++ b/it/it-tests/src/test/java/it/test/CoverageTrackingTest.java
@@ -28,10 +28,13 @@ import org.apache.commons.io.IOUtils;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.skyscreamer.jsonassert.JSONAssert;
+import util.QaOnly;
import static util.ItUtils.projectDir;
+@Category(QaOnly.class)
public class CoverageTrackingTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/ui/UiTest.java b/it/it-tests/src/test/java/it/ui/UiTest.java
index ac3bc9cb2ed..66a90fbc6d6 100644
--- a/it/it-tests/src/test/java/it/ui/UiTest.java
+++ b/it/it-tests/src/test/java/it/ui/UiTest.java
@@ -24,8 +24,11 @@ import com.sonar.orchestrator.selenium.Selenese;
import it.Category4Suite;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import util.QaOnly;
import util.selenium.SeleneseTest;
+@Category(QaOnly.class)
public class UiTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/uiExtension/UiExtensionsTest.java b/it/it-tests/src/test/java/it/uiExtension/UiExtensionsTest.java
index decffdaa5f2..629578be964 100644
--- a/it/it-tests/src/test/java/it/uiExtension/UiExtensionsTest.java
+++ b/it/it-tests/src/test/java/it/uiExtension/UiExtensionsTest.java
@@ -30,10 +30,13 @@ import org.apache.http.util.EntityUtils;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
+import util.QaOnly;
import util.selenium.SeleneseTest;
import static org.assertj.core.api.Assertions.assertThat;
+@Category(QaOnly.class)
public class UiExtensionsTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/updateCenter/UpdateCenterTest.java b/it/it-tests/src/test/java/it/updateCenter/UpdateCenterTest.java
index e7d37b5e9e2..9f6e3d0b2fa 100644
--- a/it/it-tests/src/test/java/it/updateCenter/UpdateCenterTest.java
+++ b/it/it-tests/src/test/java/it/updateCenter/UpdateCenterTest.java
@@ -27,8 +27,10 @@ import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.services.Plugin;
import org.sonar.wsclient.services.UpdateCenterQuery;
+import util.QaOnly;
import util.selenium.SeleneseTest;
import static org.assertj.core.api.Assertions.assertThat;
@@ -38,6 +40,7 @@ import static util.ItUtils.xooPlugin;
/**
* This class start its own orchestrator
*/
+@Category(QaOnly.class)
public class UpdateCenterTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/user/BaseIdentityProviderTest.java b/it/it-tests/src/test/java/it/user/BaseIdentityProviderTest.java
index b87fef962bb..242d78caf7d 100644
--- a/it/it-tests/src/test/java/it/user/BaseIdentityProviderTest.java
+++ b/it/it-tests/src/test/java/it/user/BaseIdentityProviderTest.java
@@ -28,9 +28,11 @@ import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Ignore;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonarqube.ws.client.GetRequest;
import org.sonarqube.ws.client.WsClient;
import org.sonarqube.ws.client.WsResponse;
+import util.QaOnly;
import util.user.UserRule;
import util.user.Users;
@@ -44,6 +46,7 @@ import static util.ItUtils.setServerProperty;
* - creating new user using email already used
* - display multiple identity provider plugins (probably in another class)
*/
+@Category(QaOnly.class)
public class BaseIdentityProviderTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/user/FavouriteTest.java b/it/it-tests/src/test/java/it/user/FavouriteTest.java
index 02c9d42c3fd..46e18f07e3a 100644
--- a/it/it-tests/src/test/java/it/user/FavouriteTest.java
+++ b/it/it-tests/src/test/java/it/user/FavouriteTest.java
@@ -28,11 +28,13 @@ import java.util.List;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.Sonar;
import org.sonar.wsclient.services.Favourite;
import org.sonar.wsclient.services.FavouriteCreateQuery;
import org.sonar.wsclient.services.FavouriteDeleteQuery;
import org.sonar.wsclient.services.FavouriteQuery;
+import util.QaOnly;
import static com.google.common.collect.Lists.newArrayList;
import static org.assertj.core.api.Assertions.assertThat;
@@ -41,6 +43,7 @@ import static util.ItUtils.projectDir;
/**
* TODO This test should not require an analysis, only provisioning the project should be enough
*/
+@Category(QaOnly.class)
public class FavouriteTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/user/ForceAuthenticationTest.java b/it/it-tests/src/test/java/it/user/ForceAuthenticationTest.java
index 0c4c7add5d8..58788abf9bf 100644
--- a/it/it-tests/src/test/java/it/user/ForceAuthenticationTest.java
+++ b/it/it-tests/src/test/java/it/user/ForceAuthenticationTest.java
@@ -29,12 +29,15 @@ import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonar.wsclient.base.HttpException;
import org.sonar.wsclient.services.PropertyDeleteQuery;
import org.sonar.wsclient.services.PropertyUpdateQuery;
+import util.QaOnly;
import static org.assertj.core.api.Assertions.assertThat;
+@Category(QaOnly.class)
public class ForceAuthenticationTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/user/LocalAuthenticationTest.java b/it/it-tests/src/test/java/it/user/LocalAuthenticationTest.java
index 453f7e0dc39..faf0f3bae29 100644
--- a/it/it-tests/src/test/java/it/user/LocalAuthenticationTest.java
+++ b/it/it-tests/src/test/java/it/user/LocalAuthenticationTest.java
@@ -33,6 +33,7 @@ import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Ignore;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonarqube.ws.WsUserTokens;
import org.sonarqube.ws.client.GetRequest;
import org.sonarqube.ws.client.HttpConnector;
@@ -46,6 +47,7 @@ import org.sonarqube.ws.client.usertoken.GenerateWsRequest;
import org.sonarqube.ws.client.usertoken.RevokeWsRequest;
import org.sonarqube.ws.client.usertoken.SearchWsRequest;
import org.sonarqube.ws.client.usertoken.UserTokensService;
+import util.QaOnly;
import util.selenium.SeleneseTest;
import util.user.UserRule;
@@ -55,6 +57,7 @@ import static util.ItUtils.newAdminWsClient;
import static util.ItUtils.projectDir;
import static util.ItUtils.setServerProperty;
+@Category(QaOnly.class)
public class LocalAuthenticationTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/user/MyAccountPageTest.java b/it/it-tests/src/test/java/it/user/MyAccountPageTest.java
index 6b5316be2ea..02bb82a41ec 100644
--- a/it/it-tests/src/test/java/it/user/MyAccountPageTest.java
+++ b/it/it-tests/src/test/java/it/user/MyAccountPageTest.java
@@ -27,12 +27,15 @@ import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonarqube.ws.client.PostRequest;
import org.sonarqube.ws.client.WsClient;
+import util.QaOnly;
import util.selenium.SeleneseTest;
import static util.ItUtils.newAdminWsClient;
+@Category(QaOnly.class)
public class MyAccountPageTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/user/OAuth2IdentityProviderTest.java b/it/it-tests/src/test/java/it/user/OAuth2IdentityProviderTest.java
index 8c33cc2200e..7ca114f194c 100644
--- a/it/it-tests/src/test/java/it/user/OAuth2IdentityProviderTest.java
+++ b/it/it-tests/src/test/java/it/user/OAuth2IdentityProviderTest.java
@@ -30,9 +30,11 @@ import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.sonarqube.ws.client.GetRequest;
import org.sonarqube.ws.client.WsClient;
import org.sonarqube.ws.client.WsResponse;
+import util.QaOnly;
import util.user.UserRule;
import static org.assertj.core.api.Assertions.assertThat;
@@ -42,6 +44,7 @@ import static util.ItUtils.setServerProperty;
/**
* There's only tests specific to OAuth2 in this class
*/
+@Category(QaOnly.class)
public class OAuth2IdentityProviderTest {
@ClassRule
diff --git a/it/it-tests/src/test/java/it/user/RailsExternalAuthenticationTest.java b/it/it-tests/src/test/java/it/user/RailsExternalAuthenticationTest.java
index d68332e2cb7..dfd42623f11 100644
--- a/it/it-tests/src/test/java/it/user/RailsExternalAuthenticationTest.java
+++ b/it/it-tests/src/test/java/it/user/RailsExternalAuthenticationTest.java
@@ -31,6 +31,7 @@ import org.junit.ClassRule;
import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import org.junit.rules.ExpectedException;
import org.sonar.wsclient.Host;
import org.sonar.wsclient.Sonar;
@@ -42,6 +43,7 @@ import org.sonar.wsclient.services.PropertyUpdateQuery;
import org.sonar.wsclient.services.UserPropertyCreateQuery;
import org.sonar.wsclient.services.UserPropertyQuery;
import org.sonar.wsclient.user.UserParameters;
+import util.QaOnly;
import util.selenium.SeleneseTest;
import static org.assertj.core.api.Assertions.assertThat;
@@ -54,6 +56,7 @@ import static util.ItUtils.setServerProperty;
*
* It starts its own server as it's using a different authentication system
*/
+@Category(QaOnly.class)
public class RailsExternalAuthenticationTest {
@Rule
diff --git a/it/it-tests/src/test/java/util/QaOnly.java b/it/it-tests/src/test/java/util/QaOnly.java
new file mode 100644
index 00000000000..679df934839
--- /dev/null
+++ b/it/it-tests/src/test/java/util/QaOnly.java
@@ -0,0 +1,23 @@
+/*
+ * 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 util;
+
+public interface QaOnly {
+}
diff --git a/it/it-tests/src/test/resources/actionPlan/ActionPlanUiTest/can_create_action_plan_with_date_today.html b/it/it-tests/src/test/resources/actionPlan/ActionPlanUiTest/can_create_action_plan_with_date_today.html
deleted file mode 100644
index d0e999f4aa7..00000000000
--- a/it/it-tests/src/test/resources/actionPlan/ActionPlanUiTest/can_create_action_plan_with_date_today.html
+++ /dev/null
@@ -1,89 +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>can_create_action_plan_with_date_today</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
- <thead>
- <tr>
- <td rowspan="1" colspan="3">can_create_action_plan_with_date_today</td>
- </tr>
- </thead>
- <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>/action_plans/index/sample</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForText</td>
- <td>action-plans</td>
- <td>*No action plan*</td>
- </tr>
- <tr>
- <td>click</td>
- <td>create-link-action_plans</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForVisible</td>
- <td>create-action-plan-form</td>
- <td></td>
- </tr>
- <tr>
- <td>assertText</td>
- <td>css=#create-action-plan-form .modal-head</td>
- <td>*Create Action Plan*</td>
- </tr>
- <tr>
- <td>type</td>
- <td>id=name</td>
- <td>Sprint for 1.1</td>
- </tr>
- <tr>
- <td>store</td>
- <td>javascript{(new Date()).getFullYear()+'-'+((new Date()).getMonth()+1)+'-'+(new Date()).getDate()}</td>
- <td>today</td>
- </tr>
- <tr>
- <td>type</td>
- <td>id=deadline</td>
- <td>${today}</td>
- </tr>
- <tr>
- <td>clickAndWait</td>
- <td>css=input[type=&quot;submit&quot;]</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForText</td>
- <td>action-plans</td>
- <td>*Sprint for 1.1*Edit*Close*Delete*</td>
- </tr>
- </tbody>
-</table>
-</body>
-</html>
diff --git a/it/it-tests/src/test/resources/actionPlan/ActionPlanUiTest/cannot_create_action_plan_with_date_in_past.html b/it/it-tests/src/test/resources/actionPlan/ActionPlanUiTest/cannot_create_action_plan_with_date_in_past.html
deleted file mode 100644
index a9610803fda..00000000000
--- a/it/it-tests/src/test/resources/actionPlan/ActionPlanUiTest/cannot_create_action_plan_with_date_in_past.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>cannot_create_action_plan_with_date_in_past</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
- <thead>
- <tr>
- <td rowspan="1" colspan="3">cannot_create_action_plan_with_date_in_past</td>
- </tr>
- </thead>
- <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>/action_plans/index/sample</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForText</td>
- <td>action-plans</td>
- <td>*No action plan*</td>
- </tr>
- <tr>
- <td>click</td>
- <td>create-link-action_plans</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForVisible</td>
- <td>create-action-plan-form</td>
- <td></td>
- </tr>
- <tr>
- <td>assertText</td>
- <td>css=#create-action-plan-form .modal-head</td>
- <td>*Create Action Plan*</td>
- </tr>
- <tr>
- <td>type</td>
- <td>id=name</td>
- <td>Sprint for 1.1</td>
- </tr>
- <tr>
- <td>type</td>
- <td>id=deadline</td>
- <td>2000-12-31</td>
- </tr>
- <tr>
- <td>click</td>
- <td>css=input[type=&quot;submit&quot;]</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForVisible</td>
- <td>css=.modal-error</td>
- <td>*The dead-line can't be in the past*</td>
- </tr>
- </tbody>
-</table>
-</body>
-</html>
diff --git a/it/it-tests/src/test/resources/actionPlan/ActionPlanUiTest/cannot_create_action_plan_with_invalid_date.html b/it/it-tests/src/test/resources/actionPlan/ActionPlanUiTest/cannot_create_action_plan_with_invalid_date.html
deleted file mode 100644
index 363fb4e00b2..00000000000
--- a/it/it-tests/src/test/resources/actionPlan/ActionPlanUiTest/cannot_create_action_plan_with_invalid_date.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>cannot_create_action_plan_with_invalid_date</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
- <thead>
- <tr>
- <td rowspan="1" colspan="3">cannot_create_action_plan_with_invalid_date</td>
- </tr>
- </thead>
- <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>/action_plans/index/sample</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForText</td>
- <td>action-plans</td>
- <td>*No action plan*</td>
- </tr>
- <tr>
- <td>click</td>
- <td>create-link-action_plans</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForVisible</td>
- <td>create-action-plan-form</td>
- <td></td>
- </tr>
- <tr>
- <td>assertText</td>
- <td>css=#create-action-plan-form .modal-head</td>
- <td>*Create Action Plan*</td>
- </tr>
- <tr>
- <td>type</td>
- <td>id=name</td>
- <td>Sprint for 1.1</td>
- </tr>
- <tr>
- <td>type</td>
- <td>id=deadline</td>
- <td>31/12/2000</td>
- </tr>
- <tr>
- <td>click</td>
- <td>css=input[type=&quot;submit&quot;]</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForVisible</td>
- <td>css=.modal-error</td>
- <td>*date is not valid*</td>
- </tr>
- </tbody>
-</table>
-</body>
-</html>
diff --git a/it/it-tests/src/test/resources/actionPlan/ActionPlanUiTest/cannot_create_two_action_plans_with_same_name.html b/it/it-tests/src/test/resources/actionPlan/ActionPlanUiTest/cannot_create_two_action_plans_with_same_name.html
deleted file mode 100644
index cfd0502794a..00000000000
--- a/it/it-tests/src/test/resources/actionPlan/ActionPlanUiTest/cannot_create_two_action_plans_with_same_name.html
+++ /dev/null
@@ -1,144 +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>cannot_create_two_action_plan_with_same_name</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
- <thead>
- <tr>
- <td rowspan="1" colspan="3">cannot_create_two_action_plan_with_same_name</td>
- </tr>
- </thead>
- <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>/action_plans/index/sample</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForText</td>
- <td>action-plans</td>
- <td>*No action plan*</td>
- </tr>
- <tr>
- <td>click</td>
- <td>create-link-action_plans</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForVisible</td>
- <td>create-action-plan-form</td>
- <td></td>
- </tr>
- <tr>
- <td>assertText</td>
- <td>css=#create-action-plan-form .modal-head</td>
- <td>*Create Action Plan*</td>
- </tr>
- <tr>
- <td>type</td>
- <td>id=name</td>
- <td>Sprint for 1.1</td>
- </tr>
- <tr>
- <td>clickAndWait</td>
- <td>css=input[type=&quot;submit&quot;]</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForText</td>
- <td>action-plans</td>
- <td>*Sprint for 1.1*</td>
- </tr>
- <tr>
- <td>click</td>
- <td>create-link-action_plans</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForVisible</td>
- <td>create-action-plan-form</td>
- <td></td>
- </tr>
- <tr>
- <td>assertText</td>
- <td>css=#create-action-plan-form .modal-head</td>
- <td>*Create Action Plan*</td>
- </tr>
- <tr>
- <td>type</td>
- <td>id=name</td>
- <td>Sprint for 1.1</td>
- </tr>
- <tr>
- <td>click</td>
- <td>css=input[type=&quot;submit&quot;]</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForVisible</td>
- <td>css=.modal-error</td>
- <td>*An action plan with this name already exists in this project.*</td>
- </tr>
- <tr>
- <td>clickAndWait</td>
- <td>css=#create-action-plan-form .modal-foot .action</td>
- <td></td>
- </tr>
- <tr>
- <td>click</td>
- <td>link=Delete</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForVisible</td>
- <td>confirm-form</td>
- <td></td>
- </tr>
- <tr>
- <td>assertText</td>
- <td>confirm-form</td>
- <td>*Delete Action Plan*</td>
- </tr>
- <tr>
- <td>clickAndWait</td>
- <td>confirm-submit</td>
- <td></td>
- </tr>
- <tr>
- <td>assertText</td>
- <td>info</td>
- <td>*Successfully deleted.*</td>
- </tr>
- <tr>
- <td>assertNotText</td>
- <td>action-plans</td>
- <td>*Sprint for 1.1*</td>
- </tr>
- </tbody>
-</table>
-</body>
-</html>
diff --git a/it/it-tests/src/test/resources/actionPlan/ActionPlanUiTest/close_and_reopen_action_plan.html b/it/it-tests/src/test/resources/actionPlan/ActionPlanUiTest/close_and_reopen_action_plan.html
deleted file mode 100644
index 8f490ce445d..00000000000
--- a/it/it-tests/src/test/resources/actionPlan/ActionPlanUiTest/close_and_reopen_action_plan.html
+++ /dev/null
@@ -1,134 +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>close_and_reopen_action_plan</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
- <thead>
- <tr>
- <td rowspan="1" colspan="3">close_and_reopen_action_plan</td>
- </tr>
- </thead>
- <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>/action_plans/index/sample</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForText</td>
- <td>action-plans</td>
- <td>*No action plan*</td>
- </tr>
- <tr>
- <td>click</td>
- <td>create-link-action_plans</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForVisible</td>
- <td>create-action-plan-form</td>
- <td></td>
- </tr>
- <tr>
- <td>assertText</td>
- <td>css=#create-action-plan-form .modal-head</td>
- <td>*Create Action Plan*</td>
- </tr>
- <tr>
- <td>type</td>
- <td>id=name</td>
- <td>Sprint for 1.1</td>
- </tr>
- <tr>
- <td>clickAndWait</td>
- <td>css=input[type=&quot;submit&quot;]</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForText</td>
- <td>action-plans</td>
- <td>*Sprint for 1.1*</td>
- </tr>
- <tr>
- <td>clickAndWait</td>
- <td>link=Close</td>
- <td></td>
- </tr>
- <tr>
- <td>store</td>
- <td>javascript{(new Date()).getDate()+'*'+(new Date()).getFullYear()}</td>
- <td>closureDay</td>
- </tr>
- <tr>
- <td>assertText</td>
- <td>content</td>
- <td>*Action Plans*Closed Action Plans*Sprint for 1.1*${closureDay}*Reopen*</td>
- </tr>
- <tr>
- <td>clickAndWait</td>
- <td>link=Reopen</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForText</td>
- <td>open-action-plans</td>
- <td>*Sprint for 1.1*Close*</td>
- </tr>
- <tr>
- <td>click</td>
- <td>link=Delete</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForVisible</td>
- <td>confirm-form</td>
- <td></td>
- </tr>
- <tr>
- <td>assertText</td>
- <td>css=#confirm-form .modal-head</td>
- <td>*Delete Action Plan*</td>
- </tr>
- <tr>
- <td>clickAndWait</td>
- <td>confirm-submit</td>
- <td></td>
- </tr>
- <tr>
- <td>assertText</td>
- <td>info</td>
- <td>*Successfully deleted.*</td>
- </tr>
- <tr>
- <td>assertText</td>
- <td>open-action-plans</td>
- <td>*No action plan*</td>
- </tr>
- </tbody>
-</table>
-</body>
-</html>
diff --git a/it/it-tests/src/test/resources/actionPlan/ActionPlanUiTest/create_and_delete_action_plan.html b/it/it-tests/src/test/resources/actionPlan/ActionPlanUiTest/create_and_delete_action_plan.html
deleted file mode 100644
index 49ff4406705..00000000000
--- a/it/it-tests/src/test/resources/actionPlan/ActionPlanUiTest/create_and_delete_action_plan.html
+++ /dev/null
@@ -1,119 +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>create_and_delete_action_plan</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
- <thead>
- <tr>
- <td rowspan="1" colspan="3">create_and_delete_action_plan</td>
- </tr>
- </thead>
- <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>/action_plans/index/sample</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForText</td>
- <td>action-plans</td>
- <td>*No action plan*</td>
- </tr>
- <tr>
- <td>click</td>
- <td>create-link-action_plans</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForVisible</td>
- <td>create-action-plan-form</td>
- <td></td>
- </tr>
- <tr>
- <td>assertText</td>
- <td>css=#create-action-plan-form .modal-head</td>
- <td>*Create Action Plan*</td>
- </tr>
- <tr>
- <td>type</td>
- <td>id=name</td>
- <td>Sprint for 1.1</td>
- </tr>
- <tr>
- <td>type</td>
- <td>id=deadline</td>
- <td>2100-12-31</td>
- </tr>
- <tr>
- <td>type</td>
- <td>id=description</td>
- <td>Sprint in the far future</td>
- </tr>
- <tr>
- <td>clickAndWait</td>
- <td>css=input[type=&quot;submit&quot;]</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForText</td>
- <td>id=action-plans</td>
- <td>*Sprint for 1.1*2100*No issues linked to this action plan yet.*Sprint in the far future*</td>
- </tr>
- <tr>
- <td>click</td>
- <td>link=Delete</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForVisible</td>
- <td>confirm-form</td>
- <td></td>
- </tr>
- <tr>
- <td>assertText</td>
- <td>css=#confirm-form .modal-head</td>
- <td>*Delete Action Plan*</td>
- </tr>
- <tr>
- <td>clickAndWait</td>
- <td>confirm-submit</td>
- <td></td>
- </tr>
- <tr>
- <td>assertText</td>
- <td>info</td>
- <td>*Successfully deleted.*</td>
- </tr>
- <tr>
- <td>assertText</td>
- <td>open-action-plans</td>
- <td>*No action plan*</td>
- </tr>
- </tbody>
-</table>
-</body>
-</html>
diff --git a/it/it-tests/src/test/resources/actionPlan/ActionPlanUiTest/edit_action_plan.html b/it/it-tests/src/test/resources/actionPlan/ActionPlanUiTest/edit_action_plan.html
deleted file mode 100644
index b201d86876c..00000000000
--- a/it/it-tests/src/test/resources/actionPlan/ActionPlanUiTest/edit_action_plan.html
+++ /dev/null
@@ -1,159 +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>edit_action_plan</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
- <thead>
- <tr>
- <td rowspan="1" colspan="3">edit_action_plan</td>
- </tr>
- </thead>
- <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>/action_plans/index/sample</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForText</td>
- <td>action-plans</td>
- <td>*No action plan*</td>
- </tr>
- <tr>
- <td>click</td>
- <td>create-link-action_plans</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForVisible</td>
- <td>create-action-plan-form</td>
- <td></td>
- </tr>
- <tr>
- <td>assertText</td>
- <td>css=#create-action-plan-form .modal-head</td>
- <td>*Create Action Plan*</td>
- </tr>
- <tr>
- <td>type</td>
- <td>id=name</td>
- <td>Sprint for 1.1</td>
- </tr>
- <tr>
- <td>type</td>
- <td>id=deadline</td>
- <td>2100-12-31</td>
- </tr>
- <tr>
- <td>type</td>
- <td>id=description</td>
- <td>Sprint in the far future</td>
- </tr>
- <tr>
- <td>clickAndWait</td>
- <td>css=input[type=&quot;submit&quot;]</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForVisible</td>
- <td>link=Edit</td>
- <td></td>
- </tr>
- <tr>
- <td>click</td>
- <td>link=Edit</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForVisible</td>
- <td>edit-action-plan-form</td>
- <td></td>
- </tr>
- <tr>
- <td>assertText</td>
- <td>css=#edit-action-plan-form .modal-head</td>
- <td>*Edit Action Plan: Sprint for 1.1*</td>
- </tr>
- <tr>
- <td>type</td>
- <td>id=name</td>
- <td>Sprint for 1.2</td>
- </tr>
- <tr>
- <td>type</td>
- <td>id=deadline</td>
- <td>2101-12-31</td>
- </tr>
- <tr>
- <td>type</td>
- <td>id=description</td>
- <td>Sprint in the far future, very far</td>
- </tr>
- <tr>
- <td>clickAndWait</td>
- <td>css=input[type=&quot;submit&quot;]</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForText</td>
- <td>action-plans</td>
- <td>*Sprint for 1.2*2101*No issues linked to this action plan yet.*Sprint in the far future, very far*</td>
- </tr>
- <tr>
- <td>click</td>
- <td>link=Delete</td>
- <td></td>
- </tr>
- <tr>
- <td>waitForVisible</td>
- <td>confirm-form</td>
- <td></td>
- </tr>
- <tr>
- <td>assertText</td>
- <td>css=#confirm-form .modal-head</td>
- <td>*Delete Action Plan*</td>
- </tr>
- <tr>
- <td>clickAndWait</td>
- <td>confirm-submit</td>
- <td></td>
- </tr>
- <tr>
- <td>assertText</td>
- <td>info</td>
- <td>*Successfully deleted.*</td>
- </tr>
- <tr>
- <td>assertText</td>
- <td>open-action-plans</td>
- <td>*No action plan*</td>
- </tr>
- </tbody>
-</table>
-</body>
-</html>
diff --git a/server/sonar-web/npm-debug.log.2152527325 b/server/sonar-web/npm-debug.log.2152527325
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/server/sonar-web/npm-debug.log.2152527325
diff --git a/travis.sh b/travis.sh
index ebd8703a4be..3e5e52d618a 100755
--- a/travis.sh
+++ b/travis.sh
@@ -67,7 +67,7 @@ WEB)
IT)
start_xvfb
mvn install -DskipTests=true -Dsource.skip=true -Denforcer.skip=true -B -e -V
- ./run-integration-tests.sh "$IT_CATEGORY" "" -Dmaven.test.redirectTestOutputToFile=false
+ ./run-integration-tests.sh "$IT_CATEGORY" "" -Dmaven.test.redirectTestOutputToFile=false -Dexclude-qa-tests=true
;;
*)