From a0677e1efa4db51e563f74548c5ca54a24a17efc Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Thu, 9 Nov 2017 17:39:52 +0100 Subject: [PATCH] Move helpers to sonar-qa-util --- server/sonar-qa-util/pom.xml | 5 +++ .../org/sonarqube/qa/util}/Elasticsearch.java | 15 +++---- .../org/sonarqube/qa/util}/GroupTester.java | 6 +-- .../org/sonarqube/qa/util}/LogsTailer.java | 8 ++-- .../qa/util}/OrganizationTester.java | 13 +++--- .../org/sonarqube/qa/util}/ProjectTester.java | 11 +++-- .../org/sonarqube/qa/util}/QGateTester.java | 6 +-- .../sonarqube/qa/util}/QProfileTester.java | 15 +++---- .../org/sonarqube/qa/util}/SettingTester.java | 10 ++--- .../java/org/sonarqube/qa/util}/Tester.java | 42 +++++++++---------- .../org/sonarqube/qa/util/TesterSession.java | 4 +- .../org/sonarqube/qa/util}/UserTester.java | 8 ++-- .../util/pageobjects/BackgroundTaskItem.java | 4 +- .../qa/util/pageobjects/LoginPage.java | 2 +- .../qa/util/pageobjects/MarketplacePage.java | 2 +- .../qa/util/pageobjects/Navigation.java | 6 +-- .../util/pageobjects/NotificationsPage.java | 8 ++-- .../util/pageobjects/ProjectActivityPage.java | 2 +- .../qa/util/pageobjects/ProjectCodePage.java | 3 -- .../pageobjects/ProjectDashboardPage.java | 17 ++++---- .../qa/util/pageobjects/ProjectKeyPage.java | 4 +- .../util/pageobjects/SystemInfoPageItem.java | 6 +-- .../util/pageobjects/issues/IssuesPage.java | 22 +++++----- .../util/pageobjects/issues/package-info.java | 23 ++++++++++ .../pageobjects/measures/MeasuresPage.java | 8 ++-- .../pageobjects/measures/package-info.java | 23 ++++++++++ .../pageobjects/organization/MemberItem.java | 2 +- .../pageobjects/organization/MembersPage.java | 4 +- .../organization/package-info.java | 23 ++++++++++ .../pageobjects/projects/ProjectsPage.java | 2 +- .../pageobjects/projects/package-info.java | 23 ++++++++++ .../pageobjects/settings/package-info.java | 23 ++++++++++ .../analysis/AnalysisEsResilienceTest.java | 2 +- .../tests/analysis/RedirectTest.java | 2 +- .../authorisation/PermissionTemplateTest.java | 2 +- .../QualityProfileAdminPermissionTest.java | 5 ++- .../authorisation/SystemPasscodeTest.java | 2 +- .../sonarqube/tests/branch/BranchTest.java | 2 +- .../sonarqube/tests/ce/CeShutdownTest.java | 2 +- .../ce/ReportFailureNotificationTest.java | 2 +- .../sonarqube/tests/dbCleaner/PurgeTest.java | 2 +- .../IssueCreationDatePluginChangedTest.java | 2 +- .../tests/issue/IssueNotificationsTest.java | 2 +- .../sonarqube/tests/issue/IssueTagsTest.java | 2 +- .../issue/OrganizationIssueAssignTest.java | 2 +- .../issue/OrganizationIssuesPageTest.java | 2 +- .../org/sonarqube/tests/lite/LiteTest.java | 2 +- .../measure/ProjectMeasuresPageTest.java | 2 +- .../tests/organization/BillingTest.java | 2 +- .../OrganizationMembershipTest.java | 2 +- .../OrganizationMembershipUiTest.java | 2 +- .../tests/organization/OrganizationTest.java | 4 +- .../PersonalOrganizationTest.java | 2 +- .../RootUserOnOrganizationTest.java | 8 ++-- .../tests/organization/RootUserTest.java | 2 +- .../ProjectAdministrationTest.java | 2 +- .../ProjectBulkDeleteTest.java | 2 +- .../ProjectBulkDeletionPageTest.java | 2 +- .../ProjectDeleteTest.java | 2 +- .../ProjectKeyUpdateTest.java | 2 +- .../ProjectProvisioningTest.java | 2 +- .../ProjectQualityGatePageTest.java | 14 +++---- .../ProjectSearchTest.java | 2 +- .../projectSearch/LeakProjectsPageTest.java | 2 +- .../tests/projectSearch/ProjectsPageTest.java | 2 +- .../projectSearch/SearchProjectsTest.java | 2 +- .../OrganizationQualityGateUiTest.java | 2 +- .../QualityGateForSmallChangesetsTest.java | 2 +- .../QualityGateNotificationTest.java | 2 +- .../QualityGateOnRatingMeasuresTest.java | 2 +- .../tests/qualityGate/QualityGateTest.java | 6 +-- .../tests/qualityGate/QualityGateUiTest.java | 2 +- .../QualityGateWithOrganizationsTest.java | 2 +- .../ActiveRuleEsResilienceTest.java | 2 +- .../BuiltInQualityProfilesTest.java | 8 ++-- .../CustomQualityProfilesTest.java | 16 +++---- .../OrganizationQualityProfilesUiTest.java | 23 +++++----- .../QualityProfilesEditTest.java | 2 +- .../qualityProfile/QualityProfilesUiTest.java | 23 +++++----- .../qualityProfile/QualityProfilesWsTest.java | 2 +- .../tests/rule/RuleEsResilienceTest.java | 2 +- .../sonarqube/tests/rule/RuleTagsTest.java | 2 +- .../sonarqube/tests/rule/RulesPageTest.java | 2 +- .../org/sonarqube/tests/rule/RulesWsTest.java | 2 +- .../tests/serverSystem/ServerSystemTest.java | 9 ++-- .../tests/serverSystem/SystemInfoTest.java | 2 +- .../tests/serverSystem/SystemStateTest.java | 2 +- .../sonarqube/tests/settings/EmailsTest.java | 2 +- .../tests/sourceCode/EncodingTest.java | 5 ++- .../tests/sourceCode/HighlightingTest.java | 15 +++---- .../tests/sourceCode/ProjectCodeTest.java | 2 +- .../tests/startup/StartupIndexationTest.java | 4 +- .../tests/telemetry/TelemetryOptOutTest.java | 2 +- .../sonarqube/tests/test/CoverageTest.java | 2 +- .../tests/test/CoverageTrackingTest.java | 2 +- .../ui/OrganizationUiExtensionsTest.java | 2 +- .../sonarqube/tests/ui/UiExtensionsTest.java | 5 ++- .../tests/user/ForceAuthenticationTest.java | 2 +- .../tests/user/LocalAuthenticationTest.java | 11 ++--- .../tests/user/MyAccountPageTest.java | 2 +- .../user/OAuth2IdentityProviderTest.java | 11 ++--- .../sonarqube/tests/user/OnboardingTest.java | 2 +- .../OrganizationIdentityProviderTest.java | 2 +- .../tests/user/RealmAuthenticationTest.java | 2 +- .../tests/user/UserEsResilienceTest.java | 2 +- tests/src/test/java/util/ItUtils.java | 11 ++--- .../src/test/java/util/selenium/Selenese.java | 4 +- .../test/java/util/user/GroupManagement.java | 3 +- tests/src/test/java/util/user/Groups.java | 3 +- tests/src/test/java/util/user/UserRule.java | 3 +- 110 files changed, 390 insertions(+), 265 deletions(-) rename {tests/src/test/java/org/sonarqube/tests => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/Elasticsearch.java (84%) rename {tests/src/test/java/org/sonarqube/tests => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/GroupTester.java (97%) rename {tests/src/test/java/org/sonarqube/tests => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/LogsTailer.java (97%) rename {tests/src/test/java/org/sonarqube/tests => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/OrganizationTester.java (93%) rename {tests/src/test/java/org/sonarqube/tests => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/ProjectTester.java (92%) rename {tests/src/test/java/org/sonarqube/tests => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/QGateTester.java (96%) rename {tests/src/test/java/org/sonarqube/tests => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/QProfileTester.java (89%) rename {tests/src/test/java/org/sonarqube/tests => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/SettingTester.java (94%) rename {tests/src/test/java/org/sonarqube/tests => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/Tester.java (85%) rename tests/src/test/java/org/sonarqube/tests/Session.java => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/TesterSession.java (94%) rename {tests/src/test/java/org/sonarqube/tests => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/UserTester.java (93%) create mode 100644 server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/issues/package-info.java create mode 100644 server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/measures/package-info.java create mode 100644 server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/organization/package-info.java create mode 100644 server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/projects/package-info.java create mode 100644 server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/settings/package-info.java diff --git a/server/sonar-qa-util/pom.xml b/server/sonar-qa-util/pom.xml index a9534332a89..4f5911163bd 100644 --- a/server/sonar-qa-util/pom.xml +++ b/server/sonar-qa-util/pom.xml @@ -15,6 +15,11 @@ + + org.sonarsource.sonarqube + sonar-ws + ${project.version} + com.codeborne selenide diff --git a/tests/src/test/java/org/sonarqube/tests/Elasticsearch.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/Elasticsearch.java similarity index 84% rename from tests/src/test/java/org/sonarqube/tests/Elasticsearch.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/Elasticsearch.java index 4bc4620799a..434044cab41 100644 --- a/tests/src/test/java/org/sonarqube/tests/Elasticsearch.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/Elasticsearch.java @@ -17,8 +17,9 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonarqube.tests; +package org.sonarqube.qa.util; +import java.io.IOException; import java.net.InetAddress; import okhttp3.MediaType; import okhttp3.OkHttpClient; @@ -43,7 +44,7 @@ public class Elasticsearch { /** * Forbid indexing requests on the specified index. Index becomes read-only. */ - public void lockWrites(String index) throws Exception { + public void lockWrites(String index) throws IOException { putIndexSetting(httpPort, index, "blocks.write", "true"); } @@ -51,19 +52,19 @@ public class Elasticsearch { * Enable indexing requests on the specified index. * @see #lockWrites(String) */ - public void unlockWrites(String index) throws Exception { + public void unlockWrites(String index) throws IOException { putIndexSetting(httpPort, index, "blocks.write", "false"); } - public void makeYellow() throws Exception { + public void makeYellow() throws IOException { putIndexSetting(httpPort, "issues", "number_of_replicas", "5"); } - public void makeGreen() throws Exception { + public void makeGreen() throws IOException { putIndexSetting(httpPort, "issues", "number_of_replicas", "0"); } - private void putIndexSetting(int searchHttpPort, String index, String key, String value) throws Exception { + private static void putIndexSetting(int searchHttpPort, String index, String key, String value) throws IOException { Request.Builder request = new Request.Builder() .url(baseUrl(searchHttpPort) + index + "/_settings") .put(RequestBody.create(MediaType.parse("application/json"), "{" + @@ -76,7 +77,7 @@ public class Elasticsearch { assertThat(response.isSuccessful()).isTrue(); } - private String baseUrl(int searchHttpPort) { + private static String baseUrl(int searchHttpPort) { return "http://" + InetAddress.getLoopbackAddress().getHostAddress() + ":" + searchHttpPort + "/"; } } diff --git a/tests/src/test/java/org/sonarqube/tests/GroupTester.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/GroupTester.java similarity index 97% rename from tests/src/test/java/org/sonarqube/tests/GroupTester.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/GroupTester.java index 14568da774b..8b395c90518 100644 --- a/tests/src/test/java/org/sonarqube/tests/GroupTester.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/GroupTester.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonarqube.tests; +package org.sonarqube.qa.util; import java.util.List; import java.util.Set; @@ -40,9 +40,9 @@ public class GroupTester { private static final AtomicInteger ID_GENERATOR = new AtomicInteger(); - private final Session session; + private final TesterSession session; - GroupTester(Session session) { + GroupTester(TesterSession session) { this.session = session; } diff --git a/tests/src/test/java/org/sonarqube/tests/LogsTailer.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/LogsTailer.java similarity index 97% rename from tests/src/test/java/org/sonarqube/tests/LogsTailer.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/LogsTailer.java index eb093b1c345..a172b56a649 100644 --- a/tests/src/test/java/org/sonarqube/tests/LogsTailer.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/LogsTailer.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonarqube.tests; +package org.sonarqube.qa.util; import java.io.File; import java.util.ArrayList; @@ -134,9 +134,9 @@ public class LogsTailer implements AutoCloseable { private Watch(String expectedText) { this.expectedText = requireNonNull(expectedText); - this.consumer = log -> { - if (log.contains(this.expectedText)) { - this.log = log; + this.consumer = l -> { + if (l.contains(this.expectedText)) { + this.log = l; foundSignal.countDown(); } }; diff --git a/tests/src/test/java/org/sonarqube/tests/OrganizationTester.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/OrganizationTester.java similarity index 93% rename from tests/src/test/java/org/sonarqube/tests/OrganizationTester.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/OrganizationTester.java index 5550cd527c5..a9d098ee261 100644 --- a/tests/src/test/java/org/sonarqube/tests/OrganizationTester.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/OrganizationTester.java @@ -17,12 +17,13 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonarqube.tests; +package org.sonarqube.qa.util; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Consumer; import javax.annotation.Nullable; +import org.assertj.core.api.Assertions; import org.sonarqube.ws.Organizations; import org.sonarqube.ws.WsUsers; import org.sonarqube.ws.client.HttpException; @@ -40,9 +41,9 @@ public class OrganizationTester { private static final AtomicInteger ID_GENERATOR = new AtomicInteger(); - private final Session session; + private final TesterSession session; - OrganizationTester(Session session) { + OrganizationTester(TesterSession session) { this.session = session; } @@ -84,7 +85,7 @@ public class OrganizationTester { public OrganizationTester assertThatOrganizationDoesNotExist(String organizationKey) { SearchWsRequest request = new SearchWsRequest.Builder().setOrganizations(organizationKey).build(); Organizations.SearchWsResponse searchWsResponse = service().search(request); - assertThat(searchWsResponse.getOrganizationsList()).isEmpty(); + Assertions.assertThat(searchWsResponse.getOrganizationsList()).isEmpty(); return this; } @@ -121,7 +122,7 @@ public class OrganizationTester { .setSelected("selected") .setOrganization(organization != null ? organization.getKey() : null)) .getUsersList(); - assertThat(users).hasSize(isMember ? 1 : 0); + Assertions.assertThat(users).hasSize(isMember ? 1 : 0); } private void verifyMembersGroupMembership(String userLogin, @Nullable Organizations.Organization organization, boolean isMember) { @@ -132,7 +133,7 @@ public class OrganizationTester { .setSelected("selected") .build()) .getGroupsList(); - assertThat(groups).hasSize(isMember ? 1 : 0); + Assertions.assertThat(groups).hasSize(isMember ? 1 : 0); } public OrganizationService service() { diff --git a/tests/src/test/java/org/sonarqube/tests/ProjectTester.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/ProjectTester.java similarity index 92% rename from tests/src/test/java/org/sonarqube/tests/ProjectTester.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/ProjectTester.java index 781500aa8c0..6b63e850ee2 100644 --- a/tests/src/test/java/org/sonarqube/tests/ProjectTester.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/ProjectTester.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonarqube.tests; +package org.sonarqube.qa.util; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Consumer; @@ -36,17 +36,16 @@ public class ProjectTester { private static final AtomicInteger ID_GENERATOR = new AtomicInteger(); - private final Session session; + private final TesterSession session; - ProjectTester(Session session) { + ProjectTester(TesterSession session) { this.session = session; } void deleteAll() { ProjectsService service = session.wsClient().projects(); - service.search(SearchWsRequest.builder().setQualifiers(singletonList("TRK")).build()).getComponentsList().forEach(p -> { - service.delete(DeleteRequest.builder().setKey(p.getKey()).build()); - }); + service.search(SearchWsRequest.builder().setQualifiers(singletonList("TRK")).build()).getComponentsList().forEach(p -> + service.delete(DeleteRequest.builder().setKey(p.getKey()).build())); } @SafeVarargs diff --git a/tests/src/test/java/org/sonarqube/tests/QGateTester.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/QGateTester.java similarity index 96% rename from tests/src/test/java/org/sonarqube/tests/QGateTester.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/QGateTester.java index 8bf99d34828..e0a1f8bae53 100644 --- a/tests/src/test/java/org/sonarqube/tests/QGateTester.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/QGateTester.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonarqube.tests; +package org.sonarqube.qa.util; import com.google.gson.Gson; import com.google.gson.annotations.SerializedName; @@ -34,9 +34,9 @@ import org.sonarqube.ws.client.qualitygate.SelectWsRequest; public class QGateTester { private static final AtomicInteger ID_GENERATOR = new AtomicInteger(); - private final Session session; + private final TesterSession session; - QGateTester(Session session) { + QGateTester(TesterSession session) { this.session = session; } diff --git a/tests/src/test/java/org/sonarqube/tests/QProfileTester.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/QProfileTester.java similarity index 89% rename from tests/src/test/java/org/sonarqube/tests/QProfileTester.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/QProfileTester.java index 29656d65c95..2c80d28fe2c 100644 --- a/tests/src/test/java/org/sonarqube/tests/QProfileTester.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/QProfileTester.java @@ -17,11 +17,12 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonarqube.tests; +package org.sonarqube.qa.util; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Consumer; +import org.assertj.core.api.Assertions; import org.sonarqube.ws.Common; import org.sonarqube.ws.Organizations.Organization; import org.sonarqube.ws.QualityProfiles.CreateWsResponse.QualityProfile; @@ -42,9 +43,9 @@ import static org.assertj.core.api.Assertions.assertThat; public class QProfileTester { private static final AtomicInteger ID_GENERATOR = new AtomicInteger(); - private final Session session; + private final TesterSession session; - QProfileTester(Session session) { + QProfileTester(TesterSession session) { this.session = session; } @@ -104,12 +105,12 @@ public class QProfileTester { Rules.SearchResponse response = session.wsClient().rules().search(request); // assume that expectedActiveRules fits in first page of results - assertThat(response.getRulesCount()).isEqualTo(expectedActiveRules); - assertThat(response.getTotal()).isEqualTo(expectedActiveRules); - assertThat(response.getActives().getActives()).as(response.toString()).hasSize(expectedActiveRules); + Assertions.assertThat(response.getRulesCount()).isEqualTo(expectedActiveRules); + Assertions.assertThat(response.getTotal()).isEqualTo(expectedActiveRules); + Assertions.assertThat(response.getActives().getActives()).as(response.toString()).hasSize(expectedActiveRules); // verify facets - assertThat(response.getFacets().getFacetsCount()).isEqualTo(facetIds.size()); + Assertions.assertThat(response.getFacets().getFacetsCount()).isEqualTo(facetIds.size()); response.getFacets().getFacetsList().forEach(facet -> { long total = facet.getValuesList().stream() .mapToLong(Common.FacetValue::getCount) diff --git a/tests/src/test/java/org/sonarqube/tests/SettingTester.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/SettingTester.java similarity index 94% rename from tests/src/test/java/org/sonarqube/tests/SettingTester.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/SettingTester.java index b05dc16dac4..00c08c10480 100644 --- a/tests/src/test/java/org/sonarqube/tests/SettingTester.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/SettingTester.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonarqube.tests; +package org.sonarqube.qa.util; import com.google.common.collect.ImmutableSet; import java.util.List; @@ -31,16 +31,14 @@ import org.sonarqube.ws.client.setting.ResetRequest; import org.sonarqube.ws.client.setting.SetRequest; import org.sonarqube.ws.client.setting.SettingsService; -import static org.sonarqube.ws.Settings.Type.LICENSE; - public class SettingTester { private static final Set EMAIL_SETTINGS = ImmutableSet.of("email.smtp_host.secured", "email.smtp_port.secured", "email.smtp_secure_connection.secured", "email.smtp_username.secured", "email.smtp_password.secured", "email.from", "email.prefix"); - private final Session session; + private final TesterSession session; - SettingTester(Session session) { + SettingTester(TesterSession session) { this.session = session; } @@ -52,7 +50,7 @@ public class SettingTester { List settingKeys = Stream.concat( session.wsClient().settings().listDefinitions(ListDefinitionsRequest.builder().build()).getDefinitionsList() .stream() - .filter(def -> def.getType() != LICENSE) + .filter(def -> def.getType() != Settings.Type.LICENSE) .map(Settings.Definition::getKey), EMAIL_SETTINGS.stream()) .collect(Collectors.toList()); diff --git a/tests/src/test/java/org/sonarqube/tests/Tester.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/Tester.java similarity index 85% rename from tests/src/test/java/org/sonarqube/tests/Tester.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/Tester.java index 8f5e58ffbbc..50412d8bc50 100644 --- a/tests/src/test/java/org/sonarqube/tests/Tester.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/Tester.java @@ -17,18 +17,19 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonarqube.tests; +package org.sonarqube.qa.util; import com.sonar.orchestrator.Orchestrator; +import com.sonar.orchestrator.container.Server; import javax.annotation.Nullable; import org.apache.commons.lang.StringUtils; import org.junit.rules.ExternalResource; import org.sonarqube.qa.util.pageobjects.Navigation; +import org.sonarqube.ws.client.HttpConnector; import org.sonarqube.ws.client.WsClient; -import util.selenium.Selenese; +import org.sonarqube.ws.client.WsClientFactories; import static java.util.Objects.requireNonNull; -import static util.ItUtils.newUserWsClient; /** * This JUnit rule wraps an {@link Orchestrator} instance and provides : @@ -45,7 +46,7 @@ import static util.ItUtils.newUserWsClient; * {@code @ClassRule} must be used through a {@link org.junit.rules.RuleChain} * around {@link Orchestrator}. */ -public class Tester extends ExternalResource implements Session { +public class Tester extends ExternalResource implements TesterSession { private final Orchestrator orchestrator; @@ -55,7 +56,7 @@ public class Tester extends ExternalResource implements Session { // initialized in #before() private boolean beforeCalled = false; - private Session rootSession; + private TesterSession rootSession; public Tester(Orchestrator orchestrator) { this.orchestrator = orchestrator; @@ -73,7 +74,7 @@ public class Tester extends ExternalResource implements Session { /** * Enables Elasticsearch debugging, see {@link #elasticsearch()}. - * + *

* The property "sonar.search.httpPort" must be defined before * starting SonarQube server. */ @@ -86,7 +87,7 @@ public class Tester extends ExternalResource implements Session { @Override public void before() { verifyNotStarted(); - rootSession = new SessionImpl(orchestrator, "admin", "admin"); + rootSession = new TesterSessionImpl(orchestrator, "admin", "admin"); if (!disableOrganizations) { organizations().enableSupport(); @@ -106,17 +107,17 @@ public class Tester extends ExternalResource implements Session { qGates().deleteAll(); } - public Session asAnonymous() { + public TesterSession asAnonymous() { return as(null, null); } - public Session as(String login) { + public TesterSession as(String login) { return as(login, login); } - public Session as(String login, String password) { + public TesterSession as(String login, String password) { verifyStarted(); - return new SessionImpl(orchestrator, login, password); + return new TesterSessionImpl(orchestrator, login, password); } public Elasticsearch elasticsearch() { @@ -131,15 +132,6 @@ public class Tester extends ExternalResource implements Session { return Navigation.create(orchestrator); } - /** - * @deprecated use Selenide tests with {@link #openBrowser()} - */ - @Deprecated - public Tester runHtmlTests(String... htmlTests) { - Selenese.runSelenese(orchestrator, htmlTests); - return this; - } - private void verifyNotStarted() { if (beforeCalled) { throw new IllegalStateException("Orchestrator should not be already started"); @@ -196,11 +188,15 @@ public class Tester extends ExternalResource implements Session { return rootSession.qGates(); } - private static class SessionImpl implements Session { + private static class TesterSessionImpl implements TesterSession { private final WsClient client; - private SessionImpl(Orchestrator orchestrator, @Nullable String login, @Nullable String password) { - this.client = newUserWsClient(orchestrator, login, password); + private TesterSessionImpl(Orchestrator orchestrator, @Nullable String login, @Nullable String password) { + Server server = orchestrator.getServer(); + this.client = WsClientFactories.getDefault().newClient(HttpConnector.newBuilder() + .url(server.getUrl()) + .credentials(login, password) + .build()); } @Override diff --git a/tests/src/test/java/org/sonarqube/tests/Session.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/TesterSession.java similarity index 94% rename from tests/src/test/java/org/sonarqube/tests/Session.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/TesterSession.java index 23b0b652d4e..6c2673abcb2 100644 --- a/tests/src/test/java/org/sonarqube/tests/Session.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/TesterSession.java @@ -17,11 +17,11 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonarqube.tests; +package org.sonarqube.qa.util; import org.sonarqube.ws.client.WsClient; -public interface Session { +public interface TesterSession { WsClient wsClient(); diff --git a/tests/src/test/java/org/sonarqube/tests/UserTester.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/UserTester.java similarity index 93% rename from tests/src/test/java/org/sonarqube/tests/UserTester.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/UserTester.java index 8dc964fa782..5f4f4a943d0 100644 --- a/tests/src/test/java/org/sonarqube/tests/UserTester.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/UserTester.java @@ -17,7 +17,7 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonarqube.tests; +package org.sonarqube.qa.util; import java.util.List; import java.util.Optional; @@ -38,9 +38,9 @@ public class UserTester { private static final AtomicInteger ID_GENERATOR = new AtomicInteger(); - private final Session session; + private final TesterSession session; - UserTester(Session session) { + UserTester(TesterSession session) { this.session = session; } @@ -71,7 +71,7 @@ public class UserTester { public final User generateAdministrator(Consumer... populators) { User user = generate(populators); session.wsClient().permissions().addUser(new org.sonarqube.ws.client.permission.AddUserWsRequest().setLogin(user.getLogin()).setPermission("admin")); - session.wsClient().userGroups().addUser(org.sonarqube.ws.client.usergroup.AddUserWsRequest.builder().setLogin(user.getLogin()).setName("sonar-administrators").build()); + session.wsClient().userGroups().addUser(AddUserWsRequest.builder().setLogin(user.getLogin()).setName("sonar-administrators").build()); return user; } diff --git a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/BackgroundTaskItem.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/BackgroundTaskItem.java index 0c86d3293b1..d5e09d103a4 100644 --- a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/BackgroundTaskItem.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/BackgroundTaskItem.java @@ -48,7 +48,7 @@ public class BackgroundTaskItem { } public BackgroundTaskItem assertScannerContextContains(String text) { - Selenide.$(".js-task-scanner-context").should(Condition.hasText(text)); + Selenide.$(".js-task-scanner-context").should(Condition.text(text)); return this; } @@ -59,7 +59,7 @@ public class BackgroundTaskItem { } public BackgroundTaskItem assertErrorStacktraceContains(String text) { - Selenide.$(".js-task-stacktrace").should(Condition.hasText(text)); + Selenide.$(".js-task-stacktrace").should(Condition.text(text)); return this; } } diff --git a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/LoginPage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/LoginPage.java index b210e01fb2e..8fb508c4ed3 100644 --- a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/LoginPage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/LoginPage.java @@ -54,7 +54,7 @@ public class LoginPage { return Selenide.$(".process-spinner-failed"); } - private T submitCredentials(String login, String password, Class expectedResultPage) { + private static T submitCredentials(String login, String password, Class expectedResultPage) { Selenide.$("#login").val(login); Selenide.$("#password").val(password); Selenide.$(By.name("commit")).click(); diff --git a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/MarketplacePage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/MarketplacePage.java index 908bad3b3e9..dac1b28ca8c 100644 --- a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/MarketplacePage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/MarketplacePage.java @@ -54,7 +54,7 @@ public class MarketplacePage { return this; } - private SelenideElement getPlugin(String name) { + private static SelenideElement getPlugin(String name) { return Selenide.$$(".js-plugin-name").findBy(Condition.text(name)).should(Condition.exist).parent().parent().parent(); } } diff --git a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/Navigation.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/Navigation.java index 67cea197772..fbfb8862fe7 100644 --- a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/Navigation.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/Navigation.java @@ -164,7 +164,7 @@ public class Navigation { } public SettingsPage openSettings(@Nullable String projectKey) throws UnsupportedEncodingException { - String url = projectKey != null ? "/project/settings?id=" + URLEncoder.encode(projectKey, "UTF-8") : "/settings"; + String url = projectKey != null ? ("/project/settings?id=" + URLEncoder.encode(projectKey, "UTF-8")) : "/settings"; return open(url, SettingsPage.class); } @@ -249,11 +249,11 @@ public class Navigation { return Selenide.$("#error"); } - private SelenideElement logInLink() { + private static SelenideElement logInLink() { return Selenide.$(By.linkText("Log in")); } - private SelenideElement loggedInDropdown() { + private static SelenideElement loggedInDropdown() { return Selenide.$(".js-user-authenticated"); } diff --git a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/NotificationsPage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/NotificationsPage.java index bd4911a94c6..06939de713c 100644 --- a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/NotificationsPage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/NotificationsPage.java @@ -24,7 +24,7 @@ import com.codeborne.selenide.Selenide; public class NotificationsPage extends Navigation { - private final String EMAIL = "EmailNotificationChannel"; + private static final String EMAIL = "EmailNotificationChannel"; public NotificationsPage() { Selenide.$("#account-page").shouldHave(Condition.text("Overall notifications")); @@ -90,11 +90,11 @@ public class NotificationsPage extends Navigation { return this; } - private String globalCheckboxSelector(String type, String channel) { + private static String globalCheckboxSelector(String type, String channel) { return "#global-notification-" + type + "-" + channel; } - private String projectCheckboxSelector(String project, String type, String channel) { + private static String projectCheckboxSelector(String project, String type, String channel) { return "#project-notification-" + project + "-" + type + "-" + channel; } @@ -112,7 +112,7 @@ public class NotificationsPage extends Navigation { return this; } - private void toggleCheckbox(String selector) { + private static void toggleCheckbox(String selector) { Selenide.$(selector).click(); } } diff --git a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectActivityPage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectActivityPage.java index ad8206cd47d..05a7fbc6bfb 100644 --- a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectActivityPage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectActivityPage.java @@ -54,7 +54,7 @@ public class ProjectActivityPage { Selenide.$("#project-activity") .find(".project-activity-day[data-day=\"" + day + "\"]") .find(".project-activity-analysis") - .should(Condition.hasText(text)); + .should(Condition.text(text)); return this; } } diff --git a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectCodePage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectCodePage.java index 42bb86748a2..dfdd972427a 100644 --- a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectCodePage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectCodePage.java @@ -24,9 +24,6 @@ import com.codeborne.selenide.Selenide; public class ProjectCodePage { - public ProjectCodePage() { - } - public ProjectCodePage openFirstComponent() { Selenide.$$(".code-name-cell a").first().click(); return this; diff --git a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectDashboardPage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectDashboardPage.java index 4db286489dd..c30abb98901 100644 --- a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectDashboardPage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectDashboardPage.java @@ -49,11 +49,10 @@ public class ProjectDashboardPage { public SelenideElement getOverviewMeasure(String measure) { ElementsCollection measures = Selenide.$$(".overview-domain-measure"); - SelenideElement element = measures.find(Condition.text(measure)).shouldBe(Condition.visible); - return element; + return measures.find(Condition.text(measure)).shouldBe(Condition.visible); } - private SelenideElement getTagsMeta() { + private static SelenideElement getTagsMeta() { SelenideElement element = Selenide.$(".overview-meta-tags"); element.shouldBe(Condition.visible); return element; @@ -61,38 +60,38 @@ public class ProjectDashboardPage { public ProjectDashboardPage shouldHaveTags(String... tags) { String tagsList = String.join(", ", Arrays.asList(tags)); - this.getTagsMeta().$(".tags-list > span").should(Condition.hasText(tagsList)); + getTagsMeta().$(".tags-list > span").should(Condition.text(tagsList)); return this; } public ProjectDashboardPage shouldNotBeEditable() { - SelenideElement tagsElem = this.getTagsMeta(); + SelenideElement tagsElem = getTagsMeta(); tagsElem.$("button").shouldNot(Condition.exist); tagsElem.$("div.multi-select").shouldNot(Condition.exist); return this; } public ProjectDashboardPage shouldBeEditable() { - SelenideElement tagsElem = this.getTagsMeta(); + SelenideElement tagsElem = getTagsMeta(); tagsElem.$("button").shouldBe(Condition.visible); return this; } public ProjectDashboardPage openTagEditor() { - SelenideElement tagsElem = this.getTagsMeta(); + SelenideElement tagsElem = getTagsMeta(); tagsElem.$("button").shouldBe(Condition.visible).click(); tagsElem.$("div.multi-select").shouldBe(Condition.visible); return this; } public SelenideElement getTagAtIdx(Integer idx) { - SelenideElement tagsElem = this.getTagsMeta(); + SelenideElement tagsElem = getTagsMeta(); tagsElem.$("div.multi-select").shouldBe(Condition.visible); return tagsElem.$$("ul.menu a").get(idx); } public ProjectDashboardPage sendKeysToTagsInput(CharSequence... charSequences) { - SelenideElement tagsInput = this.getTagsMeta().find("input"); + SelenideElement tagsInput = getTagsMeta().find("input"); tagsInput.sendKeys(charSequences); return this; } diff --git a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectKeyPage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectKeyPage.java index 5a3e5ec678b..cfc2e8137ab 100644 --- a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectKeyPage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectKeyPage.java @@ -77,8 +77,8 @@ public class ProjectKeyPage { public ProjectKeyPage assertBulkChangeSimulationResult(String oldKey, String newKey) { SelenideElement row = Selenide.$("#bulk-update-results").$("[data-key=\"" + oldKey + "\"]"); - row.$(".js-old-key").should(Condition.hasText(oldKey)); - row.$(".js-new-key").should(Condition.hasText(newKey)); + row.$(".js-old-key").should(Condition.text(oldKey)); + row.$(".js-new-key").should(Condition.text(newKey)); return this; } diff --git a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/SystemInfoPageItem.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/SystemInfoPageItem.java index 55d9c84092e..c047a7be28c 100644 --- a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/SystemInfoPageItem.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/SystemInfoPageItem.java @@ -26,8 +26,8 @@ public class SystemInfoPageItem { private final SelenideElement elt; public SystemInfoPageItem(SelenideElement elt) { - this.elt = elt; - } + this.elt = elt; + } public SystemInfoPageItem shouldHaveHealth() { elt.$(".system-info-health-info .status-indicator").should(Condition.exist); @@ -72,7 +72,7 @@ public class SystemInfoPageItem { } public SystemInfoPageItem ensureOpen() { - if(!isOpen()) { + if (!isOpen()) { elt.click(); elt.$(".boxed-group-inner").should(Condition.exist); } diff --git a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/issues/IssuesPage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/issues/IssuesPage.java index 92755921f37..8da8149bcf6 100644 --- a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/issues/IssuesPage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/issues/IssuesPage.java @@ -32,14 +32,6 @@ public class IssuesPage { Selenide.$(".issues").should(Condition.exist); } - private ElementsCollection getIssuesElements() { - return Selenide.$$(".issues .issue"); - } - - private ElementsCollection getIssuesPathComponents() { - return Selenide.$$(".issues-workspace-list-component"); - } - public List getIssues() { return getIssuesElements() .stream() @@ -48,7 +40,7 @@ public class IssuesPage { } public IssuesPage issuesCount(Integer count) { - this.getIssuesElements().shouldHaveSize(count); + getIssuesElements().shouldHaveSize(count); return this; } @@ -58,12 +50,12 @@ public class IssuesPage { } public IssuesPage componentsShouldContain(String path) { - this.getIssuesPathComponents().forEach(element -> element.shouldHave(Condition.text(path))); + getIssuesPathComponents().forEach(element -> element.shouldHave(Condition.text(path))); return this; } public IssuesPage componentsShouldNotContain(String path) { - this.getIssuesPathComponents().forEach(element -> element.shouldNotHave(Condition.text(path))); + getIssuesPathComponents().forEach(element -> element.shouldNotHave(Condition.text(path))); return this; } @@ -79,4 +71,12 @@ public class IssuesPage { Selenide.$("#issues-bulk-change-assignee .Select-input input").pressEscape(); return this; } + + private static ElementsCollection getIssuesElements() { + return Selenide.$$(".issues .issue"); + } + + private static ElementsCollection getIssuesPathComponents() { + return Selenide.$$(".issues-workspace-list-component"); + } } diff --git a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/issues/package-info.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/issues/package-info.java new file mode 100644 index 00000000000..a035971ae1e --- /dev/null +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/issues/package-info.java @@ -0,0 +1,23 @@ +/* + * SonarQube + * Copyright (C) 2009-2017 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +@ParametersAreNonnullByDefault +package org.sonarqube.qa.util.pageobjects.issues; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/measures/MeasuresPage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/measures/MeasuresPage.java index de052a403de..f3cd21aac1b 100644 --- a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/measures/MeasuresPage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/measures/MeasuresPage.java @@ -37,14 +37,14 @@ public class MeasuresPage { } public MeasuresPage measureHasValue(String measure, Integer value) { - SelenideElement sidebar = this.getSideBar(); + SelenideElement sidebar = getSideBar(); sidebar.$("#measure-" + measure + "-name").should(Condition.exist); sidebar.$("#measure-" + measure + "-value").should(Condition.exist).shouldHave(Condition.text(value.toString())); return this; } public MeasuresPage measureHasLeak(String measure, Integer value) { - SelenideElement sidebar = this.getSideBar(); + SelenideElement sidebar = getSideBar(); sidebar.$("#measure-" + measure + "-name").should(Condition.exist); sidebar.$("#measure-" + measure + "-leak").should(Condition.exist).shouldHave(Condition.text(value.toString())); return this; @@ -83,7 +83,7 @@ public class MeasuresPage { } public MeasureContent openMeasureContent(String measure) { - SelenideElement sidebar = this.getSideBar(); + SelenideElement sidebar = getSideBar(); SelenideElement facetItem = sidebar.$("#measure-" + measure + "-name"); facetItem.click(); MeasureContent content = new MeasureContent(Selenide.$("#component-measures .measure-details-content").should(Condition.exist)); @@ -91,7 +91,7 @@ public class MeasuresPage { return content; } - private SelenideElement getSideBar() { + private static SelenideElement getSideBar() { return Selenide.$("#component-measures .layout-page-side").should(Condition.exist); } } diff --git a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/measures/package-info.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/measures/package-info.java new file mode 100644 index 00000000000..64041b2e8d1 --- /dev/null +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/measures/package-info.java @@ -0,0 +1,23 @@ +/* + * SonarQube + * Copyright (C) 2009-2017 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +@ParametersAreNonnullByDefault +package org.sonarqube.qa.util.pageobjects.measures; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/organization/MemberItem.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/organization/MemberItem.java index fd02dfb1f11..e25ff4a441c 100644 --- a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/organization/MemberItem.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/organization/MemberItem.java @@ -85,7 +85,7 @@ public class MemberItem { return this; } - private SelenideElement getModal(String title) { + private static SelenideElement getModal(String title) { Selenide.$(".modal-head").should(Condition.exist).shouldHave(Condition.text(title)); SelenideElement form = Selenide.$(".ReactModalPortal form"); form.should(Condition.exist); diff --git a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/organization/MembersPage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/organization/MembersPage.java index 21816aea1c1..d2b560f6db4 100644 --- a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/organization/MembersPage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/organization/MembersPage.java @@ -63,7 +63,7 @@ public class MembersPage { this.canAddMember(); Selenide.$(".page-actions button").click(); - SelenideElement modal = this.getModal("Add user"); + SelenideElement modal = getModal("Add user"); SelenideElement input = modal.$(".Select-input input"); input.val(login); modal.$("div.Select-option.is-focused").should(Condition.exist); @@ -72,7 +72,7 @@ public class MembersPage { return this; } - private SelenideElement getModal(String title) { + private static SelenideElement getModal(String title) { Selenide.$(".modal-head").should(Condition.exist).shouldHave(Condition.text(title)); SelenideElement form = Selenide.$(".ReactModalPortal form"); form.should(Condition.exist); diff --git a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/organization/package-info.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/organization/package-info.java new file mode 100644 index 00000000000..3928f0134f3 --- /dev/null +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/organization/package-info.java @@ -0,0 +1,23 @@ +/* + * SonarQube + * Copyright (C) 2009-2017 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +@ParametersAreNonnullByDefault +package org.sonarqube.qa.util.pageobjects.organization; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/projects/ProjectsPage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/projects/ProjectsPage.java index cc55ce2d619..a006d627084 100644 --- a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/projects/ProjectsPage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/projects/ProjectsPage.java @@ -110,7 +110,7 @@ public class ProjectsPage { return this; } - private SelenideElement getOpenTopBar() { + private static SelenideElement getOpenTopBar() { return Selenide.$(".projects-topbar-items").should(Condition.exist); } } diff --git a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/projects/package-info.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/projects/package-info.java new file mode 100644 index 00000000000..20aa8b7ca96 --- /dev/null +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/projects/package-info.java @@ -0,0 +1,23 @@ +/* + * SonarQube + * Copyright (C) 2009-2017 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +@ParametersAreNonnullByDefault +package org.sonarqube.qa.util.pageobjects.projects; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/settings/package-info.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/settings/package-info.java new file mode 100644 index 00000000000..f60e348b614 --- /dev/null +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/settings/package-info.java @@ -0,0 +1,23 @@ +/* + * SonarQube + * Copyright (C) 2009-2017 SonarSource SA + * mailto:info AT sonarsource DOT com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +@ParametersAreNonnullByDefault +package org.sonarqube.qa.util.pageobjects.settings; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/tests/src/test/java/org/sonarqube/tests/analysis/AnalysisEsResilienceTest.java b/tests/src/test/java/org/sonarqube/tests/analysis/AnalysisEsResilienceTest.java index 226c736032f..db55ef7f23f 100644 --- a/tests/src/test/java/org/sonarqube/tests/analysis/AnalysisEsResilienceTest.java +++ b/tests/src/test/java/org/sonarqube/tests/analysis/AnalysisEsResilienceTest.java @@ -36,7 +36,7 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.tests.Byteman; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Common; import org.sonarqube.ws.Issues; import org.sonarqube.ws.Organizations.Organization; diff --git a/tests/src/test/java/org/sonarqube/tests/analysis/RedirectTest.java b/tests/src/test/java/org/sonarqube/tests/analysis/RedirectTest.java index 4e1ffec8f2a..bdcac11098f 100644 --- a/tests/src/test/java/org/sonarqube/tests/analysis/RedirectTest.java +++ b/tests/src/test/java/org/sonarqube/tests/analysis/RedirectTest.java @@ -36,7 +36,7 @@ import org.junit.ClassRule; import org.junit.Test; import org.junit.rules.RuleChain; import org.sonarqube.tests.Category3Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import util.ItUtils; import static org.assertj.core.api.Assertions.assertThat; diff --git a/tests/src/test/java/org/sonarqube/tests/authorisation/PermissionTemplateTest.java b/tests/src/test/java/org/sonarqube/tests/authorisation/PermissionTemplateTest.java index 366632b0644..b0a82a81dc3 100644 --- a/tests/src/test/java/org/sonarqube/tests/authorisation/PermissionTemplateTest.java +++ b/tests/src/test/java/org/sonarqube/tests/authorisation/PermissionTemplateTest.java @@ -30,7 +30,7 @@ import org.junit.rules.DisableOnDebug; import org.junit.rules.TestRule; import org.junit.rules.Timeout; import org.sonarqube.tests.Category6Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations.Organization; import org.sonarqube.ws.WsPermissions; import org.sonarqube.ws.WsPermissions.CreateTemplateWsResponse; diff --git a/tests/src/test/java/org/sonarqube/tests/authorisation/QualityProfileAdminPermissionTest.java b/tests/src/test/java/org/sonarqube/tests/authorisation/QualityProfileAdminPermissionTest.java index 11fe9c49637..b96d5cc719c 100644 --- a/tests/src/test/java/org/sonarqube/tests/authorisation/QualityProfileAdminPermissionTest.java +++ b/tests/src/test/java/org/sonarqube/tests/authorisation/QualityProfileAdminPermissionTest.java @@ -24,9 +24,10 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.tests.Category1Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.client.permission.AddUserWsRequest; import org.sonarqube.ws.client.qualityprofile.CreateRequest; +import util.selenium.Selenese; import static util.ItUtils.runProjectAnalysis; @@ -50,7 +51,7 @@ public class QualityProfileAdminPermissionTest { tester.wsClient().permissions().addUser(new AddUserWsRequest().setLogin("profileadm").setPermission("profileadmin")); createProfile("xoo", "foo"); - tester.runHtmlTests( + Selenese.runSelenese(orchestrator, // Verify normal user is not allowed to do any modification "/authorisation/QualityProfileAdminPermissionTest/normal-user.html", // Verify profile admin is allowed to do modifications diff --git a/tests/src/test/java/org/sonarqube/tests/authorisation/SystemPasscodeTest.java b/tests/src/test/java/org/sonarqube/tests/authorisation/SystemPasscodeTest.java index 32fa0cba328..b7fabd3bb92 100644 --- a/tests/src/test/java/org/sonarqube/tests/authorisation/SystemPasscodeTest.java +++ b/tests/src/test/java/org/sonarqube/tests/authorisation/SystemPasscodeTest.java @@ -25,7 +25,7 @@ import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.WsRequest; import org.sonarqube.ws.client.WsResponse; diff --git a/tests/src/test/java/org/sonarqube/tests/branch/BranchTest.java b/tests/src/test/java/org/sonarqube/tests/branch/BranchTest.java index 13dcb0b396f..aef3ab0696a 100644 --- a/tests/src/test/java/org/sonarqube/tests/branch/BranchTest.java +++ b/tests/src/test/java/org/sonarqube/tests/branch/BranchTest.java @@ -27,7 +27,7 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.tests.Category2Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Common; import org.sonarqube.ws.WsBranches; import org.sonarqube.ws.client.GetRequest; diff --git a/tests/src/test/java/org/sonarqube/tests/ce/CeShutdownTest.java b/tests/src/test/java/org/sonarqube/tests/ce/CeShutdownTest.java index 10a4fbfdc6b..07ae9a9c596 100644 --- a/tests/src/test/java/org/sonarqube/tests/ce/CeShutdownTest.java +++ b/tests/src/test/java/org/sonarqube/tests/ce/CeShutdownTest.java @@ -32,7 +32,7 @@ import org.junit.rules.DisableOnDebug; import org.junit.rules.TemporaryFolder; import org.junit.rules.TestRule; import org.junit.rules.Timeout; -import org.sonarqube.tests.LogsTailer; +import org.sonarqube.qa.util.LogsTailer; import org.sonarqube.ws.client.WsClient; import org.sonarqube.ws.client.ce.ActivityStatusWsRequest; import util.ItUtils; diff --git a/tests/src/test/java/org/sonarqube/tests/ce/ReportFailureNotificationTest.java b/tests/src/test/java/org/sonarqube/tests/ce/ReportFailureNotificationTest.java index 46727f2c375..411c753b9bd 100644 --- a/tests/src/test/java/org/sonarqube/tests/ce/ReportFailureNotificationTest.java +++ b/tests/src/test/java/org/sonarqube/tests/ce/ReportFailureNotificationTest.java @@ -42,7 +42,7 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.tests.Category6Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations; import org.sonarqube.ws.WsProjects; import org.sonarqube.ws.WsUsers; diff --git a/tests/src/test/java/org/sonarqube/tests/dbCleaner/PurgeTest.java b/tests/src/test/java/org/sonarqube/tests/dbCleaner/PurgeTest.java index 2b3115564e8..c2bedf5426b 100644 --- a/tests/src/test/java/org/sonarqube/tests/dbCleaner/PurgeTest.java +++ b/tests/src/test/java/org/sonarqube/tests/dbCleaner/PurgeTest.java @@ -35,7 +35,7 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.ErrorCollector; import org.sonarqube.tests.Category4Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.ProjectAnalyses; import org.sonarqube.ws.WsMeasures; import org.sonarqube.ws.WsMeasures.SearchHistoryResponse.HistoryValue; diff --git a/tests/src/test/java/org/sonarqube/tests/issue/IssueCreationDatePluginChangedTest.java b/tests/src/test/java/org/sonarqube/tests/issue/IssueCreationDatePluginChangedTest.java index e05168fb497..ce98ec258f1 100644 --- a/tests/src/test/java/org/sonarqube/tests/issue/IssueCreationDatePluginChangedTest.java +++ b/tests/src/test/java/org/sonarqube/tests/issue/IssueCreationDatePluginChangedTest.java @@ -37,7 +37,7 @@ import org.junit.Rule; import org.junit.Test; import org.sonar.wsclient.issue.Issue; import org.sonar.wsclient.issue.IssueQuery; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.client.PostRequest; import org.sonarqube.ws.client.WsClient; import org.subethamail.wiser.Wiser; diff --git a/tests/src/test/java/org/sonarqube/tests/issue/IssueNotificationsTest.java b/tests/src/test/java/org/sonarqube/tests/issue/IssueNotificationsTest.java index 62b6117fdaf..fbeeb637d60 100644 --- a/tests/src/test/java/org/sonarqube/tests/issue/IssueNotificationsTest.java +++ b/tests/src/test/java/org/sonarqube/tests/issue/IssueNotificationsTest.java @@ -40,7 +40,7 @@ import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameter; import org.junit.runners.Parameterized.Parameters; import org.sonarqube.tests.Category6Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Issues.Issue; import org.sonarqube.ws.Issues.SearchWsResponse; import org.sonarqube.ws.Organizations.Organization; diff --git a/tests/src/test/java/org/sonarqube/tests/issue/IssueTagsTest.java b/tests/src/test/java/org/sonarqube/tests/issue/IssueTagsTest.java index aa1f987c565..c44fcafaf73 100644 --- a/tests/src/test/java/org/sonarqube/tests/issue/IssueTagsTest.java +++ b/tests/src/test/java/org/sonarqube/tests/issue/IssueTagsTest.java @@ -29,7 +29,7 @@ import org.junit.Before; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations.Organization; import org.sonarqube.ws.WsUsers.CreateWsResponse.User; import org.sonarqube.ws.client.issue.SearchWsRequest; diff --git a/tests/src/test/java/org/sonarqube/tests/issue/OrganizationIssueAssignTest.java b/tests/src/test/java/org/sonarqube/tests/issue/OrganizationIssueAssignTest.java index a9e5bcf3eee..8ca101b9fee 100644 --- a/tests/src/test/java/org/sonarqube/tests/issue/OrganizationIssueAssignTest.java +++ b/tests/src/test/java/org/sonarqube/tests/issue/OrganizationIssueAssignTest.java @@ -28,7 +28,7 @@ import org.junit.Before; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Issues; import org.sonarqube.ws.Issues.Issue; import org.sonarqube.ws.Organizations; diff --git a/tests/src/test/java/org/sonarqube/tests/issue/OrganizationIssuesPageTest.java b/tests/src/test/java/org/sonarqube/tests/issue/OrganizationIssuesPageTest.java index df0e4c58dd9..13e7c26f8c3 100644 --- a/tests/src/test/java/org/sonarqube/tests/issue/OrganizationIssuesPageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/issue/OrganizationIssuesPageTest.java @@ -27,7 +27,7 @@ import org.junit.Rule; import org.junit.Test; import org.sonarqube.qa.util.pageobjects.Navigation; import org.sonarqube.tests.Category6Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations; import org.sonarqube.ws.WsUsers; import util.issue.IssueRule; diff --git a/tests/src/test/java/org/sonarqube/tests/lite/LiteTest.java b/tests/src/test/java/org/sonarqube/tests/lite/LiteTest.java index e60adfdbc2b..2585f27d65a 100644 --- a/tests/src/test/java/org/sonarqube/tests/lite/LiteTest.java +++ b/tests/src/test/java/org/sonarqube/tests/lite/LiteTest.java @@ -24,7 +24,7 @@ import org.junit.BeforeClass; import org.junit.ClassRule; import org.junit.Test; import org.junit.rules.RuleChain; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Issues; import org.sonarqube.ws.WsComponents; import org.sonarqube.ws.WsMeasures; diff --git a/tests/src/test/java/org/sonarqube/tests/measure/ProjectMeasuresPageTest.java b/tests/src/test/java/org/sonarqube/tests/measure/ProjectMeasuresPageTest.java index 2ea1009b617..080d9e059a8 100644 --- a/tests/src/test/java/org/sonarqube/tests/measure/ProjectMeasuresPageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/measure/ProjectMeasuresPageTest.java @@ -29,7 +29,7 @@ import org.sonarqube.qa.util.pageobjects.Navigation; import org.sonarqube.qa.util.pageobjects.measures.MeasureContent; import org.sonarqube.qa.util.pageobjects.measures.MeasuresPage; import org.sonarqube.tests.Category1Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import static com.codeborne.selenide.Condition.visible; import static com.codeborne.selenide.Selenide.$; diff --git a/tests/src/test/java/org/sonarqube/tests/organization/BillingTest.java b/tests/src/test/java/org/sonarqube/tests/organization/BillingTest.java index 730298db1e6..e0a8d9c2ea1 100644 --- a/tests/src/test/java/org/sonarqube/tests/organization/BillingTest.java +++ b/tests/src/test/java/org/sonarqube/tests/organization/BillingTest.java @@ -28,7 +28,7 @@ import org.junit.Before; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations; import org.sonarqube.ws.WsUsers.CreateWsResponse.User; import org.sonarqube.ws.client.GetRequest; diff --git a/tests/src/test/java/org/sonarqube/tests/organization/OrganizationMembershipTest.java b/tests/src/test/java/org/sonarqube/tests/organization/OrganizationMembershipTest.java index 256b30b7271..1903f3c7336 100644 --- a/tests/src/test/java/org/sonarqube/tests/organization/OrganizationMembershipTest.java +++ b/tests/src/test/java/org/sonarqube/tests/organization/OrganizationMembershipTest.java @@ -28,7 +28,7 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations.Organization; import org.sonarqube.ws.WsUsers.CreateWsResponse.User; import org.sonarqube.ws.client.HttpException; diff --git a/tests/src/test/java/org/sonarqube/tests/organization/OrganizationMembershipUiTest.java b/tests/src/test/java/org/sonarqube/tests/organization/OrganizationMembershipUiTest.java index 817248a14fb..bec9b244087 100644 --- a/tests/src/test/java/org/sonarqube/tests/organization/OrganizationMembershipUiTest.java +++ b/tests/src/test/java/org/sonarqube/tests/organization/OrganizationMembershipUiTest.java @@ -28,7 +28,7 @@ import org.junit.Rule; import org.junit.Test; import org.sonarqube.qa.util.pageobjects.organization.MembersPage; import org.sonarqube.tests.Category6Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations.Organization; import org.sonarqube.ws.WsUsers.CreateWsResponse.User; diff --git a/tests/src/test/java/org/sonarqube/tests/organization/OrganizationTest.java b/tests/src/test/java/org/sonarqube/tests/organization/OrganizationTest.java index 7ea671d5928..39750b1e9c1 100644 --- a/tests/src/test/java/org/sonarqube/tests/organization/OrganizationTest.java +++ b/tests/src/test/java/org/sonarqube/tests/organization/OrganizationTest.java @@ -29,8 +29,8 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; -import org.sonarqube.tests.OrganizationTester; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.OrganizationTester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations.Organization; import org.sonarqube.ws.QualityProfiles; import org.sonarqube.ws.Rules; diff --git a/tests/src/test/java/org/sonarqube/tests/organization/PersonalOrganizationTest.java b/tests/src/test/java/org/sonarqube/tests/organization/PersonalOrganizationTest.java index 5f6320c6397..9faddde8421 100644 --- a/tests/src/test/java/org/sonarqube/tests/organization/PersonalOrganizationTest.java +++ b/tests/src/test/java/org/sonarqube/tests/organization/PersonalOrganizationTest.java @@ -28,7 +28,7 @@ import org.junit.Before; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations; import org.sonarqube.ws.WsUsers; import org.sonarqube.ws.client.organization.SearchWsRequest; diff --git a/tests/src/test/java/org/sonarqube/tests/organization/RootUserOnOrganizationTest.java b/tests/src/test/java/org/sonarqube/tests/organization/RootUserOnOrganizationTest.java index e462fb709c5..5b326210fa3 100644 --- a/tests/src/test/java/org/sonarqube/tests/organization/RootUserOnOrganizationTest.java +++ b/tests/src/test/java/org/sonarqube/tests/organization/RootUserOnOrganizationTest.java @@ -25,8 +25,8 @@ import java.sql.SQLException; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.tests.Session; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.TesterSession; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.WsRoot; import org.sonarqube.ws.WsUsers; import util.user.UserRule; @@ -69,8 +69,8 @@ public class RootUserOnOrganizationTest { public void root_can_be_set_and_unset_via_web_services() { WsUsers.CreateWsResponse.User user1 = tester.users().generate(); WsUsers.CreateWsResponse.User user2 = tester.users().generate(); - Session user1Session = tester.as(user1.getLogin()); - Session user2Session = tester.as(user2.getLogin()); + TesterSession user1Session = tester.as(user1.getLogin()); + TesterSession user2Session = tester.as(user2.getLogin()); // non root can not set or unset root another user not itself expectForbiddenError(() -> user1Session.wsClient().roots().setRoot(user2.getLogin())); diff --git a/tests/src/test/java/org/sonarqube/tests/organization/RootUserTest.java b/tests/src/test/java/org/sonarqube/tests/organization/RootUserTest.java index 517fc94d0f1..6d66e5fc33c 100644 --- a/tests/src/test/java/org/sonarqube/tests/organization/RootUserTest.java +++ b/tests/src/test/java/org/sonarqube/tests/organization/RootUserTest.java @@ -24,7 +24,7 @@ import org.sonarqube.tests.Category4Suite; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import static util.ItUtils.expectForbiddenError; diff --git a/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectAdministrationTest.java b/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectAdministrationTest.java index 88f75d55db5..7612667cf62 100644 --- a/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectAdministrationTest.java +++ b/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectAdministrationTest.java @@ -42,7 +42,7 @@ import org.sonarqube.qa.util.pageobjects.Navigation; import org.sonarqube.qa.util.pageobjects.ProjectsManagementPage; import org.sonarqube.qa.util.pageobjects.settings.SettingsPage; import org.sonarqube.tests.Category1Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.WsPermissions; import org.sonarqube.ws.client.permission.AddUserToTemplateWsRequest; import org.sonarqube.ws.client.permission.CreateTemplateWsRequest; diff --git a/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectBulkDeleteTest.java b/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectBulkDeleteTest.java index 28d601e0e21..71ac12d965c 100644 --- a/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectBulkDeleteTest.java +++ b/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectBulkDeleteTest.java @@ -27,7 +27,7 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.tests.Category6Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations; import org.sonarqube.ws.WsProjects.CreateWsResponse; import org.sonarqube.ws.WsProjects.SearchWsResponse.Component; diff --git a/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectBulkDeletionPageTest.java b/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectBulkDeletionPageTest.java index bf087c2917d..988f37703f8 100644 --- a/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectBulkDeletionPageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectBulkDeletionPageTest.java @@ -25,7 +25,7 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.tests.Category1Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.WsProjects.CreateWsResponse.Project; import org.sonarqube.ws.client.component.SearchProjectsRequest; diff --git a/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectDeleteTest.java b/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectDeleteTest.java index b0b43103ac6..788a94dfbf3 100644 --- a/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectDeleteTest.java +++ b/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectDeleteTest.java @@ -31,7 +31,7 @@ import org.junit.rules.DisableOnDebug; import org.junit.rules.TestRule; import org.junit.rules.Timeout; import org.sonarqube.tests.Category6Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations; import org.sonarqube.ws.WsComponents; import org.sonarqube.ws.WsProjects; diff --git a/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectKeyUpdateTest.java b/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectKeyUpdateTest.java index 79a8902f582..f1e1ba47ce4 100644 --- a/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectKeyUpdateTest.java +++ b/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectKeyUpdateTest.java @@ -34,7 +34,7 @@ import org.junit.rules.DisableOnDebug; import org.junit.rules.TestRule; import org.junit.rules.Timeout; import org.sonarqube.tests.Category6Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations; import org.sonarqube.ws.WsComponents; import org.sonarqube.ws.WsProjects; diff --git a/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectProvisioningTest.java b/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectProvisioningTest.java index 1ff7a8f24d6..40140448b55 100644 --- a/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectProvisioningTest.java +++ b/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectProvisioningTest.java @@ -29,7 +29,7 @@ import org.junit.rules.DisableOnDebug; import org.junit.rules.TestRule; import org.junit.rules.Timeout; import org.sonarqube.tests.Category6Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations; import org.sonarqube.ws.WsComponents; import org.sonarqube.ws.WsProjects; diff --git a/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectQualityGatePageTest.java b/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectQualityGatePageTest.java index 6a3bdbbe8bc..60500c79fd5 100644 --- a/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectQualityGatePageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectQualityGatePageTest.java @@ -69,8 +69,8 @@ public class ProjectQualityGatePageTest { try { ProjectQualityGatePage page = openPage(); SelenideElement selectedQualityGate = page.getSelectedQualityGate(); - selectedQualityGate.should(Condition.hasText("Default")); - selectedQualityGate.should(Condition.hasText(customQualityGate.name())); + selectedQualityGate.should(Condition.text("Default")); + selectedQualityGate.should(Condition.text(customQualityGate.name())); } finally { qualityGateClient().unsetDefault(); qualityGateClient().destroy(customQualityGate.id()); @@ -84,8 +84,8 @@ public class ProjectQualityGatePageTest { ProjectQualityGatePage page = openPage(); SelenideElement selectedQualityGate = page.getSelectedQualityGate(); - selectedQualityGate.shouldNot(Condition.hasText("Default")); - selectedQualityGate.should(Condition.hasText(customQualityGate.name())); + selectedQualityGate.shouldNot(Condition.text("Default")); + selectedQualityGate.should(Condition.text(customQualityGate.name())); } @Test @@ -104,7 +104,7 @@ public class ProjectQualityGatePageTest { page.setQualityGate(customQualityGate.name()); SelenideElement selectedQualityGate = page.getSelectedQualityGate(); - selectedQualityGate.should(Condition.hasText(customQualityGate.name())); + selectedQualityGate.should(Condition.text(customQualityGate.name())); } @Test @@ -117,8 +117,8 @@ public class ProjectQualityGatePageTest { page.setQualityGate(customQualityGate.name()); SelenideElement selectedQualityGate = page.getSelectedQualityGate(); - selectedQualityGate.should(Condition.hasText("Default")); - selectedQualityGate.should(Condition.hasText(customQualityGate.name())); + selectedQualityGate.should(Condition.text("Default")); + selectedQualityGate.should(Condition.text(customQualityGate.name())); } finally { qualityGateClient().unsetDefault(); qualityGateClient().destroy(customQualityGate.id()); diff --git a/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectSearchTest.java b/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectSearchTest.java index 23313f49d1d..cd1c0107c8c 100644 --- a/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectSearchTest.java +++ b/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectSearchTest.java @@ -27,7 +27,7 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.tests.Category6Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations; import org.sonarqube.ws.WsProjects.CreateWsResponse; import org.sonarqube.ws.WsProjects.SearchWsResponse; diff --git a/tests/src/test/java/org/sonarqube/tests/projectSearch/LeakProjectsPageTest.java b/tests/src/test/java/org/sonarqube/tests/projectSearch/LeakProjectsPageTest.java index b09816c222c..54ff1ce9bf6 100644 --- a/tests/src/test/java/org/sonarqube/tests/projectSearch/LeakProjectsPageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/projectSearch/LeakProjectsPageTest.java @@ -31,7 +31,7 @@ import org.junit.BeforeClass; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations.Organization; import org.sonarqube.qa.util.pageobjects.projects.ProjectsPage; diff --git a/tests/src/test/java/org/sonarqube/tests/projectSearch/ProjectsPageTest.java b/tests/src/test/java/org/sonarqube/tests/projectSearch/ProjectsPageTest.java index 1a9b5a4a0a4..2843898a886 100644 --- a/tests/src/test/java/org/sonarqube/tests/projectSearch/ProjectsPageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/projectSearch/ProjectsPageTest.java @@ -30,7 +30,7 @@ import org.junit.rules.RuleChain; import org.sonarqube.qa.util.pageobjects.Navigation; import org.sonarqube.qa.util.pageobjects.projects.ProjectsPage; import org.sonarqube.tests.Category1Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.WsUsers; import org.sonarqube.ws.client.PostRequest; import org.sonarqube.ws.client.WsClient; diff --git a/tests/src/test/java/org/sonarqube/tests/projectSearch/SearchProjectsTest.java b/tests/src/test/java/org/sonarqube/tests/projectSearch/SearchProjectsTest.java index c466b813e11..2e4e6f159c2 100644 --- a/tests/src/test/java/org/sonarqube/tests/projectSearch/SearchProjectsTest.java +++ b/tests/src/test/java/org/sonarqube/tests/projectSearch/SearchProjectsTest.java @@ -30,7 +30,7 @@ import org.junit.Before; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Common; import org.sonarqube.ws.Organizations.Organization; import org.sonarqube.ws.WsComponents.Component; diff --git a/tests/src/test/java/org/sonarqube/tests/qualityGate/OrganizationQualityGateUiTest.java b/tests/src/test/java/org/sonarqube/tests/qualityGate/OrganizationQualityGateUiTest.java index 02e99e90a88..a859558d04e 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityGate/OrganizationQualityGateUiTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityGate/OrganizationQualityGateUiTest.java @@ -30,7 +30,7 @@ import org.openqa.selenium.By; import org.sonarqube.qa.util.pageobjects.ProjectDashboardPage; import org.sonarqube.qa.util.pageobjects.QualityGatePage; import org.sonarqube.tests.Category6Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations; import org.sonarqube.ws.WsUsers; import util.issue.IssueRule; diff --git a/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateForSmallChangesetsTest.java b/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateForSmallChangesetsTest.java index ca4c99e47dc..f41911e4e2b 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateForSmallChangesetsTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateForSmallChangesetsTest.java @@ -31,7 +31,7 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.tests.Category6Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.MediaTypes; import org.sonarqube.ws.Organizations; import org.sonarqube.ws.WsCe; diff --git a/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateNotificationTest.java b/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateNotificationTest.java index 9df387528bf..de000ee5e61 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateNotificationTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateNotificationTest.java @@ -29,7 +29,7 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.tests.Category1Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.WsProjects.CreateWsResponse.Project; import org.sonarqube.ws.WsQualityGates; import org.sonarqube.ws.client.PostRequest; diff --git a/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateOnRatingMeasuresTest.java b/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateOnRatingMeasuresTest.java index c1005e3683c..a90b54cbc1a 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateOnRatingMeasuresTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateOnRatingMeasuresTest.java @@ -24,7 +24,7 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.tests.Category1Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.WsMeasures; import org.sonarqube.ws.WsProjects.CreateWsResponse.Project; import org.sonarqube.ws.WsQualityGates; diff --git a/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateTest.java b/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateTest.java index 75e6a897654..400b897fadd 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateTest.java @@ -43,8 +43,8 @@ import org.sonar.wsclient.qualitygate.NewCondition; import org.sonar.wsclient.qualitygate.QualityGate; import org.sonar.wsclient.qualitygate.QualityGateClient; import org.sonarqube.tests.Category1Suite; -import org.sonarqube.tests.Session; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.TesterSession; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.MediaTypes; import org.sonarqube.ws.Organizations.Organization; import org.sonarqube.ws.WsCe; @@ -293,7 +293,7 @@ public class QualityGateTest { Organization organization = tester.organizations().getDefaultOrganization(); WsUsers.CreateWsResponse.User user = tester.users().generateMember(organization); tester.wsClient().permissions().addUser(new AddUserWsRequest().setLogin(user.getLogin()).setPermission("gateadmin").setOrganization(organization.getKey())); - Session qGateAdminTester = tester.as(user.getLogin()); + TesterSession qGateAdminTester = tester.as(user.getLogin()); QualityGatesService qGateService = qGateAdminTester.qGates().service(); // perform administration operations WsQualityGates.CreateWsResponse qualityGate = qGateAdminTester.qGates().generate(); diff --git a/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateUiTest.java b/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateUiTest.java index 5c342390d41..1fb41c11454 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateUiTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateUiTest.java @@ -34,7 +34,7 @@ import org.openqa.selenium.By; import org.sonarqube.qa.util.pageobjects.Navigation; import org.sonarqube.qa.util.pageobjects.ProjectActivityPage; import org.sonarqube.tests.Category1Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.WsProjects.CreateWsResponse.Project; import org.sonarqube.ws.WsQualityGates; import org.sonarqube.ws.client.qualitygate.CreateConditionRequest; diff --git a/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateWithOrganizationsTest.java b/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateWithOrganizationsTest.java index 226096b2189..2bc320dc475 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateWithOrganizationsTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateWithOrganizationsTest.java @@ -26,7 +26,7 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.tests.Category6Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations.Organization; import org.sonarqube.ws.WsProjects.CreateWsResponse.Project; import org.sonarqube.ws.WsQualityGates.CreateWsResponse; diff --git a/tests/src/test/java/org/sonarqube/tests/qualityProfile/ActiveRuleEsResilienceTest.java b/tests/src/test/java/org/sonarqube/tests/qualityProfile/ActiveRuleEsResilienceTest.java index 49be3215f07..0f71864996a 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityProfile/ActiveRuleEsResilienceTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityProfile/ActiveRuleEsResilienceTest.java @@ -30,7 +30,7 @@ import org.junit.rules.DisableOnDebug; import org.junit.rules.TestRule; import org.junit.rules.Timeout; import org.sonarqube.tests.Byteman; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations; import org.sonarqube.ws.QualityProfiles; import org.sonarqube.ws.client.rule.SearchWsRequest; diff --git a/tests/src/test/java/org/sonarqube/tests/qualityProfile/BuiltInQualityProfilesTest.java b/tests/src/test/java/org/sonarqube/tests/qualityProfile/BuiltInQualityProfilesTest.java index 6e9173e042a..7b255b78940 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityProfile/BuiltInQualityProfilesTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityProfile/BuiltInQualityProfilesTest.java @@ -25,8 +25,8 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.tests.Category6Suite; -import org.sonarqube.tests.Session; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.TesterSession; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations.Organization; import org.sonarqube.ws.QualityProfiles; import org.sonarqube.ws.QualityProfiles.CreateWsResponse; @@ -110,7 +110,7 @@ public class BuiltInQualityProfilesTest { Organization org = tester.organizations().generate(); User administrator = tester.users().generateAdministrator(org); QualityProfile builtInProfile = getProfile(org, p -> p.getIsBuiltIn() && "Basic".equals(p.getName()) && "xoo".equals(p.getLanguage())); - Session adminSession = tester.as(administrator.getLogin()); + TesterSession adminSession = tester.as(administrator.getLogin()); QualityProfiles.CopyWsResponse copyResponse = adminSession.qProfiles().service().copy(new CopyRequest(builtInProfile.getKey(), "My copy")); @@ -132,7 +132,7 @@ public class BuiltInQualityProfilesTest { Organization org = tester.organizations().generate(); User administrator = tester.users().generateAdministrator(org); QualityProfile builtInProfile = getProfile(org, p -> p.getIsBuiltIn() && "Basic".equals(p.getName()) && "xoo".equals(p.getLanguage())); - Session adminSession = tester.as(administrator.getLogin()); + TesterSession adminSession = tester.as(administrator.getLogin()); QualityProfiles.CopyWsResponse copyResponse = adminSession.qProfiles().service().copy(new CopyRequest(builtInProfile.getKey(), "My copy")); adminSession.qProfiles().service().changeParent( diff --git a/tests/src/test/java/org/sonarqube/tests/qualityProfile/CustomQualityProfilesTest.java b/tests/src/test/java/org/sonarqube/tests/qualityProfile/CustomQualityProfilesTest.java index 76d707b38c6..84974475261 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityProfile/CustomQualityProfilesTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityProfile/CustomQualityProfilesTest.java @@ -28,9 +28,9 @@ import java.util.function.Predicate; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.tests.QProfileTester; -import org.sonarqube.tests.Session; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.QProfileTester; +import org.sonarqube.qa.util.TesterSession; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations.Organization; import org.sonarqube.ws.QualityProfiles; import org.sonarqube.ws.QualityProfiles.CreateWsResponse.QualityProfile; @@ -188,7 +188,7 @@ public class CustomQualityProfilesTest { Organization org = tester.organizations().generate(); QualityProfile profile = tester.qProfiles().createXooProfile(org); - Session anonymousSession = tester.asAnonymous(); + TesterSession anonymousSession = tester.asAnonymous(); expectUnauthorizedError(() -> anonymousSession.qProfiles().createXooProfile(org)); expectUnauthorizedError(() -> anonymousSession.qProfiles().service().delete(profile.getKey())); @@ -201,7 +201,7 @@ public class CustomQualityProfilesTest { Organization org = tester.organizations().generate(); User orgAdmin = tester.users().generateAdministrator(org); - Session adminSession = tester.as(orgAdmin.getLogin()); + TesterSession adminSession = tester.as(orgAdmin.getLogin()); QualityProfile profile = adminSession.qProfiles().createXooProfile(org); // root can activate rule and delete the profile @@ -217,7 +217,7 @@ public class CustomQualityProfilesTest { Organization org = tester.organizations().generate(); User user = tester.users().generateAdministrator(org); - Session adminSession = tester.as(user.getLogin()); + TesterSession adminSession = tester.as(user.getLogin()); QualityProfile parentProfile = adminSession.qProfiles().createXooProfile(org); QualityProfile inheritedProfile = adminSession.qProfiles().service().create( CreateRequest.builder() @@ -250,7 +250,7 @@ public class CustomQualityProfilesTest { Organization org = tester.organizations().generate(); User admin = tester.users().generateAdministrator(org); - Session adminSession = tester.as(admin.getLogin()); + TesterSession adminSession = tester.as(admin.getLogin()); String projectKey = randomAlphanumeric(10); String projectName = randomAlphanumeric(10); @@ -286,7 +286,7 @@ public class CustomQualityProfilesTest { User admin = tester.users().generateAdministrator(org); String projectKey = randomAlphanumeric(10); String projectName = randomAlphanumeric(10); - Session adminSession = tester.as(admin.getLogin()); + TesterSession adminSession = tester.as(admin.getLogin()); QualityProfile newXooProfile = adminSession.qProfiles().createXooProfile(org); adminSession.wsClient().wsConnector().call(new PostRequest("api/projects/create") diff --git a/tests/src/test/java/org/sonarqube/tests/qualityProfile/OrganizationQualityProfilesUiTest.java b/tests/src/test/java/org/sonarqube/tests/qualityProfile/OrganizationQualityProfilesUiTest.java index 5a55561549c..69a8e008f93 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityProfile/OrganizationQualityProfilesUiTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityProfile/OrganizationQualityProfilesUiTest.java @@ -27,17 +27,18 @@ import org.junit.ClassRule; import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; +import org.sonarqube.qa.util.Tester; import org.sonarqube.qa.util.pageobjects.Navigation; import org.sonarqube.qa.util.pageobjects.QualityProfilePage; import org.sonarqube.qa.util.pageobjects.RulesPage; import org.sonarqube.tests.Category6Suite; -import org.sonarqube.tests.Tester; import org.sonarqube.ws.Organizations.Organization; import org.sonarqube.ws.QualityProfiles; import org.sonarqube.ws.WsUsers.CreateWsResponse.User; import org.sonarqube.ws.client.PostRequest; import org.sonarqube.ws.client.qualityprofile.AddProjectRequest; import org.sonarqube.ws.client.qualityprofile.ChangeParentRequest; +import util.selenium.Selenese; import static com.codeborne.selenide.Selenide.$; import static util.ItUtils.projectDir; @@ -73,7 +74,7 @@ public class OrganizationQualityProfilesUiTest { @Test public void testHomePage() { - tester.runHtmlTests( + Selenese.runSelenese(orchestrator, "/organization/OrganizationQualityProfilesUiTest/should_display_list.html", "/organization/OrganizationQualityProfilesUiTest/should_open_from_list.html", "/organization/OrganizationQualityProfilesUiTest/should_filter_by_language.html"); @@ -81,7 +82,7 @@ public class OrganizationQualityProfilesUiTest { @Test public void testProfilePage() { - tester.runHtmlTests( + Selenese.runSelenese(orchestrator, "/organization/OrganizationQualityProfilesUiTest/should_display_profile_rules.html", "/organization/OrganizationQualityProfilesUiTest/should_display_profile_inheritance.html", "/organization/OrganizationQualityProfilesUiTest/should_display_profile_exporters.html"); @@ -104,46 +105,46 @@ public class OrganizationQualityProfilesUiTest { @Test public void testProfileChangelog() { - tester.runHtmlTests( + Selenese.runSelenese(orchestrator, "/organization/OrganizationQualityProfilesUiTest/should_display_changelog.html"); } @Ignore("to be replaced by selenide test in order to inject profile key") @Test public void testComparison() { - tester.runHtmlTests("/organization/OrganizationQualityProfilesUiTest/should_compare.html"); + Selenese.runSelenese(orchestrator, "/organization/OrganizationQualityProfilesUiTest/should_compare.html"); } @Test public void testCreation() { - tester.runHtmlTests("/organization/OrganizationQualityProfilesUiTest/should_create.html"); + Selenese.runSelenese(orchestrator, "/organization/OrganizationQualityProfilesUiTest/should_create.html"); } @Test public void testDeletion() { - tester.runHtmlTests("/organization/OrganizationQualityProfilesUiTest/should_delete.html"); + Selenese.runSelenese(orchestrator, "/organization/OrganizationQualityProfilesUiTest/should_delete.html"); } @Test public void testCopying() { - tester.runHtmlTests("/organization/OrganizationQualityProfilesUiTest/should_copy.html"); + Selenese.runSelenese(orchestrator, "/organization/OrganizationQualityProfilesUiTest/should_copy.html"); } @Test public void testRenaming() { - tester.runHtmlTests("/organization/OrganizationQualityProfilesUiTest/should_rename.html"); + Selenese.runSelenese(orchestrator, "/organization/OrganizationQualityProfilesUiTest/should_rename.html"); } @Test public void testSettingDefault() { - tester.runHtmlTests("/organization/OrganizationQualityProfilesUiTest/should_set_default.html"); + Selenese.runSelenese(orchestrator, "/organization/OrganizationQualityProfilesUiTest/should_set_default.html"); } @Test public void testRestoration() { deleteProfile("xoo", "empty"); - tester.runHtmlTests("/organization/OrganizationQualityProfilesUiTest/should_restore.html"); + Selenese.runSelenese(orchestrator, "/organization/OrganizationQualityProfilesUiTest/should_restore.html"); } @Test diff --git a/tests/src/test/java/org/sonarqube/tests/qualityProfile/QualityProfilesEditTest.java b/tests/src/test/java/org/sonarqube/tests/qualityProfile/QualityProfilesEditTest.java index 17298e22211..142fd1d2dff 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityProfile/QualityProfilesEditTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityProfile/QualityProfilesEditTest.java @@ -25,7 +25,7 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.tests.Category6Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Common; import org.sonarqube.ws.Organizations.Organization; import org.sonarqube.ws.QualityProfiles.CreateWsResponse; diff --git a/tests/src/test/java/org/sonarqube/tests/qualityProfile/QualityProfilesUiTest.java b/tests/src/test/java/org/sonarqube/tests/qualityProfile/QualityProfilesUiTest.java index 5ad0041e602..6de29578f62 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityProfile/QualityProfilesUiTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityProfile/QualityProfilesUiTest.java @@ -28,13 +28,14 @@ import org.junit.ClassRule; import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; +import org.sonarqube.qa.util.Tester; import org.sonarqube.qa.util.pageobjects.Navigation; import org.sonarqube.tests.Category4Suite; -import org.sonarqube.tests.Tester; import org.sonarqube.ws.client.PostRequest; import org.sonarqube.ws.client.qualityprofile.AddProjectRequest; import org.sonarqube.ws.client.qualityprofile.ChangeParentRequest; import org.sonarqube.ws.client.qualityprofile.CreateRequest; +import util.selenium.Selenese; import util.user.UserRule; import static com.codeborne.selenide.Selenide.$; @@ -80,7 +81,7 @@ public class QualityProfilesUiTest { @Test public void testHomePage() { - tester.runHtmlTests( + Selenese.runSelenese(orchestrator, "/qualityProfile/QualityProfilesUiTest/should_display_list.html", "/qualityProfile/QualityProfilesUiTest/should_open_from_list.html", "/qualityProfile/QualityProfilesUiTest/should_filter_by_language.html"); @@ -88,7 +89,7 @@ public class QualityProfilesUiTest { @Test public void testProfilePage() { - tester.runHtmlTests( + Selenese.runSelenese(orchestrator, "/qualityProfile/QualityProfilesUiTest/should_display_profile_rules.html", "/qualityProfile/QualityProfilesUiTest/should_display_profile_inheritance.html", "/qualityProfile/QualityProfilesUiTest/should_display_profile_projects.html", @@ -108,46 +109,46 @@ public class QualityProfilesUiTest { @Test public void testProfileChangelog() { - tester.runHtmlTests( + Selenese.runSelenese(orchestrator, "/qualityProfile/QualityProfilesUiTest/should_display_changelog.html"); } @Ignore("find a way to know profile key inside selenium tests") @Test public void testComparison() { - tester.runHtmlTests("/qualityProfile/QualityProfilesUiTest/should_compare.html"); + Selenese.runSelenese(orchestrator, "/qualityProfile/QualityProfilesUiTest/should_compare.html"); } @Test public void testCreation() { - tester.runHtmlTests("/qualityProfile/QualityProfilesUiTest/should_create.html"); + Selenese.runSelenese(orchestrator, "/qualityProfile/QualityProfilesUiTest/should_create.html"); } @Test public void testDeletion() { - tester.runHtmlTests("/qualityProfile/QualityProfilesUiTest/should_delete.html"); + Selenese.runSelenese(orchestrator, "/qualityProfile/QualityProfilesUiTest/should_delete.html"); } @Test public void testCopying() { - tester.runHtmlTests("/qualityProfile/QualityProfilesUiTest/should_copy.html"); + Selenese.runSelenese(orchestrator, "/qualityProfile/QualityProfilesUiTest/should_copy.html"); } @Test public void testRenaming() { - tester.runHtmlTests("/qualityProfile/QualityProfilesUiTest/should_rename.html"); + Selenese.runSelenese(orchestrator, "/qualityProfile/QualityProfilesUiTest/should_rename.html"); } @Test public void testSettingDefault() { - tester.runHtmlTests("/qualityProfile/QualityProfilesUiTest/should_set_default.html"); + Selenese.runSelenese(orchestrator, "/qualityProfile/QualityProfilesUiTest/should_set_default.html"); } @Test public void testRestore() { deleteProfile("xoo", "empty"); - tester.runHtmlTests("/qualityProfile/QualityProfilesUiTest/should_restore.html"); + Selenese.runSelenese(orchestrator, "/qualityProfile/QualityProfilesUiTest/should_restore.html"); } private void createProfile(String language, String name) { diff --git a/tests/src/test/java/org/sonarqube/tests/qualityProfile/QualityProfilesWsTest.java b/tests/src/test/java/org/sonarqube/tests/qualityProfile/QualityProfilesWsTest.java index b88ad7121fb..4e121520117 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityProfile/QualityProfilesWsTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityProfile/QualityProfilesWsTest.java @@ -28,7 +28,7 @@ import org.junit.Test; import org.skyscreamer.jsonassert.JSONAssert; import org.skyscreamer.jsonassert.JSONCompareMode; import org.sonarqube.tests.Category6Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations.Organization; import org.sonarqube.ws.QualityProfiles.CreateWsResponse; import org.sonarqube.ws.QualityProfiles.SearchWsResponse; diff --git a/tests/src/test/java/org/sonarqube/tests/rule/RuleEsResilienceTest.java b/tests/src/test/java/org/sonarqube/tests/rule/RuleEsResilienceTest.java index c887cf652f3..770298e8180 100644 --- a/tests/src/test/java/org/sonarqube/tests/rule/RuleEsResilienceTest.java +++ b/tests/src/test/java/org/sonarqube/tests/rule/RuleEsResilienceTest.java @@ -30,7 +30,7 @@ import org.junit.rules.DisableOnDebug; import org.junit.rules.TestRule; import org.junit.rules.Timeout; import org.sonarqube.tests.Byteman; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.client.rule.CreateWsRequest; import org.sonarqube.ws.client.rule.SearchWsRequest; import util.ItUtils; diff --git a/tests/src/test/java/org/sonarqube/tests/rule/RuleTagsTest.java b/tests/src/test/java/org/sonarqube/tests/rule/RuleTagsTest.java index 16e9397c713..16fd9ca3fb0 100644 --- a/tests/src/test/java/org/sonarqube/tests/rule/RuleTagsTest.java +++ b/tests/src/test/java/org/sonarqube/tests/rule/RuleTagsTest.java @@ -27,7 +27,7 @@ import org.junit.ClassRule; import org.junit.Test; import org.junit.rules.RuleChain; import org.junit.rules.TestRule; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations; import org.sonarqube.ws.client.PostRequest; import util.ItUtils; diff --git a/tests/src/test/java/org/sonarqube/tests/rule/RulesPageTest.java b/tests/src/test/java/org/sonarqube/tests/rule/RulesPageTest.java index 527dbe423ce..97b2d2b205a 100644 --- a/tests/src/test/java/org/sonarqube/tests/rule/RulesPageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/rule/RulesPageTest.java @@ -25,7 +25,7 @@ import org.junit.Rule; import org.junit.Test; import org.sonarqube.qa.util.pageobjects.RulesPage; import org.sonarqube.tests.Category2Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; public class RulesPageTest { @ClassRule diff --git a/tests/src/test/java/org/sonarqube/tests/rule/RulesWsTest.java b/tests/src/test/java/org/sonarqube/tests/rule/RulesWsTest.java index 3b4d1482b94..77aca9652f4 100644 --- a/tests/src/test/java/org/sonarqube/tests/rule/RulesWsTest.java +++ b/tests/src/test/java/org/sonarqube/tests/rule/RulesWsTest.java @@ -26,7 +26,7 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.tests.Category6Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations.Organization; import org.sonarqube.ws.QualityProfiles.CreateWsResponse; import org.sonarqube.ws.QualityProfiles.SearchWsResponse; diff --git a/tests/src/test/java/org/sonarqube/tests/serverSystem/ServerSystemTest.java b/tests/src/test/java/org/sonarqube/tests/serverSystem/ServerSystemTest.java index 3ac1c50cdfe..2e70f4e5c18 100644 --- a/tests/src/test/java/org/sonarqube/tests/serverSystem/ServerSystemTest.java +++ b/tests/src/test/java/org/sonarqube/tests/serverSystem/ServerSystemTest.java @@ -31,9 +31,10 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.tests.Category4Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.WsSystem; import util.ItUtils; +import util.selenium.Selenese; import static org.apache.commons.lang.StringUtils.startsWithAny; import static org.assertj.core.api.Assertions.assertThat; @@ -72,7 +73,7 @@ public class ServerSystemTest { public void display_warnings_when_using_h2() { String dialect = orchestrator.getConfiguration().getString("sonar.jdbc.dialect"); if (dialect == null || dialect.equals("h2") || dialect.equals("embedded")) { - tester.runHtmlTests("/serverSystem/ServerSystemTest/derby-warning.html"); + Selenese.runSelenese(orchestrator, "/serverSystem/ServerSystemTest/derby-warning.html"); } } @@ -81,7 +82,7 @@ public class ServerSystemTest { */ @Test public void hide_jdbc_settings_to_non_admin() { - tester.runHtmlTests("/serverSystem/ServerSystemTest/hide-jdbc-settings.html"); + Selenese.runSelenese(orchestrator, "/serverSystem/ServerSystemTest/hide-jdbc-settings.html"); } @Test @@ -104,7 +105,7 @@ public class ServerSystemTest { orchestrator.executeBuild(SonarScanner.create(ItUtils.projectDir("shared/xoo-sample")) .setProperty("sonar.projectKey", "myproject.jsp")); // Access dashboard - tester.runHtmlTests("/serverSystem/ServerSystemTest/url_ending_by_jsp.html"); + Selenese.runSelenese(orchestrator, "/serverSystem/ServerSystemTest/url_ending_by_jsp.html"); } /** diff --git a/tests/src/test/java/org/sonarqube/tests/serverSystem/SystemInfoTest.java b/tests/src/test/java/org/sonarqube/tests/serverSystem/SystemInfoTest.java index 60065d71954..8ba633a40f3 100644 --- a/tests/src/test/java/org/sonarqube/tests/serverSystem/SystemInfoTest.java +++ b/tests/src/test/java/org/sonarqube/tests/serverSystem/SystemInfoTest.java @@ -29,7 +29,7 @@ import org.junit.Rule; import org.junit.Test; import org.sonarqube.qa.util.pageobjects.SystemInfoPage; import org.sonarqube.tests.Category4Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.WsResponse; import util.ItUtils; diff --git a/tests/src/test/java/org/sonarqube/tests/serverSystem/SystemStateTest.java b/tests/src/test/java/org/sonarqube/tests/serverSystem/SystemStateTest.java index a305187d881..62985921e4a 100644 --- a/tests/src/test/java/org/sonarqube/tests/serverSystem/SystemStateTest.java +++ b/tests/src/test/java/org/sonarqube/tests/serverSystem/SystemStateTest.java @@ -35,7 +35,7 @@ import org.junit.rules.DisableOnDebug; import org.junit.rules.TemporaryFolder; import org.junit.rules.TestRule; import org.junit.rules.Timeout; -import org.sonarqube.tests.Elasticsearch; +import org.sonarqube.qa.util.Elasticsearch; import org.sonarqube.ws.WsSystem; import org.sonarqube.ws.client.WsClient; diff --git a/tests/src/test/java/org/sonarqube/tests/settings/EmailsTest.java b/tests/src/test/java/org/sonarqube/tests/settings/EmailsTest.java index 8ce6439178b..78522a988a4 100644 --- a/tests/src/test/java/org/sonarqube/tests/settings/EmailsTest.java +++ b/tests/src/test/java/org/sonarqube/tests/settings/EmailsTest.java @@ -32,7 +32,7 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.tests.Category1Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Settings; import org.sonarqube.ws.client.PostRequest; import org.sonarqube.ws.client.setting.ValuesRequest; diff --git a/tests/src/test/java/org/sonarqube/tests/sourceCode/EncodingTest.java b/tests/src/test/java/org/sonarqube/tests/sourceCode/EncodingTest.java index 985a361fb90..397b83d5fbd 100644 --- a/tests/src/test/java/org/sonarqube/tests/sourceCode/EncodingTest.java +++ b/tests/src/test/java/org/sonarqube/tests/sourceCode/EncodingTest.java @@ -24,7 +24,8 @@ import org.sonarqube.tests.Category1Suite; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; +import util.selenium.Selenese; import static util.ItUtils.runProjectAnalysis; @@ -40,6 +41,6 @@ public class EncodingTest { public void support_japanese_charset() { runProjectAnalysis(orchestrator, "sourceCode/japanese-charset", "sonar.sourceEncoding", "Shift_JIS"); - tester.runHtmlTests("/sourceCode/EncodingTest/japanese_sources.html"); + Selenese.runSelenese(orchestrator, "/sourceCode/EncodingTest/japanese_sources.html"); } } diff --git a/tests/src/test/java/org/sonarqube/tests/sourceCode/HighlightingTest.java b/tests/src/test/java/org/sonarqube/tests/sourceCode/HighlightingTest.java index 6e682a74176..1f20c8c0700 100644 --- a/tests/src/test/java/org/sonarqube/tests/sourceCode/HighlightingTest.java +++ b/tests/src/test/java/org/sonarqube/tests/sourceCode/HighlightingTest.java @@ -20,11 +20,12 @@ package org.sonarqube.tests.sourceCode; import com.sonar.orchestrator.Orchestrator; -import org.sonarqube.tests.Category1Suite; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; +import org.sonarqube.tests.Category1Suite; +import util.selenium.Selenese; import static util.ItUtils.runProjectAnalysis; @@ -41,10 +42,10 @@ public class HighlightingTest { runProjectAnalysis(orchestrator, "highlighting/xoo-sample-with-highlighting-v2"); // SONAR-3893 & SONAR-4247 - tester.runHtmlTests("/sourceCode/HighlightingTest/syntax-highlighting.html"); + Selenese.runSelenese(orchestrator, "/sourceCode/HighlightingTest/syntax-highlighting.html"); // SONAR-4249 & SONAR-4250 - tester.runHtmlTests("/sourceCode/HighlightingTest/symbol-usages-highlighting.html"); + Selenese.runSelenese(orchestrator, "/sourceCode/HighlightingTest/symbol-usages-highlighting.html"); } // Check that E/S index is updated when file content is unchanged but plugin generates different syntax/symbol highlighting @@ -52,11 +53,11 @@ public class HighlightingTest { public void update_highlighting_even_when_code_unchanged() { runProjectAnalysis(orchestrator, "highlighting/xoo-sample-with-highlighting-v1"); - tester.runHtmlTests("/sourceCode/HighlightingTest/syntax-highlighting-v1.html"); + Selenese.runSelenese(orchestrator, "/sourceCode/HighlightingTest/syntax-highlighting-v1.html"); runProjectAnalysis(orchestrator, "highlighting/xoo-sample-with-highlighting-v2"); - tester.runHtmlTests("/sourceCode/HighlightingTest/syntax-highlighting-v2.html"); - tester.runHtmlTests("/sourceCode/HighlightingTest/symbol-usages-highlighting.html"); + Selenese.runSelenese(orchestrator, "/sourceCode/HighlightingTest/syntax-highlighting-v2.html"); + Selenese.runSelenese(orchestrator, "/sourceCode/HighlightingTest/symbol-usages-highlighting.html"); } } diff --git a/tests/src/test/java/org/sonarqube/tests/sourceCode/ProjectCodeTest.java b/tests/src/test/java/org/sonarqube/tests/sourceCode/ProjectCodeTest.java index 9318569d05f..0ee1c7ee0af 100644 --- a/tests/src/test/java/org/sonarqube/tests/sourceCode/ProjectCodeTest.java +++ b/tests/src/test/java/org/sonarqube/tests/sourceCode/ProjectCodeTest.java @@ -25,7 +25,7 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.tests.Category1Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.WsProjects.CreateWsResponse.Project; import static util.ItUtils.projectDir; diff --git a/tests/src/test/java/org/sonarqube/tests/startup/StartupIndexationTest.java b/tests/src/test/java/org/sonarqube/tests/startup/StartupIndexationTest.java index fbffa558d15..1e95f664ec3 100644 --- a/tests/src/test/java/org/sonarqube/tests/startup/StartupIndexationTest.java +++ b/tests/src/test/java/org/sonarqube/tests/startup/StartupIndexationTest.java @@ -33,8 +33,8 @@ import org.junit.rules.DisableOnDebug; import org.junit.rules.TemporaryFolder; import org.junit.rules.TestRule; import org.junit.rules.Timeout; -import org.sonarqube.tests.LogsTailer; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.LogsTailer; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.WsUsers; import org.sonarqube.ws.client.user.SearchRequest; diff --git a/tests/src/test/java/org/sonarqube/tests/telemetry/TelemetryOptOutTest.java b/tests/src/test/java/org/sonarqube/tests/telemetry/TelemetryOptOutTest.java index 98830cebbdc..00343e02239 100644 --- a/tests/src/test/java/org/sonarqube/tests/telemetry/TelemetryOptOutTest.java +++ b/tests/src/test/java/org/sonarqube/tests/telemetry/TelemetryOptOutTest.java @@ -28,7 +28,7 @@ import org.junit.BeforeClass; import org.junit.ClassRule; import org.junit.Test; import org.junit.rules.RuleChain; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.client.GetRequest; import static org.assertj.core.api.Assertions.assertThat; diff --git a/tests/src/test/java/org/sonarqube/tests/test/CoverageTest.java b/tests/src/test/java/org/sonarqube/tests/test/CoverageTest.java index 1680429d0b0..fb38e03cc32 100644 --- a/tests/src/test/java/org/sonarqube/tests/test/CoverageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/test/CoverageTest.java @@ -32,7 +32,7 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.skyscreamer.jsonassert.JSONAssert; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import static org.assertj.core.api.Assertions.assertThat; import static util.ItUtils.getMeasuresAsDoubleByMetricKey; diff --git a/tests/src/test/java/org/sonarqube/tests/test/CoverageTrackingTest.java b/tests/src/test/java/org/sonarqube/tests/test/CoverageTrackingTest.java index f6dd9b95355..c1a9545b55b 100644 --- a/tests/src/test/java/org/sonarqube/tests/test/CoverageTrackingTest.java +++ b/tests/src/test/java/org/sonarqube/tests/test/CoverageTrackingTest.java @@ -29,7 +29,7 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.skyscreamer.jsonassert.JSONAssert; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import static util.ItUtils.projectDir; diff --git a/tests/src/test/java/org/sonarqube/tests/ui/OrganizationUiExtensionsTest.java b/tests/src/test/java/org/sonarqube/tests/ui/OrganizationUiExtensionsTest.java index f12064e8c28..be96edbe2c2 100644 --- a/tests/src/test/java/org/sonarqube/tests/ui/OrganizationUiExtensionsTest.java +++ b/tests/src/test/java/org/sonarqube/tests/ui/OrganizationUiExtensionsTest.java @@ -26,7 +26,7 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.openqa.selenium.By; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations.Organization; import org.sonarqube.ws.WsUsers.CreateWsResponse.User; diff --git a/tests/src/test/java/org/sonarqube/tests/ui/UiExtensionsTest.java b/tests/src/test/java/org/sonarqube/tests/ui/UiExtensionsTest.java index f3215b096bc..4a8bbfe31da 100644 --- a/tests/src/test/java/org/sonarqube/tests/ui/UiExtensionsTest.java +++ b/tests/src/test/java/org/sonarqube/tests/ui/UiExtensionsTest.java @@ -25,11 +25,12 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.openqa.selenium.By; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.WsProjects; import org.sonarqube.ws.WsUsers.CreateWsResponse.User; import org.sonarqube.ws.client.project.CreateRequest; import util.ItUtils; +import util.selenium.Selenese; import static com.codeborne.selenide.Condition.text; import static com.codeborne.selenide.Selenide.$; @@ -46,7 +47,7 @@ public class UiExtensionsTest { @Test public void test_static_files() { - tester.runHtmlTests("/ui/UiExtensionsTest/static-files.html"); + Selenese.runSelenese(orchestrator, "/ui/UiExtensionsTest/static-files.html"); } @Test diff --git a/tests/src/test/java/org/sonarqube/tests/user/ForceAuthenticationTest.java b/tests/src/test/java/org/sonarqube/tests/user/ForceAuthenticationTest.java index 7d731b7b773..d09aa110288 100644 --- a/tests/src/test/java/org/sonarqube/tests/user/ForceAuthenticationTest.java +++ b/tests/src/test/java/org/sonarqube/tests/user/ForceAuthenticationTest.java @@ -26,7 +26,7 @@ import org.junit.Before; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.WsUsers.CreateWsResponse.User; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.PostRequest; diff --git a/tests/src/test/java/org/sonarqube/tests/user/LocalAuthenticationTest.java b/tests/src/test/java/org/sonarqube/tests/user/LocalAuthenticationTest.java index 8dc84a3ad2e..30203f58e6a 100644 --- a/tests/src/test/java/org/sonarqube/tests/user/LocalAuthenticationTest.java +++ b/tests/src/test/java/org/sonarqube/tests/user/LocalAuthenticationTest.java @@ -26,10 +26,10 @@ import org.junit.After; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; +import org.sonarqube.qa.util.Tester; import org.sonarqube.qa.util.pageobjects.LoginPage; import org.sonarqube.qa.util.pageobjects.Navigation; import org.sonarqube.tests.Category4Suite; -import org.sonarqube.tests.Tester; import org.sonarqube.ws.WsUserTokens; import org.sonarqube.ws.WsUsers; import org.sonarqube.ws.WsUsers.CreateWsResponse.User; @@ -44,6 +44,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.selenium.Selenese; import static java.lang.String.format; import static java.util.Arrays.asList; @@ -162,7 +163,7 @@ public class LocalAuthenticationTest { public void test_authentication_in_ui() { tester.users().generate(u -> u.setLogin("simple-user").setPassword("password")); tester.users().generateAdministrator(u -> u.setLogin("admin-user").setPassword("admin-user")); - tester.runHtmlTests( + Selenese.runSelenese(orchestrator, "/user/LocalAuthenticationTest/login_successful.html", "/user/LocalAuthenticationTest/login_wrong_password.html", "/user/LocalAuthenticationTest/should_not_be_unlogged_when_going_to_login_page.html"); @@ -172,8 +173,8 @@ public class LocalAuthenticationTest { public void test_authentication_redirects_in_ui() { tester.users().generate(u -> u.setLogin("simple-user").setPassword("password")); tester.users().generateAdministrator(u -> u.setLogin("admin-user").setPassword("admin-user")); - tester.runHtmlTests( - "/user/LocalAuthenticationTest/redirect_to_login_when_not_enough_privilege.html", + Selenese.runSelenese(orchestrator, + "/user/LocalAuthenticationTest/redirect_to_login_when_not_enough_privilege.html", // SONAR-2132 "/user/LocalAuthenticationTest/redirect_to_original_url_after_direct_login.html", "/user/LocalAuthenticationTest/redirect_to_original_url_with_parameters_after_direct_login.html", @@ -187,7 +188,7 @@ public class LocalAuthenticationTest { tester.users().generateAdministrator(u -> u.setLogin("admin-user").setPassword("admin-user")); setServerProperty(orchestrator, "sonar.forceAuthentication", "true"); - tester.runHtmlTests( + Selenese.runSelenese(orchestrator, // SONAR-3473 "/user/LocalAuthenticationTest/force-authentication.html"); } diff --git a/tests/src/test/java/org/sonarqube/tests/user/MyAccountPageTest.java b/tests/src/test/java/org/sonarqube/tests/user/MyAccountPageTest.java index 58877d221e2..ec0961811d3 100644 --- a/tests/src/test/java/org/sonarqube/tests/user/MyAccountPageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/user/MyAccountPageTest.java @@ -27,7 +27,7 @@ import org.junit.Rule; import org.junit.Test; import org.sonarqube.qa.util.pageobjects.Navigation; import org.sonarqube.tests.Category4Suite; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.WsUsers.CreateWsResponse.User; import org.sonarqube.ws.client.PostRequest; diff --git a/tests/src/test/java/org/sonarqube/tests/user/OAuth2IdentityProviderTest.java b/tests/src/test/java/org/sonarqube/tests/user/OAuth2IdentityProviderTest.java index 62eb79412c2..740fd28835c 100644 --- a/tests/src/test/java/org/sonarqube/tests/user/OAuth2IdentityProviderTest.java +++ b/tests/src/test/java/org/sonarqube/tests/user/OAuth2IdentityProviderTest.java @@ -32,14 +32,15 @@ import org.junit.Before; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; +import org.sonarqube.qa.util.Tester; import org.sonarqube.qa.util.pageobjects.Navigation; import org.sonarqube.tests.Category4Suite; -import org.sonarqube.tests.Tester; import org.sonarqube.ws.WsUsers.SearchWsResponse.User; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.WsResponse; import org.sonarqube.ws.client.permission.AddUserWsRequest; import org.sonarqube.ws.client.user.CreateRequest; +import util.selenium.Selenese; import static com.codeborne.selenide.Condition.visible; import static com.codeborne.selenide.Selenide.$; @@ -146,7 +147,7 @@ public class OAuth2IdentityProviderTest { // As this property is null, the plugin will throw an exception tester.settings().setGlobalSettings("sonar.auth.fake-oauth2-id-provider.user", null); - tester.runHtmlTests("/user/OAuth2IdentityProviderTest/display_unauthorized_page_when_authentication_failed.html"); + Selenese.runSelenese(orchestrator, "/user/OAuth2IdentityProviderTest/display_unauthorized_page_when_authentication_failed.html"); assertThatUserDoesNotExist(USER_LOGIN); } @@ -157,7 +158,7 @@ public class OAuth2IdentityProviderTest { enablePlugin(); tester.settings().setGlobalSettings("sonar.auth.fake-oauth2-id-provider.allowsUsersToSignUp", "false"); - tester.runHtmlTests("/user/OAuth2IdentityProviderTest/fail_to_authenticate_when_not_allowed_to_sign_up.html"); + Selenese.runSelenese(orchestrator, "/user/OAuth2IdentityProviderTest/fail_to_authenticate_when_not_allowed_to_sign_up.html"); assertThatUserDoesNotExist(USER_LOGIN); } @@ -168,7 +169,7 @@ public class OAuth2IdentityProviderTest { enablePlugin(); tester.settings().setGlobalSettings("sonar.auth.fake-oauth2-id-provider.throwUnauthorizedMessage", "true"); - tester.runHtmlTests("/user/OAuth2IdentityProviderTest/display_message_in_ui_but_not_in_log_when_unauthorized_exception.html"); + Selenese.runSelenese(orchestrator, "/user/OAuth2IdentityProviderTest/display_message_in_ui_but_not_in_log_when_unauthorized_exception.html"); File logFile = orchestrator.getServer().getWebLogs(); assertThat(FileUtils.readFileToString(logFile)).doesNotContain("A functional error has happened"); @@ -183,7 +184,7 @@ public class OAuth2IdentityProviderTest { enablePlugin(); tester.users().generate(u -> u.setLogin("another").setName("Another").setEmail(USER_EMAIL).setPassword("another")); - tester.runHtmlTests("/user/OAuth2IdentityProviderTest/fail_when_email_already_exists.html"); + Selenese.runSelenese(orchestrator, "/user/OAuth2IdentityProviderTest/fail_when_email_already_exists.html"); File logFile = orchestrator.getServer().getWebLogs(); assertThat(FileUtils.readFileToString(logFile)) diff --git a/tests/src/test/java/org/sonarqube/tests/user/OnboardingTest.java b/tests/src/test/java/org/sonarqube/tests/user/OnboardingTest.java index 205e17d10ab..f0f9c614629 100644 --- a/tests/src/test/java/org/sonarqube/tests/user/OnboardingTest.java +++ b/tests/src/test/java/org/sonarqube/tests/user/OnboardingTest.java @@ -25,7 +25,7 @@ import org.junit.Before; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.WsUsers.CreateWsResponse.User; import org.sonarqube.ws.client.WsClient; import util.ItUtils; diff --git a/tests/src/test/java/org/sonarqube/tests/user/OrganizationIdentityProviderTest.java b/tests/src/test/java/org/sonarqube/tests/user/OrganizationIdentityProviderTest.java index 767c76f70db..22e1dee4984 100644 --- a/tests/src/test/java/org/sonarqube/tests/user/OrganizationIdentityProviderTest.java +++ b/tests/src/test/java/org/sonarqube/tests/user/OrganizationIdentityProviderTest.java @@ -27,7 +27,7 @@ import org.junit.Before; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.WsUserGroups.Group; import org.sonarqube.ws.WsUsers.CreateWsResponse.User; import org.sonarqube.ws.client.GetRequest; diff --git a/tests/src/test/java/org/sonarqube/tests/user/RealmAuthenticationTest.java b/tests/src/test/java/org/sonarqube/tests/user/RealmAuthenticationTest.java index f1ed633686c..aee0917c8f8 100644 --- a/tests/src/test/java/org/sonarqube/tests/user/RealmAuthenticationTest.java +++ b/tests/src/test/java/org/sonarqube/tests/user/RealmAuthenticationTest.java @@ -37,7 +37,7 @@ import org.sonar.wsclient.connectors.HttpClient4Connector; import org.sonar.wsclient.services.AuthenticationQuery; import org.sonar.wsclient.user.UserParameters; import org.sonarqube.qa.util.pageobjects.SystemInfoPage; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.WsResponse; import org.sonarqube.ws.client.user.CreateRequest; diff --git a/tests/src/test/java/org/sonarqube/tests/user/UserEsResilienceTest.java b/tests/src/test/java/org/sonarqube/tests/user/UserEsResilienceTest.java index 3f2d69fe898..7aa50328352 100644 --- a/tests/src/test/java/org/sonarqube/tests/user/UserEsResilienceTest.java +++ b/tests/src/test/java/org/sonarqube/tests/user/UserEsResilienceTest.java @@ -30,7 +30,7 @@ import org.junit.rules.DisableOnDebug; import org.junit.rules.TestRule; import org.junit.rules.Timeout; import org.sonarqube.tests.Byteman; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.WsUsers.CreateWsResponse.User; import org.sonarqube.ws.client.user.SearchRequest; import org.sonarqube.ws.client.user.UpdateRequest; diff --git a/tests/src/test/java/util/ItUtils.java b/tests/src/test/java/util/ItUtils.java index e11e55d4d35..b10257c2c53 100644 --- a/tests/src/test/java/util/ItUtils.java +++ b/tests/src/test/java/util/ItUtils.java @@ -61,7 +61,8 @@ import org.junit.Assert; import org.sonar.wsclient.issue.Issue; import org.sonar.wsclient.issue.IssueClient; import org.sonar.wsclient.issue.IssueQuery; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.SettingTester; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.WsComponents.Component; import org.sonarqube.ws.WsMeasures; import org.sonarqube.ws.WsMeasures.Measure; @@ -253,7 +254,7 @@ public class ItUtils { } /** - * @deprecated replaced by {@link org.sonarqube.tests.SettingTester#setGlobalSetting(String, String)} + * @deprecated replaced by {@link SettingTester#setGlobalSetting(String, String)} */ @Deprecated public static void setServerProperty(Orchestrator orchestrator, String key, @Nullable String value) { @@ -261,7 +262,7 @@ public class ItUtils { } /** - * @deprecated replaced by {@link org.sonarqube.tests.SettingTester#setProjectSetting(String, String, String)} + * @deprecated replaced by {@link SettingTester#setProjectSetting(String, String, String)} */ @Deprecated public static void setServerProperty(Orchestrator orchestrator, @Nullable String componentKey, String key, @Nullable String value) { @@ -273,7 +274,7 @@ public class ItUtils { } /** - * @deprecated replaced by {@link org.sonarqube.tests.SettingTester#setGlobalSetting(String, String)} or {@link org.sonarqube.tests.SettingTester#setProjectSettings(String, String...)} + * @deprecated replaced by {@link SettingTester#setGlobalSetting(String, String)} or {@link SettingTester#setProjectSettings(String, String...)} */ @Deprecated public static void setServerProperties(Orchestrator orchestrator, @Nullable String componentKey, String... properties) { @@ -283,7 +284,7 @@ public class ItUtils { } /** - * @deprecated replaced by {@link org.sonarqube.tests.SettingTester#resetSettings(String...)} + * @deprecated replaced by {@link SettingTester#resetSettings(String...)} */ @Deprecated public static void resetSettings(Orchestrator orchestrator, @Nullable String componentKey, String... keys) { diff --git a/tests/src/test/java/util/selenium/Selenese.java b/tests/src/test/java/util/selenium/Selenese.java index 187e33d9024..ce25edf5f17 100644 --- a/tests/src/test/java/util/selenium/Selenese.java +++ b/tests/src/test/java/util/selenium/Selenese.java @@ -23,7 +23,7 @@ import com.sonar.orchestrator.Orchestrator; import java.io.File; import javax.annotation.Nullable; import org.apache.commons.io.FileUtils; -import org.sonarqube.tests.Tester; +import org.sonarqube.qa.util.Tester; /** * Selenium HTML tests, generally written with Selenium IDE @@ -43,7 +43,7 @@ public final class Selenese { } /** - * @deprecated replaced by {@link Tester#runHtmlTests(String...)} + * Replaced by Selenide */ @Deprecated public static void runSelenese(Orchestrator orchestrator, String... htmlFiles) { diff --git a/tests/src/test/java/util/user/GroupManagement.java b/tests/src/test/java/util/user/GroupManagement.java index 41b362f3e0a..609a20f65bc 100644 --- a/tests/src/test/java/util/user/GroupManagement.java +++ b/tests/src/test/java/util/user/GroupManagement.java @@ -22,9 +22,10 @@ package util.user; import java.util.List; import java.util.Optional; import javax.annotation.Nullable; +import org.sonarqube.qa.util.Tester; /** - * @deprecated replaced by {@link org.sonarqube.tests.Tester} + * @deprecated replaced by {@link Tester} */ @Deprecated public interface GroupManagement { diff --git a/tests/src/test/java/util/user/Groups.java b/tests/src/test/java/util/user/Groups.java index 7b87547bc17..8aa1f63c869 100644 --- a/tests/src/test/java/util/user/Groups.java +++ b/tests/src/test/java/util/user/Groups.java @@ -21,9 +21,10 @@ package util.user; import com.google.gson.Gson; import java.util.List; +import org.sonarqube.qa.util.Tester; /** - * @deprecated replaced by {@link org.sonarqube.tests.Tester} + * @deprecated replaced by {@link Tester} */ @Deprecated diff --git a/tests/src/test/java/util/user/UserRule.java b/tests/src/test/java/util/user/UserRule.java index fe93e631c01..994e4a0c2e7 100644 --- a/tests/src/test/java/util/user/UserRule.java +++ b/tests/src/test/java/util/user/UserRule.java @@ -30,6 +30,7 @@ import javax.annotation.CheckForNull; import javax.annotation.Nonnull; import javax.annotation.Nullable; import org.junit.rules.ExternalResource; +import org.sonarqube.qa.util.Tester; import org.sonarqube.ws.Organizations; import org.sonarqube.ws.WsUsers; import org.sonarqube.ws.client.GetRequest; @@ -51,7 +52,7 @@ import static org.assertj.guava.api.Assertions.assertThat; import static util.ItUtils.newAdminWsClient; /** - * @deprecated replaced by {@link org.sonarqube.tests.Tester} + * @deprecated replaced by {@link Tester} */ @Deprecated public class UserRule extends ExternalResource implements GroupManagement { -- 2.39.5