From a7b805384a46f7a700d3917757899e251f2f8207 Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Thu, 9 Nov 2017 16:58:27 +0100 Subject: [PATCH] Move pageobjects to new module sonar-qa-util --- server/pom.xml | 1 + server/sonar-qa-util/pom.xml | 46 +++++++++++++++ .../sonarqube/qa/util}/SelenideConfig.java | 2 +- .../org/sonarqube/qa/util/package-info.java | 23 ++++++++ .../util}/pageobjects/BackgroundTaskItem.java | 22 ++++--- .../pageobjects/BackgroundTasksPage.java | 12 ++-- .../qa/util}/pageobjects/EncryptionPage.java | 24 ++++---- .../qa/util}/pageobjects/LoginPage.java | 32 +++++----- .../qa/util}/pageobjects/MarketplacePage.java | 17 +++--- .../qa/util}/pageobjects/Navigation.java | 53 ++++++++--------- .../util}/pageobjects/NotificationsPage.java | 24 ++++---- .../pageobjects/ProjectActivityPage.java | 19 +++--- .../pageobjects/ProjectAnalysisItem.java | 36 ++++++----- .../qa/util}/pageobjects/ProjectCodePage.java | 22 +++---- .../pageobjects/ProjectDashboardPage.java | 49 ++++++++------- .../qa/util}/pageobjects/ProjectKeyPage.java | 59 +++++++++---------- .../qa/util}/pageobjects/ProjectLinkItem.java | 2 +- .../util}/pageobjects/ProjectLinksPage.java | 11 ++-- .../pageobjects/ProjectPermissionsPage.java | 24 ++++---- .../pageobjects/ProjectQualityGatePage.java | 17 +++--- .../pageobjects/ProjectsManagementPage.java | 35 +++++------ .../qa/util}/pageobjects/QualityGatePage.java | 18 +++--- .../util}/pageobjects/QualityProfilePage.java | 26 ++++---- .../qa/util}/pageobjects/RuleDetails.java | 9 ++- .../qa/util}/pageobjects/RuleItem.java | 2 +- .../qa/util}/pageobjects/RulesPage.java | 28 ++++----- .../qa/util}/pageobjects/SystemInfoPage.java | 19 +++--- .../util}/pageobjects/SystemInfoPageItem.java | 25 ++++---- .../qa/util}/pageobjects/issues/Issue.java | 22 ++++--- .../util}/pageobjects/issues/IssuesPage.java | 34 +++++------ .../pageobjects/measures/MeasureContent.java | 16 +++-- .../pageobjects/measures/MeasuresPage.java | 44 +++++++------- .../pageobjects/organization/MemberItem.java | 9 ++- .../pageobjects/organization/MembersPage.java | 26 ++++---- .../qa/util/pageobjects/package-info.java | 23 ++++++++ .../util}/pageobjects/projects/FacetItem.java | 2 +- .../pageobjects/projects/ProjectItem.java | 2 +- .../pageobjects/projects/ProjectsPage.java | 34 +++++------ .../settings/PropertySetInput.java | 7 +-- .../pageobjects/settings/SettingsPage.java | 34 +++++------ tests/pom.xml | 6 ++ .../test/java/org/sonarqube/tests/Tester.java | 2 +- .../sonarqube/tests/issue/IssuesPageTest.java | 6 +- .../issue/OrganizationIssueAssignTest.java | 2 +- .../issue/OrganizationIssuesPageTest.java | 2 +- .../tests/marketplace/UpdateCenterTest.java | 4 +- .../measure/DifferentialPeriodsTest.java | 2 +- .../tests/measure/ProjectDashboardTest.java | 5 +- .../measure/ProjectMeasuresPageTest.java | 6 +- .../tests/organization/BillingTest.java | 2 +- .../OrganizationMembershipUiTest.java | 2 +- .../BackgroundTasksTest.java | 6 +- .../ProjectAdministrationTest.java | 6 +- .../ProjectKeyUpdatePageTest.java | 4 +- .../ProjectLinksPageTest.java | 6 +- .../ProjectPermissionsTest.java | 4 +- .../ProjectQualityGatePageTest.java | 4 +- .../ProjectVisibilityPageTest.java | 4 +- .../projectEvent/ProjectActivityPageTest.java | 6 +- .../projectSearch/LeakProjectsPageTest.java | 2 +- .../tests/projectSearch/ProjectsPageTest.java | 4 +- .../OrganizationQualityGateUiTest.java | 4 +- .../tests/qualityGate/QualityGateUiTest.java | 4 +- .../OrganizationQualityProfilesUiTest.java | 6 +- .../qualityProfile/QualityProfilesUiTest.java | 2 +- .../sonarqube/tests/rule/RulesPageTest.java | 2 +- .../tests/serverSystem/SystemInfoTest.java | 2 +- .../tests/settings/PropertySetsTest.java | 4 +- .../SettingsTestRestartingOrchestrator.java | 4 +- .../sonarqube/tests/ui/SourceViewerTest.java | 2 +- .../java/org/sonarqube/tests/ui/UiTest.java | 2 +- .../tests/user/BaseIdentityProviderTest.java | 4 +- .../tests/user/ForceAuthenticationTest.java | 2 +- .../tests/user/LocalAuthenticationTest.java | 4 +- .../tests/user/MyAccountPageTest.java | 4 +- .../user/OAuth2IdentityProviderTest.java | 2 +- .../tests/user/RealmAuthenticationTest.java | 2 +- .../java/util/selenium/SeleneseRunner.java | 2 +- 78 files changed, 532 insertions(+), 515 deletions(-) create mode 100644 server/sonar-qa-util/pom.xml rename {tests/src/test/java/org/sonarqube/pageobjects => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/SelenideConfig.java (98%) create mode 100644 server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/package-info.java rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/BackgroundTaskItem.java (72%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/BackgroundTasksPage.java (81%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/EncryptionPage.java (67%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/LoginPage.java (69%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/MarketplacePage.java (73%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/Navigation.java (85%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/NotificationsPage.java (87%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/ProjectActivityPage.java (76%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/ProjectAnalysisItem.java (74%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/ProjectCodePage.java (70%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/ProjectDashboardPage.java (65%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/ProjectKeyPage.java (51%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/ProjectLinkItem.java (97%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/ProjectLinksPage.java (84%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/ProjectPermissionsPage.java (66%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/ProjectQualityGatePage.java (72%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/ProjectsManagementPage.java (58%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/QualityGatePage.java (70%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/QualityProfilePage.java (65%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/RuleDetails.java (83%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/RuleItem.java (96%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/RulesPage.java (63%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/SystemInfoPage.java (69%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/SystemInfoPageItem.java (72%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/issues/Issue.java (69%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/issues/IssuesPage.java (67%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/measures/MeasureContent.java (79%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/measures/MeasuresPage.java (59%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/organization/MemberItem.java (92%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/organization/MembersPage.java (71%) create mode 100644 server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/package-info.java rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/projects/FacetItem.java (96%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/projects/ProjectItem.java (96%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/projects/ProjectsPage.java (77%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/settings/PropertySetInput.java (90%) rename {tests/src/test/java/org/sonarqube => server/sonar-qa-util/src/main/java/org/sonarqube/qa/util}/pageobjects/settings/SettingsPage.java (61%) diff --git a/server/pom.xml b/server/pom.xml index 99a700f2a58..5b27942fb00 100644 --- a/server/pom.xml +++ b/server/pom.xml @@ -23,6 +23,7 @@ sonar-ce sonar-plugin-bridge sonar-web + sonar-qa-util diff --git a/server/sonar-qa-util/pom.xml b/server/sonar-qa-util/pom.xml new file mode 100644 index 00000000000..a9534332a89 --- /dev/null +++ b/server/sonar-qa-util/pom.xml @@ -0,0 +1,46 @@ + + + 4.0.0 + + org.sonarsource.sonarqube + server + 7.0-SNAPSHOT + .. + + sonar-qa-util + SonarQube :: Utilities for QA Tests + + + src/main/java/**/* + + + + + com.codeborne + selenide + 4.4.3 + + + org.assertj + assertj-core + + + org.sonarsource.orchestrator + sonar-orchestrator + ${orchestrator.version} + + + com.google.guava + guava + + 21.0 + + + + com.google.code.findbugs + jsr305 + provided + + + + diff --git a/tests/src/test/java/org/sonarqube/pageobjects/SelenideConfig.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/SelenideConfig.java similarity index 98% rename from tests/src/test/java/org/sonarqube/pageobjects/SelenideConfig.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/SelenideConfig.java index 32c6850f917..155ded5ee56 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/SelenideConfig.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/SelenideConfig.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.pageobjects; +package org.sonarqube.qa.util; import com.codeborne.selenide.Configuration; import com.codeborne.selenide.WebDriverRunner; diff --git a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/package-info.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/package-info.java new file mode 100644 index 00000000000..696f5531c1d --- /dev/null +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/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; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/tests/src/test/java/org/sonarqube/pageobjects/BackgroundTaskItem.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/BackgroundTaskItem.java similarity index 72% rename from tests/src/test/java/org/sonarqube/pageobjects/BackgroundTaskItem.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/BackgroundTaskItem.java index aedd45ed305..0c86d3293b1 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/BackgroundTaskItem.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/BackgroundTaskItem.java @@ -17,14 +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.pageobjects; +package org.sonarqube.qa.util.pageobjects; +import com.codeborne.selenide.Condition; +import com.codeborne.selenide.Selenide; import com.codeborne.selenide.SelenideElement; -import static com.codeborne.selenide.Condition.hasText; -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; - public class BackgroundTaskItem { private final SelenideElement elt; @@ -39,29 +37,29 @@ public class BackgroundTaskItem { public BackgroundTaskItem openActions() { elt.$(".js-task-action > .dropdown-toggle").click(); - elt.$(".js-task-action > .dropdown-menu").shouldBe(visible); + elt.$(".js-task-action > .dropdown-menu").shouldBe(Condition.visible); return this; } - public BackgroundTaskItem openScannerContext () { + public BackgroundTaskItem openScannerContext() { elt.$(".js-task-show-scanner-context").click(); - $(".js-task-scanner-context").shouldBe(visible); + Selenide.$(".js-task-scanner-context").shouldBe(Condition.visible); return this; } public BackgroundTaskItem assertScannerContextContains(String text) { - $(".js-task-scanner-context").should(hasText(text)); + Selenide.$(".js-task-scanner-context").should(Condition.hasText(text)); return this; } - public BackgroundTaskItem openErrorStacktrace () { + public BackgroundTaskItem openErrorStacktrace() { elt.$(".js-task-show-stacktrace").click(); - $(".js-task-stacktrace").shouldBe(visible); + Selenide.$(".js-task-stacktrace").shouldBe(Condition.visible); return this; } public BackgroundTaskItem assertErrorStacktraceContains(String text) { - $(".js-task-stacktrace").should(hasText(text)); + Selenide.$(".js-task-stacktrace").should(Condition.hasText(text)); return this; } } diff --git a/tests/src/test/java/org/sonarqube/pageobjects/BackgroundTasksPage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/BackgroundTasksPage.java similarity index 81% rename from tests/src/test/java/org/sonarqube/pageobjects/BackgroundTasksPage.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/BackgroundTasksPage.java index 432e1addd8c..a14bc2cebff 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/BackgroundTasksPage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/BackgroundTasksPage.java @@ -17,25 +17,23 @@ * 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.pageobjects; +package org.sonarqube.qa.util.pageobjects; +import com.codeborne.selenide.Condition; import com.codeborne.selenide.ElementsCollection; +import com.codeborne.selenide.Selenide; import java.util.List; import java.util.stream.Collectors; import org.openqa.selenium.By; -import static com.codeborne.selenide.Condition.exist; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.$$; - public class BackgroundTasksPage { public BackgroundTasksPage() { - $(By.cssSelector(".background-tasks")).should(exist); + Selenide.$(By.cssSelector(".background-tasks")).should(Condition.exist); } public ElementsCollection getTasks() { - return $$(".background-tasks > tbody > tr"); + return Selenide.$$(".background-tasks > tbody > tr"); } public List getTasksAsItems() { diff --git a/tests/src/test/java/org/sonarqube/pageobjects/EncryptionPage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/EncryptionPage.java similarity index 67% rename from tests/src/test/java/org/sonarqube/pageobjects/EncryptionPage.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/EncryptionPage.java index f0c68849bfe..0e3bac79722 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/EncryptionPage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/EncryptionPage.java @@ -17,37 +17,35 @@ * 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.pageobjects; +package org.sonarqube.qa.util.pageobjects; +import com.codeborne.selenide.Condition; +import com.codeborne.selenide.Selenide; import com.codeborne.selenide.SelenideElement; -import static com.codeborne.selenide.Condition.exist; -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; - public class EncryptionPage extends Navigation { public EncryptionPage() { - $("#encryption-page").should(exist); + Selenide.$("#encryption-page").should(Condition.exist); } public SelenideElement generationForm() { - return $("#generate-secret-key-form"); + return Selenide.$("#generate-secret-key-form"); } public SelenideElement newSecretKey() { - return $("#secret-key"); + return Selenide.$("#secret-key"); } public String encryptValue(String value) { - $("#encryption-form-value").val(value); - $("#encryption-form").submit(); - return $("#encrypted-value").shouldBe(visible).val(); + Selenide.$("#encryption-form-value").val(value); + Selenide.$("#encryption-form").submit(); + return Selenide.$("#encrypted-value").shouldBe(Condition.visible).val(); } public EncryptionPage generateNewKey() { - $("#encryption-new-key-form").submit(); - $("#generate-secret-key-form").shouldBe(visible); + Selenide.$("#encryption-new-key-form").submit(); + Selenide.$("#generate-secret-key-form").shouldBe(Condition.visible); return this; } } diff --git a/tests/src/test/java/org/sonarqube/pageobjects/LoginPage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/LoginPage.java similarity index 69% rename from tests/src/test/java/org/sonarqube/pageobjects/LoginPage.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/LoginPage.java index bb17d0961e3..b210e01fb2e 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/LoginPage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/LoginPage.java @@ -17,19 +17,17 @@ * 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.pageobjects; +package org.sonarqube.qa.util.pageobjects; import com.codeborne.selenide.Condition; +import com.codeborne.selenide.Selenide; import com.codeborne.selenide.SelenideElement; import org.openqa.selenium.By; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.page; - public class LoginPage { public LoginPage() { - $("#login_form").should(Condition.exist); + Selenide.$("#login_form").should(Condition.exist); } public Navigation submitCredentials(String login) { @@ -41,26 +39,26 @@ public class LoginPage { } public Navigation useOAuth2() { - $(".oauth-providers a").click(); - return page(Navigation.class); + Selenide.$(".oauth-providers a").click(); + return Selenide.page(Navigation.class); } public LoginPage submitWrongCredentials(String login, String password) { - $("#login").val(login); - $("#password").val(password); - $(By.name("commit")).click(); - return page(LoginPage.class); + Selenide.$("#login").val(login); + Selenide.$("#password").val(password); + Selenide.$(By.name("commit")).click(); + return Selenide.page(LoginPage.class); } public SelenideElement getErrorMessage() { - return $(".process-spinner-failed"); + return Selenide.$(".process-spinner-failed"); } private T submitCredentials(String login, String password, Class expectedResultPage) { - $("#login").val(login); - $("#password").val(password); - $(By.name("commit")).click(); - $("#login").should(Condition.disappear); - return page(expectedResultPage); + Selenide.$("#login").val(login); + Selenide.$("#password").val(password); + Selenide.$(By.name("commit")).click(); + Selenide.$("#login").should(Condition.disappear); + return Selenide.page(expectedResultPage); } } diff --git a/tests/src/test/java/org/sonarqube/pageobjects/MarketplacePage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/MarketplacePage.java similarity index 73% rename from tests/src/test/java/org/sonarqube/pageobjects/MarketplacePage.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/MarketplacePage.java index 8e69c92e795..908bad3b3e9 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/MarketplacePage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/MarketplacePage.java @@ -17,28 +17,25 @@ * 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.pageobjects; +package org.sonarqube.qa.util.pageobjects; import com.codeborne.selenide.Condition; +import com.codeborne.selenide.Selenide; import com.codeborne.selenide.SelenideElement; -import org.yaml.snakeyaml.error.Mark; - -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.$$; public class MarketplacePage { public MarketplacePage() { - $("#marketplace-page").should(Condition.exist); + Selenide.$("#marketplace-page").should(Condition.exist); } public MarketplacePage hasPendingPlugins(String text) { - $(".js-pending").should(Condition.exist).shouldHave(Condition.text(text)); + Selenide.$(".js-pending").should(Condition.exist).shouldHave(Condition.text(text)); return this; } public MarketplacePage hasPluginsCount(int count) { - $$("#marketplace-plugins>ul>li").shouldHaveSize(count); + Selenide.$$("#marketplace-plugins>ul>li").shouldHaveSize(count); return this; } @@ -48,7 +45,7 @@ public class MarketplacePage { } public MarketplacePage searchPlugin(String search) { - $("#marketplace-search input.search-box-input").should(Condition.exist).sendKeys(search); + Selenide.$("#marketplace-search input.search-box-input").should(Condition.exist).sendKeys(search); return this; } @@ -58,6 +55,6 @@ public class MarketplacePage { } private SelenideElement getPlugin(String name) { - return $$(".js-plugin-name").findBy(Condition.text(name)).should(Condition.exist).parent().parent().parent(); + return Selenide.$$(".js-plugin-name").findBy(Condition.text(name)).should(Condition.exist).parent().parent().parent(); } } diff --git a/tests/src/test/java/org/sonarqube/pageobjects/Navigation.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/Navigation.java similarity index 85% rename from tests/src/test/java/org/sonarqube/pageobjects/Navigation.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/Navigation.java index 8dbe70f84f4..67cea197772 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/Navigation.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/Navigation.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.pageobjects; +package org.sonarqube.qa.util.pageobjects; import com.codeborne.selenide.Condition; import com.codeborne.selenide.Selenide; @@ -31,34 +31,25 @@ import javax.annotation.Nullable; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.html5.WebStorage; -import org.sonarqube.pageobjects.issues.IssuesPage; -import org.sonarqube.pageobjects.measures.MeasuresPage; -import org.sonarqube.pageobjects.organization.MembersPage; -import org.sonarqube.pageobjects.projects.ProjectsPage; -import org.sonarqube.pageobjects.settings.SettingsPage; -import org.sonarqube.tests.Tester; - -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.clearBrowserLocalStorage; -import static com.codeborne.selenide.Selenide.page; +import org.sonarqube.qa.util.SelenideConfig; +import org.sonarqube.qa.util.pageobjects.issues.IssuesPage; +import org.sonarqube.qa.util.pageobjects.measures.MeasuresPage; +import org.sonarqube.qa.util.pageobjects.organization.MembersPage; +import org.sonarqube.qa.util.pageobjects.projects.ProjectsPage; +import org.sonarqube.qa.util.pageobjects.settings.SettingsPage; public class Navigation { public Navigation() { - $("#content").shouldBe(Condition.exist); + Selenide.$("#content").shouldBe(Condition.exist); } - /** - * @deprecated use {@link Tester#openBrowser()} - */ - @Deprecated public static Navigation create(Orchestrator orchestrator) { WebDriver driver = SelenideConfig.configure(orchestrator); driver.manage().deleteAllCookies(); clearStorage(d -> d.getLocalStorage().clear()); clearStorage(d -> d.getSessionStorage().clear()); - clearStorage(d -> clearBrowserLocalStorage()); + clearStorage(d -> Selenide.clearBrowserLocalStorage()); return Selenide.open("/", Navigation.class); } @@ -165,7 +156,7 @@ public class Navigation { public QualityProfilePage openQualityProfile(String language, String name, String organization) { String profileUrl = "/quality_profiles/show?language=" + language + "&name=" + name; - return open("/organizations/" + organization + profileUrl , QualityProfilePage.class); + return open("/organizations/" + organization + profileUrl, QualityProfilePage.class); } public BackgroundTasksPage openBackgroundTasksPage() { @@ -185,7 +176,9 @@ public class Navigation { return open("/admin/system", SystemInfoPage.class); } - public MarketplacePage openMarketplace() { return open("/admin/marketplace", MarketplacePage.class);} + public MarketplacePage openMarketplace() { + return open("/admin/marketplace", MarketplacePage.class); + } public NotificationsPage openNotifications() { return open("/account/notifications", NotificationsPage.class); @@ -213,18 +206,18 @@ public class Navigation { } public Navigation shouldBeLoggedIn() { - loggedInDropdown().should(visible); + loggedInDropdown().should(Condition.visible); return this; } public Navigation shouldNotBeLoggedIn() { - logInLink().should(visible); + logInLink().should(Condition.visible); return this; } public LoginPage logIn() { logInLink().click(); - return page(LoginPage.class); + return Selenide.page(LoginPage.class); } public Navigation logOut() { @@ -241,31 +234,31 @@ public class Navigation { } public SelenideElement clickOnQualityProfiles() { - return $(By.linkText("Quality Profiles")); + return Selenide.$(By.linkText("Quality Profiles")); } public SelenideElement getRightBar() { - return $("#global-navigation .navbar-right"); + return Selenide.$("#global-navigation .navbar-right"); } public SelenideElement getFooter() { - return $("#footer"); + return Selenide.$("#footer"); } public SelenideElement getErrorMessage() { - return $("#error"); + return Selenide.$("#error"); } private SelenideElement logInLink() { - return $(By.linkText("Log in")); + return Selenide.$(By.linkText("Log in")); } private SelenideElement loggedInDropdown() { - return $(".js-user-authenticated"); + return Selenide.$(".js-user-authenticated"); } public Navigation shouldBeRedirectedToLogin() { - $("#login_form").should(visible); + Selenide.$("#login_form").should(Condition.visible); return this; } diff --git a/tests/src/test/java/org/sonarqube/pageobjects/NotificationsPage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/NotificationsPage.java similarity index 87% rename from tests/src/test/java/org/sonarqube/pageobjects/NotificationsPage.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/NotificationsPage.java index 456f08ca957..bd4911a94c6 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/NotificationsPage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/NotificationsPage.java @@ -17,19 +17,17 @@ * 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.pageobjects; +package org.sonarqube.qa.util.pageobjects; -import static com.codeborne.selenide.Condition.cssClass; -import static com.codeborne.selenide.Condition.text; -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; +import com.codeborne.selenide.Condition; +import com.codeborne.selenide.Selenide; public class NotificationsPage extends Navigation { private final String EMAIL = "EmailNotificationChannel"; public NotificationsPage() { - $("#account-page").shouldHave(text("Overall notifications")); + Selenide.$("#account-page").shouldHave(Condition.text("Overall notifications")); } public NotificationsPage shouldHaveGlobalNotification(String type) { @@ -101,20 +99,20 @@ public class NotificationsPage extends Navigation { } private NotificationsPage shouldBeChecked(String selector) { - $(selector) - .shouldBe(visible) - .shouldHave(cssClass("icon-checkbox-checked")); + Selenide.$(selector) + .shouldBe(Condition.visible) + .shouldHave(Condition.cssClass("icon-checkbox-checked")); return this; } private NotificationsPage shouldNotBeChecked(String selector) { - $(selector) - .shouldBe(visible) - .shouldNotHave(cssClass("icon-checkbox-checked")); + Selenide.$(selector) + .shouldBe(Condition.visible) + .shouldNotHave(Condition.cssClass("icon-checkbox-checked")); return this; } private void toggleCheckbox(String selector) { - $(selector).click(); + Selenide.$(selector).click(); } } diff --git a/tests/src/test/java/org/sonarqube/pageobjects/ProjectActivityPage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectActivityPage.java similarity index 76% rename from tests/src/test/java/org/sonarqube/pageobjects/ProjectActivityPage.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectActivityPage.java index 05479cb6275..ad8206cd47d 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/ProjectActivityPage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectActivityPage.java @@ -17,25 +17,22 @@ * 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.pageobjects; +package org.sonarqube.qa.util.pageobjects; import com.codeborne.selenide.Condition; import com.codeborne.selenide.ElementsCollection; +import com.codeborne.selenide.Selenide; import java.util.List; import java.util.stream.Collectors; -import static com.codeborne.selenide.Condition.hasText; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.$$; - public class ProjectActivityPage { public ProjectActivityPage() { - $("#project-activity").should(Condition.exist); + Selenide.$("#project-activity").should(Condition.exist); } public ElementsCollection getAnalyses() { - return $$(".project-activity-analysis"); + return Selenide.$$(".project-activity-analysis"); } public List getAnalysesAsItems() { @@ -46,18 +43,18 @@ public class ProjectActivityPage { } public ProjectAnalysisItem getLastAnalysis() { - return new ProjectAnalysisItem($(".project-activity-analysis")); + return new ProjectAnalysisItem(Selenide.$(".project-activity-analysis")); } public ProjectAnalysisItem getFirstAnalysis() { - return new ProjectAnalysisItem($$(".project-activity-analysis").last()); + return new ProjectAnalysisItem(Selenide.$$(".project-activity-analysis").last()); } public ProjectActivityPage assertFirstAnalysisOfTheDayHasText(String day, String text) { - $("#project-activity") + Selenide.$("#project-activity") .find(".project-activity-day[data-day=\"" + day + "\"]") .find(".project-activity-analysis") - .should(hasText(text)); + .should(Condition.hasText(text)); return this; } } diff --git a/tests/src/test/java/org/sonarqube/pageobjects/ProjectAnalysisItem.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectAnalysisItem.java similarity index 74% rename from tests/src/test/java/org/sonarqube/pageobjects/ProjectAnalysisItem.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectAnalysisItem.java index dfd1520b812..2f6d4449c4d 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/ProjectAnalysisItem.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectAnalysisItem.java @@ -17,14 +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.pageobjects; +package org.sonarqube.qa.util.pageobjects; +import com.codeborne.selenide.Condition; +import com.codeborne.selenide.Selenide; import com.codeborne.selenide.SelenideElement; -import static com.codeborne.selenide.Condition.text; -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; - public class ProjectAnalysisItem { private final SelenideElement elt; @@ -34,19 +32,19 @@ public class ProjectAnalysisItem { } public ProjectAnalysisItem shouldHaveEventWithText(String text) { - elt.find(".project-activity-events").shouldHave(text(text)); + elt.find(".project-activity-events").shouldHave(Condition.text(text)); return this; } public ProjectAnalysisItem shouldHaveDeleteButton() { elt.find(".js-analysis-actions").click(); - elt.find(".js-delete-analysis").shouldBe(visible); + elt.find(".js-delete-analysis").shouldBe(Condition.visible); return this; } public ProjectAnalysisItem shouldNotHaveDeleteButton() { elt.find(".js-analysis-actions").click(); - elt.find(".js-delete-analysis").shouldNotBe(visible); + elt.find(".js-delete-analysis").shouldNotBe(Condition.visible); return this; } @@ -54,23 +52,23 @@ public class ProjectAnalysisItem { elt.find(".js-analysis-actions").click(); elt.find(".js-delete-analysis").click(); - SelenideElement modal = $(".modal"); - modal.shouldBe(visible); + SelenideElement modal = Selenide.$(".modal"); + modal.shouldBe(Condition.visible); modal.find("button[type=\"submit\"]").click(); - elt.shouldNotBe(visible); + elt.shouldNotBe(Condition.visible); } public ProjectAnalysisItem addCustomEvent(String name) { elt.find(".js-analysis-actions").click(); elt.find(".js-add-event").click(); - SelenideElement modal = $(".modal"); - modal.shouldBe(visible); + SelenideElement modal = Selenide.$(".modal"); + modal.shouldBe(Condition.visible); modal.find("input").setValue(name); modal.find("button[type=\"submit\"]").click(); - elt.find(".project-activity-event:first-child").shouldHave(text(name)); + elt.find(".project-activity-event:first-child").shouldHave(Condition.text(name)); return this; } @@ -78,12 +76,12 @@ public class ProjectAnalysisItem { SelenideElement firstEvent = elt.find(".project-activity-event:first-child"); firstEvent.find(".js-change-event").click(); - SelenideElement modal = $(".modal"); - modal.shouldBe(visible); + SelenideElement modal = Selenide.$(".modal"); + modal.shouldBe(Condition.visible); modal.find("input").setValue(newName); modal.find("button[type=\"submit\"]").click(); - firstEvent.shouldHave(text(newName)); + firstEvent.shouldHave(Condition.text(newName)); return this; } @@ -93,8 +91,8 @@ public class ProjectAnalysisItem { SelenideElement firstEvent = elt.find(".project-activity-event:first-child"); firstEvent.find(".js-delete-event").click(); - SelenideElement modal = $(".modal"); - modal.shouldBe(visible); + SelenideElement modal = Selenide.$(".modal"); + modal.shouldBe(Condition.visible); modal.find("button[type=\"submit\"]").click(); elt.findAll(".project-activity-event").shouldHaveSize(eventsCount - 1); diff --git a/tests/src/test/java/org/sonarqube/pageobjects/ProjectCodePage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectCodePage.java similarity index 70% rename from tests/src/test/java/org/sonarqube/pageobjects/ProjectCodePage.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectCodePage.java index 466ba60f6db..42bb86748a2 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/ProjectCodePage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectCodePage.java @@ -17,45 +17,45 @@ * 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.pageobjects; +package org.sonarqube.qa.util.pageobjects; -import static com.codeborne.selenide.Condition.text; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.$$; +import com.codeborne.selenide.Condition; +import com.codeborne.selenide.Selenide; public class ProjectCodePage { - public ProjectCodePage() {} + public ProjectCodePage() { + } public ProjectCodePage openFirstComponent() { - $$(".code-name-cell a").first().click(); + Selenide.$$(".code-name-cell a").first().click(); return this; } public ProjectCodePage search(String query) { - $(".code-search .search-box-input").val(query); + Selenide.$(".code-search .search-box-input").val(query); return this; } public ProjectCodePage shouldHaveComponent(String name) { - $(".code-components").shouldHave(text(name)); + Selenide.$(".code-components").shouldHave(Condition.text(name)); return this; } public ProjectCodePage shouldHaveCode(String code) { - $(".code-components .source-viewer").shouldHave(text(code)); + Selenide.$(".code-components .source-viewer").shouldHave(Condition.text(code)); return this; } public ProjectCodePage shouldHaveBreadcrumbs(String... breadcrumbs) { for (String breadcrumb : breadcrumbs) { - $(".code-breadcrumbs").shouldHave(text(breadcrumb)); + Selenide.$(".code-breadcrumbs").shouldHave(Condition.text(breadcrumb)); } return this; } public ProjectCodePage shouldSearchResult(String name) { - $(".code-search-with-results").shouldHave(text(name)); + Selenide.$(".code-search-with-results").shouldHave(Condition.text(name)); return this; } } diff --git a/tests/src/test/java/org/sonarqube/pageobjects/ProjectDashboardPage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectDashboardPage.java similarity index 65% rename from tests/src/test/java/org/sonarqube/pageobjects/ProjectDashboardPage.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectDashboardPage.java index f1d150e2c16..4db286489dd 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/ProjectDashboardPage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectDashboardPage.java @@ -17,80 +17,77 @@ * 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.pageobjects; +package org.sonarqube.qa.util.pageobjects; +import com.codeborne.selenide.Condition; import com.codeborne.selenide.ElementsCollection; +import com.codeborne.selenide.Selenide; import com.codeborne.selenide.SelenideElement; import java.util.Arrays; import org.openqa.selenium.By; -import static com.codeborne.selenide.Condition.exist; -import static com.codeborne.selenide.Condition.hasText; -import static com.codeborne.selenide.Condition.text; -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.$$; import static org.assertj.core.api.Assertions.assertThat; + public class ProjectDashboardPage { public ProjectDashboardPage() { - $(".overview").shouldBe(visible); + Selenide.$(".overview").shouldBe(Condition.visible); } public SelenideElement getLinesOfCode() { - SelenideElement element = $("#overview-ncloc"); - element.shouldBe(visible); + SelenideElement element = Selenide.$("#overview-ncloc"); + element.shouldBe(Condition.visible); return element; } public SelenideElement getLanguageDistribution() { - SelenideElement element = $("#overview-language-distribution"); - element.shouldBe(visible); + SelenideElement element = Selenide.$("#overview-language-distribution"); + element.shouldBe(Condition.visible); return element; } public SelenideElement getOverviewMeasure(String measure) { - ElementsCollection measures = $$(".overview-domain-measure"); - SelenideElement element = measures.find(text(measure)).shouldBe(visible); + ElementsCollection measures = Selenide.$$(".overview-domain-measure"); + SelenideElement element = measures.find(Condition.text(measure)).shouldBe(Condition.visible); return element; } private SelenideElement getTagsMeta() { - SelenideElement element = $(".overview-meta-tags"); - element.shouldBe(visible); + SelenideElement element = Selenide.$(".overview-meta-tags"); + element.shouldBe(Condition.visible); return element; } public ProjectDashboardPage shouldHaveTags(String... tags) { String tagsList = String.join(", ", Arrays.asList(tags)); - this.getTagsMeta().$(".tags-list > span").should(hasText(tagsList)); + this.getTagsMeta().$(".tags-list > span").should(Condition.hasText(tagsList)); return this; } public ProjectDashboardPage shouldNotBeEditable() { SelenideElement tagsElem = this.getTagsMeta(); - tagsElem.$("button").shouldNot(exist); - tagsElem.$("div.multi-select").shouldNot(exist); + tagsElem.$("button").shouldNot(Condition.exist); + tagsElem.$("div.multi-select").shouldNot(Condition.exist); return this; } public ProjectDashboardPage shouldBeEditable() { SelenideElement tagsElem = this.getTagsMeta(); - tagsElem.$("button").shouldBe(visible); + tagsElem.$("button").shouldBe(Condition.visible); return this; } public ProjectDashboardPage openTagEditor() { SelenideElement tagsElem = this.getTagsMeta(); - tagsElem.$("button").shouldBe(visible).click(); - tagsElem.$("div.multi-select").shouldBe(visible); + tagsElem.$("button").shouldBe(Condition.visible).click(); + tagsElem.$("div.multi-select").shouldBe(Condition.visible); return this; } public SelenideElement getTagAtIdx(Integer idx) { SelenideElement tagsElem = this.getTagsMeta(); - tagsElem.$("div.multi-select").shouldBe(visible); + tagsElem.$("div.multi-select").shouldBe(Condition.visible); return tagsElem.$$("ul.menu a").get(idx); } @@ -101,9 +98,9 @@ public class ProjectDashboardPage { } public ProjectDashboardPage hasQualityGateLink(String name, String link) { - SelenideElement elem = $$(".overview-meta-card") - .findBy(text("Quality Gate")).should(exist) - .find(By.linkText(name)).should(exist); + SelenideElement elem = Selenide.$$(".overview-meta-card") + .findBy(Condition.text("Quality Gate")).should(Condition.exist) + .find(By.linkText(name)).should(Condition.exist); assertThat(elem.attr("href")).endsWith(link); return this; } diff --git a/tests/src/test/java/org/sonarqube/pageobjects/ProjectKeyPage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectKeyPage.java similarity index 51% rename from tests/src/test/java/org/sonarqube/pageobjects/ProjectKeyPage.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectKeyPage.java index cf72bdadbe5..5a3e5ec678b 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/ProjectKeyPage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectKeyPage.java @@ -17,87 +17,84 @@ * 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.pageobjects; +package org.sonarqube.qa.util.pageobjects; +import com.codeborne.selenide.Condition; +import com.codeborne.selenide.Selenide; import com.codeborne.selenide.SelenideElement; -import static com.codeborne.selenide.Condition.exist; -import static com.codeborne.selenide.Condition.hasText; -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; - public class ProjectKeyPage { public ProjectKeyPage() { - $("#project-key").should(exist); + Selenide.$("#project-key").should(Condition.exist); } public ProjectKeyPage assertSimpleUpdate() { - $("#update-key-new-key").shouldBe(visible); - $("#update-key-submit").shouldBe(visible); + Selenide.$("#update-key-new-key").shouldBe(Condition.visible); + Selenide.$("#update-key-submit").shouldBe(Condition.visible); return this; } public ProjectKeyPage trySimpleUpdate(String newKey) { - $("#update-key-new-key").val(newKey); - $("#update-key-submit").click(); - $("#update-key-confirm").click(); + Selenide.$("#update-key-new-key").val(newKey); + Selenide.$("#update-key-submit").click(); + Selenide.$("#update-key-confirm").click(); return this; } public ProjectKeyPage openFineGrainedUpdate() { - $("#update-key-tab-fine").click(); - $("#project-key-fine-grained-update").shouldBe(visible); + Selenide.$("#update-key-tab-fine").click(); + Selenide.$("#project-key-fine-grained-update").shouldBe(Condition.visible); return this; } public ProjectKeyPage tryFineGrainedUpdate(String key, String newKey) { - SelenideElement form = $(".js-fine-grained-update[data-key=\"" + key + "\"]"); - form.shouldBe(visible); + SelenideElement form = Selenide.$(".js-fine-grained-update[data-key=\"" + key + "\"]"); + form.shouldBe(Condition.visible); form.$("input").val(newKey); form.$("button").click(); - $("#update-key-confirm").click(); + Selenide.$("#update-key-confirm").click(); return this; } public ProjectKeyPage assertBulkChange() { - $("#bulk-update-replace").shouldBe(visible); - $("#bulk-update-by").shouldBe(visible); - $("#bulk-update-see-results").shouldBe(visible); + Selenide.$("#bulk-update-replace").shouldBe(Condition.visible); + Selenide.$("#bulk-update-by").shouldBe(Condition.visible); + Selenide.$("#bulk-update-see-results").shouldBe(Condition.visible); return this; } public ProjectKeyPage simulateBulkChange(String replace, String by) { - $("#bulk-update-replace").val(replace); - $("#bulk-update-by").val(by); - $("#bulk-update-see-results").click(); + Selenide.$("#bulk-update-replace").val(replace); + Selenide.$("#bulk-update-by").val(by); + Selenide.$("#bulk-update-see-results").click(); - $("#bulk-update-simulation").shouldBe(visible); + Selenide.$("#bulk-update-simulation").shouldBe(Condition.visible); return this; } public ProjectKeyPage assertBulkChangeSimulationResult(String oldKey, String newKey) { - SelenideElement row = $("#bulk-update-results").$("[data-key=\"" + oldKey + "\"]"); - row.$(".js-old-key").should(hasText(oldKey)); - row.$(".js-new-key").should(hasText(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)); return this; } public ProjectKeyPage assertDuplicated(String oldKey) { - SelenideElement row = $("#bulk-update-results").$("[data-key=\"" + oldKey + "\"]"); - row.$(".js-new-key").$(".badge-danger").shouldBe(visible); + SelenideElement row = Selenide.$("#bulk-update-results").$("[data-key=\"" + oldKey + "\"]"); + row.$(".js-new-key").$(".badge-danger").shouldBe(Condition.visible); return this; } public ProjectKeyPage confirmBulkUpdate() { - $("#bulk-update-confirm").click(); + Selenide.$("#bulk-update-confirm").click(); return this; } public ProjectKeyPage assertSuccessfulBulkUpdate() { - $("#project-key-bulk-update").$(".alert.alert-success").shouldBe(visible); + Selenide.$("#project-key-bulk-update").$(".alert.alert-success").shouldBe(Condition.visible); return this; } } diff --git a/tests/src/test/java/org/sonarqube/pageobjects/ProjectLinkItem.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectLinkItem.java similarity index 97% rename from tests/src/test/java/org/sonarqube/pageobjects/ProjectLinkItem.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectLinkItem.java index c652e018e0d..7444ca554ac 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/ProjectLinkItem.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectLinkItem.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.pageobjects; +package org.sonarqube.qa.util.pageobjects; import com.codeborne.selenide.SelenideElement; import org.openqa.selenium.NoSuchElementException; diff --git a/tests/src/test/java/org/sonarqube/pageobjects/ProjectLinksPage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectLinksPage.java similarity index 84% rename from tests/src/test/java/org/sonarqube/pageobjects/ProjectLinksPage.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectLinksPage.java index a4adbf396f3..8f9e8860f5a 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/ProjectLinksPage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectLinksPage.java @@ -17,25 +17,22 @@ * 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.pageobjects; +package org.sonarqube.qa.util.pageobjects; import com.codeborne.selenide.Condition; import com.codeborne.selenide.ElementsCollection; - +import com.codeborne.selenide.Selenide; import java.util.List; import java.util.stream.Collectors; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.$$; - public class ProjectLinksPage { public ProjectLinksPage() { - $("#project-links").should(Condition.exist); + Selenide.$("#project-links").should(Condition.exist); } public ElementsCollection getLinks() { - return $$("#project-links tr[data-name]"); + return Selenide.$$("#project-links tr[data-name]"); } public List getLinksAsItems() { diff --git a/tests/src/test/java/org/sonarqube/pageobjects/ProjectPermissionsPage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectPermissionsPage.java similarity index 66% rename from tests/src/test/java/org/sonarqube/pageobjects/ProjectPermissionsPage.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectPermissionsPage.java index 954ad779a07..0fabc151b7d 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/ProjectPermissionsPage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectPermissionsPage.java @@ -17,45 +17,43 @@ * 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.pageobjects; +package org.sonarqube.qa.util.pageobjects; -import static com.codeborne.selenide.Condition.cssClass; -import static com.codeborne.selenide.Condition.exist; -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; +import com.codeborne.selenide.Condition; +import com.codeborne.selenide.Selenide; public class ProjectPermissionsPage { public ProjectPermissionsPage() { - $("#project-permissions-page").should(exist); + Selenide.$("#project-permissions-page").should(Condition.exist); } public ProjectPermissionsPage shouldBePublic() { - $("#visibility-public .icon-radio.is-checked").shouldBe(visible); + Selenide.$("#visibility-public .icon-radio.is-checked").shouldBe(Condition.visible); return this; } public ProjectPermissionsPage shouldBePrivate() { - $("#visibility-private .icon-radio.is-checked").shouldBe(visible); + Selenide.$("#visibility-private .icon-radio.is-checked").shouldBe(Condition.visible); return this; } public ProjectPermissionsPage turnToPublic() { - $("#visibility-public").click(); - $("#confirm-turn-to-public").click(); + Selenide.$("#visibility-public").click(); + Selenide.$("#confirm-turn-to-public").click(); shouldBePublic(); return this; } public ProjectPermissionsPage turnToPrivate() { - $("#visibility-private").click(); + Selenide.$("#visibility-private").click(); shouldBePrivate(); return this; } public ProjectPermissionsPage shouldNotAllowPrivate() { - $("#visibility-private").shouldHave(cssClass("text-muted")); - $(".upgrade-organization-box").shouldBe(visible); + Selenide.$("#visibility-private").shouldHave(Condition.cssClass("text-muted")); + Selenide.$(".upgrade-organization-box").shouldBe(Condition.visible); return this; } } diff --git a/tests/src/test/java/org/sonarqube/pageobjects/ProjectQualityGatePage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectQualityGatePage.java similarity index 72% rename from tests/src/test/java/org/sonarqube/pageobjects/ProjectQualityGatePage.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectQualityGatePage.java index 58e28acaacf..0cf3904c640 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/ProjectQualityGatePage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectQualityGatePage.java @@ -17,29 +17,28 @@ * 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.pageobjects; +package org.sonarqube.qa.util.pageobjects; +import com.codeborne.selenide.Condition; +import com.codeborne.selenide.Selenide; import com.codeborne.selenide.SelenideElement; -import static com.codeborne.selenide.Condition.exist; -import static com.codeborne.selenide.Selenide.$; - public class ProjectQualityGatePage { public ProjectQualityGatePage() { - $("#project-quality-gate").should(exist); + Selenide.$("#project-quality-gate").should(Condition.exist); } public SelenideElement getSelectedQualityGate() { - return $(".Select-value-label"); + return Selenide.$(".Select-value-label"); } public void assertNotSelected() { - $(".Select-placeholder").should(exist); - $(".Select-value-label").shouldNot(exist); + Selenide.$(".Select-placeholder").should(Condition.exist); + Selenide.$(".Select-value-label").shouldNot(Condition.exist); } public void setQualityGate(String name) { - $(".Select-input input").val(name).pressEnter(); + Selenide.$(".Select-input input").val(name).pressEnter(); } } diff --git a/tests/src/test/java/org/sonarqube/pageobjects/ProjectsManagementPage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectsManagementPage.java similarity index 58% rename from tests/src/test/java/org/sonarqube/pageobjects/ProjectsManagementPage.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectsManagementPage.java index c2031a8596b..529c98abb25 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/ProjectsManagementPage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/ProjectsManagementPage.java @@ -17,45 +17,42 @@ * 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.pageobjects; +package org.sonarqube.qa.util.pageobjects; -import static com.codeborne.selenide.Condition.exist; -import static com.codeborne.selenide.Condition.text; -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.$$; +import com.codeborne.selenide.Condition; +import com.codeborne.selenide.Selenide; public class ProjectsManagementPage { public ProjectsManagementPage() { - $("#projects-management-page").should(exist); + Selenide.$("#projects-management-page").should(Condition.exist); } public ProjectsManagementPage shouldHaveProjectsCount(int count) { - $$("#projects-management-page-projects tbody tr").shouldHaveSize(count); + Selenide.$$("#projects-management-page-projects tbody tr").shouldHaveSize(count); return this; } public ProjectsManagementPage shouldHaveProject(String key) { - $("#projects-management-page-projects").shouldHave(text(key)); + Selenide.$("#projects-management-page-projects").shouldHave(Condition.text(key)); return this; } public ProjectsManagementPage createProject(String key, String name, String visibility) { - $("#create-project").click(); - $("#create-project-name").val(key); - $("#create-project-key").val(name); - $("#visibility-" + visibility).click(); - $("#create-project-submit").submit(); + Selenide.$("#create-project").click(); + Selenide.$("#create-project-name").val(key); + Selenide.$("#create-project-key").val(name); + Selenide.$("#visibility-" + visibility).click(); + Selenide.$("#create-project-submit").submit(); return this; } public ProjectsManagementPage bulkApplyPermissionTemplate(String template) { - $(".js-bulk-apply-permission-template").click(); - $(".modal .Select-value").click(); - $$(".modal .Select-option").findBy(text(template)).click(); - $(".modal-foot button").click(); - $(".modal-body .alert-success").shouldBe(visible); + Selenide.$(".js-bulk-apply-permission-template").click(); + Selenide.$(".modal .Select-value").click(); + Selenide.$$(".modal .Select-option").findBy(Condition.text(template)).click(); + Selenide.$(".modal-foot button").click(); + Selenide.$(".modal-body .alert-success").shouldBe(Condition.visible); return this; } } diff --git a/tests/src/test/java/org/sonarqube/pageobjects/QualityGatePage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/QualityGatePage.java similarity index 70% rename from tests/src/test/java/org/sonarqube/pageobjects/QualityGatePage.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/QualityGatePage.java index 4133bbfeb92..2f8f1669123 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/QualityGatePage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/QualityGatePage.java @@ -17,40 +17,38 @@ * 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.pageobjects; +package org.sonarqube.qa.util.pageobjects; import com.codeborne.selenide.Condition; - -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.$$; +import com.codeborne.selenide.Selenide; public class QualityGatePage { public QualityGatePage() { - $("#quality-gates-page").shouldBe(Condition.visible); + Selenide.$("#quality-gates-page").shouldBe(Condition.visible); } public QualityGatePage countQualityGates(Integer count) { - $$("#quality-gates-page .list-group-item").shouldHaveSize(count); + Selenide.$$("#quality-gates-page .list-group-item").shouldHaveSize(count); return this; } public QualityGatePage canCreateQG() { - $("#quality-gate-add").should(Condition.exist).shouldBe(Condition.visible); + Selenide.$("#quality-gate-add").should(Condition.exist).shouldBe(Condition.visible); return this; } public QualityGatePage canNotCreateQG() { - $("#quality-gate-add").shouldNot(Condition.exist); + Selenide.$("#quality-gate-add").shouldNot(Condition.exist); return this; } public QualityGatePage displayIntro() { - $(".search-navigator-intro").should(Condition.exist).shouldBe(Condition.visible); + Selenide.$(".search-navigator-intro").should(Condition.exist).shouldBe(Condition.visible); return this; } public QualityGatePage displayQualityGateDetail(String qualityGateName) { - $(".layout-page-main-header").shouldHave(Condition.text(qualityGateName)); + Selenide.$(".layout-page-main-header").shouldHave(Condition.text(qualityGateName)); return this; } } diff --git a/tests/src/test/java/org/sonarqube/pageobjects/QualityProfilePage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/QualityProfilePage.java similarity index 65% rename from tests/src/test/java/org/sonarqube/pageobjects/QualityProfilePage.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/QualityProfilePage.java index 803f55357a0..88b009687b0 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/QualityProfilePage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/QualityProfilePage.java @@ -17,42 +17,38 @@ * 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.pageobjects; +package org.sonarqube.qa.util.pageobjects; import com.codeborne.selenide.Condition; - -import static com.codeborne.selenide.Condition.text; -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.page; +import com.codeborne.selenide.Selenide; public class QualityProfilePage { public QualityProfilePage() { - $("#quality-profile").shouldBe(Condition.visible); + Selenide.$("#quality-profile").shouldBe(Condition.visible); } public QualityProfilePage shouldHaveMissingSonarWayRules(Integer nbRules) { - $(".quality-profile-rules-sonarway-missing") + Selenide.$(".quality-profile-rules-sonarway-missing") .shouldBe(Condition.visible) - .$("a").shouldHave(text(nbRules.toString())); + .$("a").shouldHave(Condition.text(nbRules.toString())); return this; } public RulesPage showMissingSonarWayRules() { - $(".quality-profile-rules-sonarway-missing") + Selenide.$(".quality-profile-rules-sonarway-missing") .shouldBe(Condition.visible).$("a").click(); - $(".coding-rules").shouldBe(Condition.visible); - return page(RulesPage.class); + Selenide.$(".coding-rules").shouldBe(Condition.visible); + return Selenide.page(RulesPage.class); } public QualityProfilePage shouldHaveAssociatedProject(String projectName) { - $(".js-profile-project").shouldHave(text(projectName)); + Selenide.$(".js-profile-project").shouldHave(Condition.text(projectName)); return this; } public QualityProfilePage shouldAllowToChangeProjects() { - $(".js-change-projects").shouldBe(visible).click(); - $("#profile-projects .select-list-list").shouldBe(visible); + Selenide.$(".js-change-projects").shouldBe(Condition.visible).click(); + Selenide.$("#profile-projects .select-list-list").shouldBe(Condition.visible); return this; } } diff --git a/tests/src/test/java/org/sonarqube/pageobjects/RuleDetails.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/RuleDetails.java similarity index 83% rename from tests/src/test/java/org/sonarqube/pageobjects/RuleDetails.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/RuleDetails.java index fda58ded977..035a66f3019 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/RuleDetails.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/RuleDetails.java @@ -17,13 +17,12 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonarqube.pageobjects; +package org.sonarqube.qa.util.pageobjects; +import com.codeborne.selenide.Condition; +import com.codeborne.selenide.Selenide; import com.codeborne.selenide.SelenideElement; -import static com.codeborne.selenide.Condition.text; -import static com.codeborne.selenide.Selenide.$; - public class RuleDetails { private final SelenideElement elt; @@ -33,7 +32,7 @@ public class RuleDetails { } public RuleDetails shouldBeActivatedOn(String profileName) { - $("#coding-rules-detail-quality-profiles").shouldHave(text(profileName)); + Selenide.$("#coding-rules-detail-quality-profiles").shouldHave(Condition.text(profileName)); return this; } diff --git a/tests/src/test/java/org/sonarqube/pageobjects/RuleItem.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/RuleItem.java similarity index 96% rename from tests/src/test/java/org/sonarqube/pageobjects/RuleItem.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/RuleItem.java index b311f3555b8..7b5d818bc25 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/RuleItem.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/RuleItem.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.pageobjects; +package org.sonarqube.qa.util.pageobjects; import com.codeborne.selenide.SelenideElement; diff --git a/tests/src/test/java/org/sonarqube/pageobjects/RulesPage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/RulesPage.java similarity index 63% rename from tests/src/test/java/org/sonarqube/pageobjects/RulesPage.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/RulesPage.java index e3f5afbac66..6b2916e5240 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/RulesPage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/RulesPage.java @@ -17,54 +17,50 @@ * 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.pageobjects; +package org.sonarqube.qa.util.pageobjects; import com.codeborne.selenide.Condition; import com.codeborne.selenide.ElementsCollection; +import com.codeborne.selenide.Selenide; import com.codeborne.selenide.SelenideElement; import org.openqa.selenium.By; -import static com.codeborne.selenide.Condition.text; -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.$$; - public class RulesPage extends Navigation { public RulesPage() { - $(By.cssSelector(".coding-rules")).should(Condition.exist); + Selenide.$(By.cssSelector(".coding-rules")).should(Condition.exist); } public int getTotal() { // warning - number is localized - return Integer.parseInt($("#coding-rules-total").text()); + return Integer.parseInt(Selenide.$("#coding-rules-total").text()); } public ElementsCollection getSelectedFacetItems(String facetName) { - SelenideElement facet = $(".search-navigator-facet-box[data-property='"+ facetName+"']").shouldBe(Condition.visible); + SelenideElement facet = Selenide.$(".search-navigator-facet-box[data-property='"+ facetName+"']").shouldBe(Condition.visible); return facet.$$(".js-facet.active"); } public RulesPage shouldHaveTotalRules(Integer total) { - $("#coding-rules-total").shouldHave(text(total.toString())); + Selenide.$("#coding-rules-total").shouldHave(Condition.text(total.toString())); return this; } public RulesPage openFacet(String facet) { - $(".search-navigator-facet-box[data-property=\"" + facet + "\"] .js-facet-toggle").click(); + Selenide.$(".search-navigator-facet-box[data-property=\"" + facet + "\"] .js-facet-toggle").click(); return this; } public RulesPage selectFacetItemByText(String facet, String itemText) { - $$(".search-navigator-facet-box[data-property=\"" + facet + "\"] .js-facet") - .findBy(text(itemText)).click(); + Selenide.$$(".search-navigator-facet-box[data-property=\"" + facet + "\"] .js-facet") + .findBy(Condition.text(itemText)).click(); return this; } public RuleDetails openFirstRule() { - $$(".js-rule").first().click(); - $(".coding-rules-details").shouldBe(visible); - return new RuleDetails($(".coding-rules-details")); + Selenide.$$(".js-rule").first().click(); + Selenide.$(".coding-rules-details").shouldBe(Condition.visible); + return new RuleDetails(Selenide.$(".coding-rules-details")); } } diff --git a/tests/src/test/java/org/sonarqube/pageobjects/SystemInfoPage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/SystemInfoPage.java similarity index 69% rename from tests/src/test/java/org/sonarqube/pageobjects/SystemInfoPage.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/SystemInfoPage.java index 64d3576873f..5b93e2b457a 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/SystemInfoPage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/SystemInfoPage.java @@ -17,33 +17,30 @@ * 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.pageobjects; +package org.sonarqube.qa.util.pageobjects; import com.codeborne.selenide.CollectionCondition; +import com.codeborne.selenide.Condition; +import com.codeborne.selenide.Selenide; import com.codeborne.selenide.SelenideElement; -import static com.codeborne.selenide.Condition.exist; -import static com.codeborne.selenide.Condition.text; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.$$; - public class SystemInfoPage { public SystemInfoPage() { - $(".page-title").should(exist).shouldHave(text("System Info")); + Selenide.$(".page-title").should(Condition.exist).shouldHave(Condition.text("System Info")); } public SystemInfoPage shouldHaveCard(String title) { - $$(".system-info-health-card-title").find(text(title)).should(exist); + Selenide.$$(".system-info-health-card-title").find(Condition.text(title)).should(Condition.exist); return this; } public SystemInfoPage shouldHaveCards(String... titles) { - $$(".system-info-health-card-title").shouldHave(CollectionCondition.texts(titles)); + Selenide.$$(".system-info-health-card-title").shouldHave(CollectionCondition.texts(titles)); return this; } public SystemInfoPageItem getCardItem(String card) { - SelenideElement cardTitle = $$(".system-info-health-card-title").find(text(card)).should(exist); + SelenideElement cardTitle = Selenide.$$(".system-info-health-card-title").find(Condition.text(card)).should(Condition.exist); return new SystemInfoPageItem(cardTitle.parent().parent()); } -} \ No newline at end of file +} diff --git a/tests/src/test/java/org/sonarqube/pageobjects/SystemInfoPageItem.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/SystemInfoPageItem.java similarity index 72% rename from tests/src/test/java/org/sonarqube/pageobjects/SystemInfoPageItem.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/SystemInfoPageItem.java index c477c874cb3..55d9c84092e 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/SystemInfoPageItem.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/SystemInfoPageItem.java @@ -17,14 +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.pageobjects; +package org.sonarqube.qa.util.pageobjects; +import com.codeborne.selenide.Condition; import com.codeborne.selenide.SelenideElement; -import static com.codeborne.selenide.Condition.exactText; -import static com.codeborne.selenide.Condition.exist; -import static com.codeborne.selenide.Condition.text; - public class SystemInfoPageItem { private final SelenideElement elt; @@ -33,51 +30,51 @@ public class SystemInfoPageItem { } public SystemInfoPageItem shouldHaveHealth() { - elt.$(".system-info-health-info .status-indicator").should(exist); + elt.$(".system-info-health-info .status-indicator").should(Condition.exist); return this; } public SystemInfoPageItem shouldHaveSection(String section) { ensureOpen(); - elt.$$("h4").findBy(text(section)).should(exist); + elt.$$("h4").findBy(Condition.text(section)).should(Condition.exist); return this; } public SystemInfoPageItem shouldNotHaveSection(String section) { ensureOpen(); - elt.$$("h4").findBy(text(section)).shouldNot(exist); + elt.$$("h4").findBy(Condition.text(section)).shouldNot(Condition.exist); return this; } public SystemInfoPageItem shouldHaveMainSection() { ensureOpen(); - elt.$$(".system-info-section").get(0).find("h4").shouldNot(exist); + elt.$$(".system-info-section").get(0).find("h4").shouldNot(Condition.exist); return this; } public SystemInfoPageItem shouldHaveField(String field) { ensureOpen(); - elt.$$(".system-info-section-item-name").findBy(text(field)).should(exist); + elt.$$(".system-info-section-item-name").findBy(Condition.text(field)).should(Condition.exist); return this; } public SystemInfoPageItem shouldNotHaveField(String field) { ensureOpen(); - elt.$$(".system-info-section-item-name").findBy(exactText(field)).shouldNot(exist); + elt.$$(".system-info-section-item-name").findBy(Condition.exactText(field)).shouldNot(Condition.exist); return this; } public SystemInfoPageItem shouldHaveFieldWithValue(String field, String value) { ensureOpen(); - SelenideElement fieldElem = elt.$$(".system-info-section-item-name").findBy(text(field)).should(exist); - fieldElem.parent().parent().$$("td").shouldHaveSize(2).get(1).shouldHave(text(value)); + SelenideElement fieldElem = elt.$$(".system-info-section-item-name").findBy(Condition.text(field)).should(Condition.exist); + fieldElem.parent().parent().$$("td").shouldHaveSize(2).get(1).shouldHave(Condition.text(value)); return this; } public SystemInfoPageItem ensureOpen() { if(!isOpen()) { elt.click(); - elt.$(".boxed-group-inner").should(exist); + elt.$(".boxed-group-inner").should(Condition.exist); } return this; } diff --git a/tests/src/test/java/org/sonarqube/pageobjects/issues/Issue.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/issues/Issue.java similarity index 69% rename from tests/src/test/java/org/sonarqube/pageobjects/issues/Issue.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/issues/Issue.java index a2c6e64648e..d4e2713112e 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/issues/Issue.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/issues/Issue.java @@ -17,14 +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.pageobjects.issues; +package org.sonarqube.qa.util.pageobjects.issues; +import com.codeborne.selenide.Condition; +import com.codeborne.selenide.Selenide; import com.codeborne.selenide.SelenideElement; -import static com.codeborne.selenide.Condition.exist; -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; - public class Issue { private final SelenideElement elt; @@ -34,31 +32,31 @@ public class Issue { } public Issue shouldAllowAssign() { - elt.find(".js-issue-assign").shouldBe(visible); + elt.find(".js-issue-assign").shouldBe(Condition.visible); return this; } public Issue shouldAllowChangeType() { - elt.find(".js-issue-set-type").shouldBe(visible); + elt.find(".js-issue-set-type").shouldBe(Condition.visible); return this; } public Issue shouldNotAllowAssign() { - elt.find(".js-issue-assign").shouldNotBe(visible); + elt.find(".js-issue-assign").shouldNotBe(Condition.visible); return this; } public Issue shouldNotAllowChangeType() { - elt.find(".js-issue-set-type").shouldNotBe(visible); + elt.find(".js-issue-set-type").shouldNotBe(Condition.visible); return this; } public Issue assigneeSearchResultCount(String query, Integer count) { SelenideElement assignLink = elt.find(".js-issue-assign"); assignLink.click(); - SelenideElement popupMenu = $(".bubble-popup ul.menu").shouldBe(visible); - $(".bubble-popup input.search-box-input").shouldBe(visible).val("").sendKeys(query); - popupMenu.$("li a[data-text='Not assigned']").shouldNot(exist); + SelenideElement popupMenu = Selenide.$(".bubble-popup ul.menu").shouldBe(Condition.visible); + Selenide.$(".bubble-popup input.search-box-input").shouldBe(Condition.visible).val("").sendKeys(query); + popupMenu.$("li a[data-text='Not assigned']").shouldNot(Condition.exist); popupMenu.$$("li").shouldHaveSize(count); assignLink.click(); return this; diff --git a/tests/src/test/java/org/sonarqube/pageobjects/issues/IssuesPage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/issues/IssuesPage.java similarity index 67% rename from tests/src/test/java/org/sonarqube/pageobjects/issues/IssuesPage.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/issues/IssuesPage.java index 0918af6b0ae..92755921f37 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/issues/IssuesPage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/issues/IssuesPage.java @@ -17,31 +17,27 @@ * 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.pageobjects.issues; +package org.sonarqube.qa.util.pageobjects.issues; +import com.codeborne.selenide.CollectionCondition; +import com.codeborne.selenide.Condition; import com.codeborne.selenide.ElementsCollection; +import com.codeborne.selenide.Selenide; import java.util.List; import java.util.stream.Collectors; -import static com.codeborne.selenide.CollectionCondition.sizeGreaterThan; -import static com.codeborne.selenide.Condition.exist; -import static com.codeborne.selenide.Condition.text; -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.$$; - public class IssuesPage { public IssuesPage() { - $(".issues").should(exist); + Selenide.$(".issues").should(Condition.exist); } private ElementsCollection getIssuesElements() { - return $$(".issues .issue"); + return Selenide.$$(".issues .issue"); } private ElementsCollection getIssuesPathComponents() { - return $$(".issues-workspace-list-component"); + return Selenide.$$(".issues-workspace-list-component"); } public List getIssues() { @@ -57,30 +53,30 @@ public class IssuesPage { } public Issue getFirstIssue() { - getIssuesElements().shouldHave(sizeGreaterThan(0)); + getIssuesElements().shouldHave(CollectionCondition.sizeGreaterThan(0)); return new Issue(getIssuesElements().first()); } public IssuesPage componentsShouldContain(String path) { - this.getIssuesPathComponents().forEach(element -> element.shouldHave(text(path))); + this.getIssuesPathComponents().forEach(element -> element.shouldHave(Condition.text(path))); return this; } public IssuesPage componentsShouldNotContain(String path) { - this.getIssuesPathComponents().forEach(element -> element.shouldNotHave(text(path))); + this.getIssuesPathComponents().forEach(element -> element.shouldNotHave(Condition.text(path))); return this; } public IssuesPage bulkChangeOpen() { - $("#issues-bulk-change").shouldBe(visible).click(); - $("#bulk-change-form").shouldBe(visible); + Selenide.$("#issues-bulk-change").shouldBe(Condition.visible).click(); + Selenide.$("#bulk-change-form").shouldBe(Condition.visible); return this; } public IssuesPage bulkChangeAssigneeSearchCount(String query, Integer count) { - $("#issues-bulk-change-assignee .Select-input input").val(query); - $$("#issues-bulk-change-assignee .Select-option").shouldHaveSize(count); - $("#issues-bulk-change-assignee .Select-input input").pressEscape(); + Selenide.$("#issues-bulk-change-assignee .Select-input input").val(query); + Selenide.$$("#issues-bulk-change-assignee .Select-option").shouldHaveSize(count); + Selenide.$("#issues-bulk-change-assignee .Select-input input").pressEscape(); return this; } } diff --git a/tests/src/test/java/org/sonarqube/pageobjects/measures/MeasureContent.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/measures/MeasureContent.java similarity index 79% rename from tests/src/test/java/org/sonarqube/pageobjects/measures/MeasureContent.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/measures/MeasureContent.java index 6c8e7381098..4f3da0472e5 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/measures/MeasureContent.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/measures/MeasureContent.java @@ -17,14 +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.pageobjects.measures; +package org.sonarqube.qa.util.pageobjects.measures; +import com.codeborne.selenide.Condition; import com.codeborne.selenide.ElementsCollection; import com.codeborne.selenide.SelenideElement; -import static com.codeborne.selenide.Condition.exist; -import static com.codeborne.selenide.Condition.text; - public class MeasureContent { private final SelenideElement elt; @@ -33,27 +31,27 @@ public class MeasureContent { } public MeasureContent shouldHaveTitle(String title) { - this.elt.$(".measure-details-header .measure-details-metric").should(exist).shouldHave(text(title)); + this.elt.$(".measure-details-header .measure-details-metric").should(Condition.exist).shouldHave(Condition.text(title)); return this; } public MeasureContent shouldHaveHeaderValue(String value) { - this.elt.$(".measure-details-header .measure-details-value").should(exist).shouldHave(text(value)); + this.elt.$(".measure-details-header .measure-details-value").should(Condition.exist).shouldHave(Condition.text(value)); return this; } public MeasureContent shouldHaveFile(String path) { - this.getFiles().find(text(path)).should(exist); + this.getFiles().find(Condition.text(path)).should(Condition.exist); return this; } public MeasureContent drillDown(String item) { - this.getFiles().find(text(item)).should(exist).find("a").click(); + this.getFiles().find(Condition.text(item)).should(Condition.exist).find("a").click(); return this; } public MeasureContent shouldDisplayCode() { - this.elt.$(".source-line-code").should(exist); + this.elt.$(".source-line-code").should(Condition.exist); return this; } diff --git a/tests/src/test/java/org/sonarqube/pageobjects/measures/MeasuresPage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/measures/MeasuresPage.java similarity index 59% rename from tests/src/test/java/org/sonarqube/pageobjects/measures/MeasuresPage.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/measures/MeasuresPage.java index 414b7f8c61b..de052a403de 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/measures/MeasuresPage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/measures/MeasuresPage.java @@ -17,69 +17,67 @@ * along with this program; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonarqube.pageobjects.measures; +package org.sonarqube.qa.util.pageobjects.measures; + import com.codeborne.selenide.CollectionCondition; +import com.codeborne.selenide.Condition; +import com.codeborne.selenide.Selenide; import com.codeborne.selenide.SelenideElement; import org.openqa.selenium.Keys; -import static com.codeborne.selenide.Condition.exist; -import static com.codeborne.selenide.Condition.text; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.$$; - public class MeasuresPage { public MeasuresPage() { - $("#component-measures").should(exist); + Selenide.$("#component-measures").should(Condition.exist); } public MeasuresPage displayBubbleChart(String title) { - SelenideElement bubblechart = $("#component-measures .measure-overview-bubble-chart"); - bubblechart.$(".measure-overview-bubble-chart-title").shouldHave(text(title)); + SelenideElement bubblechart = Selenide.$("#component-measures .measure-overview-bubble-chart"); + bubblechart.$(".measure-overview-bubble-chart-title").shouldHave(Condition.text(title)); return this; } public MeasuresPage measureHasValue(String measure, Integer value) { SelenideElement sidebar = this.getSideBar(); - sidebar.$("#measure-" + measure + "-name").should(exist); - sidebar.$("#measure-" + measure + "-value").should(exist).shouldHave(text(value.toString())); + 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(); - sidebar.$("#measure-" + measure + "-name").should(exist); - sidebar.$("#measure-" + measure + "-leak").should(exist).shouldHave(text(value.toString())); + sidebar.$("#measure-" + measure + "-name").should(Condition.exist); + sidebar.$("#measure-" + measure + "-leak").should(Condition.exist).shouldHave(Condition.text(value.toString())); return this; } public MeasuresPage breadcrumbsShouldHave(String item) { - $(".layout-page-header-panel .measure-breadcrumbs").shouldHave(text(item)); + Selenide.$(".layout-page-header-panel .measure-breadcrumbs").shouldHave(Condition.text(item)); return this; } public MeasuresPage breadcrumbsShouldNotHave(String item) { - $(".layout-page-header-panel .measure-breadcrumbs").shouldNotHave(text(item)); + Selenide.$(".layout-page-header-panel .measure-breadcrumbs").shouldNotHave(Condition.text(item)); return this; } public MeasuresPage backShortcut() { - $(".layout-page-header-panel").sendKeys(Keys.LEFT); + Selenide.$(".layout-page-header-panel").sendKeys(Keys.LEFT); return this; } public MeasuresPage switchView(String view) { - SelenideElement select = $(".measure-view-select").should(exist); + SelenideElement select = Selenide.$(".measure-view-select").should(Condition.exist); select.click(); - select.$(".Select-menu-outer").should(exist) + select.$(".Select-menu-outer").should(Condition.exist) .$$(".Select-option").shouldHave(CollectionCondition.sizeGreaterThan(1)) - .find(text(view)).should(exist).click(); + .find(Condition.text(view)).should(Condition.exist).click(); return this; } public MeasuresPage openFacet(String facet) { - SelenideElement facetBox = $$(".search-navigator-facet-box").find(text(facet)); + SelenideElement facetBox = Selenide.$$(".search-navigator-facet-box").find(Condition.text(facet)); if(!facetBox.find("search-navigator-facet-list").isDisplayed()) { - facetBox.$(".search-navigator-facet-header a").should(exist).click(); + facetBox.$(".search-navigator-facet-header a").should(Condition.exist).click(); } return this; } @@ -88,12 +86,12 @@ public class MeasuresPage { SelenideElement sidebar = this.getSideBar(); SelenideElement facetItem = sidebar.$("#measure-" + measure + "-name"); facetItem.click(); - MeasureContent content = new MeasureContent($("#component-measures .measure-details-content").should(exist)); + MeasureContent content = new MeasureContent(Selenide.$("#component-measures .measure-details-content").should(Condition.exist)); content.shouldHaveTitle(facetItem.getText()); return content; } private SelenideElement getSideBar() { - return $("#component-measures .layout-page-side").should(exist); + return Selenide.$("#component-measures .layout-page-side").should(Condition.exist); } } diff --git a/tests/src/test/java/org/sonarqube/pageobjects/organization/MemberItem.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/organization/MemberItem.java similarity index 92% rename from tests/src/test/java/org/sonarqube/pageobjects/organization/MemberItem.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/organization/MemberItem.java index 0de4be4c937..fd02dfb1f11 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/organization/MemberItem.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/organization/MemberItem.java @@ -18,15 +18,14 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonarqube.pageobjects.organization; +package org.sonarqube.qa.util.pageobjects.organization; import com.codeborne.selenide.CollectionCondition; import com.codeborne.selenide.Condition; import com.codeborne.selenide.ElementsCollection; +import com.codeborne.selenide.Selenide; import com.codeborne.selenide.SelenideElement; -import static com.codeborne.selenide.Selenide.$; - public class MemberItem { private final SelenideElement elt; @@ -87,8 +86,8 @@ public class MemberItem { } private SelenideElement getModal(String title) { - $(".modal-head").should(Condition.exist).shouldHave(Condition.text(title)); - SelenideElement form = $(".ReactModalPortal form"); + Selenide.$(".modal-head").should(Condition.exist).shouldHave(Condition.text(title)); + SelenideElement form = Selenide.$(".ReactModalPortal form"); form.should(Condition.exist); return form; } diff --git a/tests/src/test/java/org/sonarqube/pageobjects/organization/MembersPage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/organization/MembersPage.java similarity index 71% rename from tests/src/test/java/org/sonarqube/pageobjects/organization/MembersPage.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/organization/MembersPage.java index a6e6081438b..21816aea1c1 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/organization/MembersPage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/organization/MembersPage.java @@ -18,25 +18,21 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package org.sonarqube.pageobjects.organization; +package org.sonarqube.qa.util.pageobjects.organization; import com.codeborne.selenide.Condition; import com.codeborne.selenide.ElementsCollection; +import com.codeborne.selenide.Selenide; import com.codeborne.selenide.SelenideElement; -import static com.codeborne.selenide.Condition.text; -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.$$; - public class MembersPage { public MembersPage() { - $(".navbar-tabs a.active").shouldBe(visible).shouldHave(text("Members")); + Selenide.$(".navbar-tabs a.active").shouldBe(Condition.visible).shouldHave(Condition.text("Members")); } public ElementsCollection getMembers() { - return $$("table.data tr"); + return Selenide.$$("table.data tr"); } public MemberItem getMembersByIdx(Integer idx) { @@ -44,28 +40,28 @@ public class MembersPage { } public MembersPage shouldHaveTotal(int total) { - $(".panel-vertical > span > strong").shouldHave(text(String.valueOf(total))); + Selenide.$(".panel-vertical > span > strong").shouldHave(Condition.text(String.valueOf(total))); return this; } public MembersPage searchForMember(String query) { - $(".page .search-box-input").shouldBe(visible).val("").sendKeys(query); + Selenide.$(".page .search-box-input").shouldBe(Condition.visible).val("").sendKeys(query); return this; } public MembersPage canAddMember() { - $(".page-actions").shouldBe(visible); + Selenide.$(".page-actions").shouldBe(Condition.visible); return this; } public MembersPage canNotAddMember() { - $(".page-actions").shouldNot(Condition.exist); + Selenide.$(".page-actions").shouldNot(Condition.exist); return this; } public MembersPage addMember(String login) { this.canAddMember(); - $(".page-actions button").click(); + Selenide.$(".page-actions button").click(); SelenideElement modal = this.getModal("Add user"); SelenideElement input = modal.$(".Select-input input"); @@ -77,8 +73,8 @@ public class MembersPage { } private SelenideElement getModal(String title) { - $(".modal-head").should(Condition.exist).shouldHave(text(title)); - SelenideElement form = $(".ReactModalPortal form"); + Selenide.$(".modal-head").should(Condition.exist).shouldHave(Condition.text(title)); + SelenideElement form = Selenide.$(".ReactModalPortal form"); form.should(Condition.exist); return form; } diff --git a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/package-info.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/package-info.java new file mode 100644 index 00000000000..bc9f94356e3 --- /dev/null +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/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; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/tests/src/test/java/org/sonarqube/pageobjects/projects/FacetItem.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/projects/FacetItem.java similarity index 96% rename from tests/src/test/java/org/sonarqube/pageobjects/projects/FacetItem.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/projects/FacetItem.java index ec3197c5a62..74425419c26 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/projects/FacetItem.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/projects/FacetItem.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.pageobjects.projects; +package org.sonarqube.qa.util.pageobjects.projects; import com.codeborne.selenide.Condition; import com.codeborne.selenide.SelenideElement; diff --git a/tests/src/test/java/org/sonarqube/pageobjects/projects/ProjectItem.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/projects/ProjectItem.java similarity index 96% rename from tests/src/test/java/org/sonarqube/pageobjects/projects/ProjectItem.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/projects/ProjectItem.java index 6261efa9129..45ef2cb62ec 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/projects/ProjectItem.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/projects/ProjectItem.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.pageobjects.projects; +package org.sonarqube.qa.util.pageobjects.projects; import com.codeborne.selenide.Condition; import com.codeborne.selenide.SelenideElement; diff --git a/tests/src/test/java/org/sonarqube/pageobjects/projects/ProjectsPage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/projects/ProjectsPage.java similarity index 77% rename from tests/src/test/java/org/sonarqube/pageobjects/projects/ProjectsPage.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/projects/ProjectsPage.java index 767c2fbf2d8..cc55ce2d619 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/projects/ProjectsPage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/projects/ProjectsPage.java @@ -17,31 +17,27 @@ * 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.pageobjects.projects; +package org.sonarqube.qa.util.pageobjects.projects; import com.codeborne.selenide.Condition; import com.codeborne.selenide.ElementsCollection; +import com.codeborne.selenide.Selenide; import com.codeborne.selenide.SelenideElement; - -import static com.codeborne.selenide.Condition.text; -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.$$; -import static com.codeborne.selenide.WebDriverRunner.url; -import static org.assertj.core.api.Assertions.assertThat; +import com.codeborne.selenide.WebDriverRunner; +import org.assertj.core.api.Assertions; public class ProjectsPage { public ProjectsPage() { - $("#projects-page").shouldBe(visible); + Selenide.$("#projects-page").shouldBe(Condition.visible); } public ElementsCollection getProjects() { - return $$(".projects-list > .boxed-group"); + return Selenide.$$(".projects-list > .boxed-group"); } public ElementsCollection getFacets() { - return $$(".search-navigator-facet-box"); + return Selenide.$$(".search-navigator-facet-box"); } public ProjectItem getProjectByKey(String projectKey) { @@ -60,37 +56,37 @@ public class ProjectsPage { public ProjectsPage shouldHaveTotal(int total) { // warning - number is localized - $("#projects-total").shouldHave(text(String.valueOf(total))); + Selenide.$("#projects-total").shouldHave(Condition.text(String.valueOf(total))); return this; } public ProjectsPage shouldDisplayAllProjects() { - assertThat(url()).endsWith("/projects"); + Assertions.assertThat(WebDriverRunner.url()).endsWith("/projects"); return this; } public ProjectsPage shouldDisplayAllProjectsWidthSort(String sort) { - assertThat(url()).endsWith("/projects?sort=" + sort); + Assertions.assertThat(WebDriverRunner.url()).endsWith("/projects?sort=" + sort); return this; } public ProjectsPage shouldDisplayFavoriteProjects() { - assertThat(url()).endsWith("/projects/favorite"); + Assertions.assertThat(WebDriverRunner.url()).endsWith("/projects/favorite"); return this; } public ProjectsPage selectAllProjects() { - $("#all-projects").click(); + Selenide.$("#all-projects").click(); return shouldDisplayAllProjects(); } public ProjectsPage selectFavoriteProjects() { - $("#favorite-projects").click(); + Selenide.$("#favorite-projects").click(); return shouldDisplayFavoriteProjects(); } public ProjectsPage searchProject(String search) { - SelenideElement searchInput = $(".projects-topbar-item-search input"); + SelenideElement searchInput = Selenide.$(".projects-topbar-item-search input"); searchInput.setValue("").sendKeys(search); return this; } @@ -115,6 +111,6 @@ public class ProjectsPage { } private SelenideElement getOpenTopBar() { - return $(".projects-topbar-items").should(Condition.exist); + return Selenide.$(".projects-topbar-items").should(Condition.exist); } } diff --git a/tests/src/test/java/org/sonarqube/pageobjects/settings/PropertySetInput.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/settings/PropertySetInput.java similarity index 90% rename from tests/src/test/java/org/sonarqube/pageobjects/settings/PropertySetInput.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/settings/PropertySetInput.java index 4f1c7db3a32..fb5de082a9c 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/settings/PropertySetInput.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/settings/PropertySetInput.java @@ -17,12 +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.pageobjects.settings; +package org.sonarqube.qa.util.pageobjects.settings; +import com.codeborne.selenide.Condition; import com.codeborne.selenide.SelenideElement; -import static com.codeborne.selenide.Condition.exist; - public class PropertySetInput { private final SelenideElement elt; @@ -42,7 +41,7 @@ public class PropertySetInput { public PropertySetInput save() { elt.find(".js-save-changes").click(); - elt.find(".js-save-changes").shouldNot(exist); + elt.find(".js-save-changes").shouldNot(Condition.exist); return this; } } diff --git a/tests/src/test/java/org/sonarqube/pageobjects/settings/SettingsPage.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/settings/SettingsPage.java similarity index 61% rename from tests/src/test/java/org/sonarqube/pageobjects/settings/SettingsPage.java rename to server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/settings/SettingsPage.java index 1d1af886d1e..1bc4e646d5d 100644 --- a/tests/src/test/java/org/sonarqube/pageobjects/settings/SettingsPage.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/settings/SettingsPage.java @@ -17,68 +17,64 @@ * 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.pageobjects.settings; +package org.sonarqube.qa.util.pageobjects.settings; +import com.codeborne.selenide.Condition; +import com.codeborne.selenide.Selenide; import com.codeborne.selenide.SelenideElement; import org.openqa.selenium.By; -import static com.codeborne.selenide.Condition.cssClass; -import static com.codeborne.selenide.Condition.exactValue; -import static com.codeborne.selenide.Condition.exist; -import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; - public class SettingsPage { public SettingsPage() { - $("#settings-page").shouldBe(visible); + Selenide.$("#settings-page").shouldBe(Condition.visible); } public SettingsPage assertMenuContains(String categoryName) { - $(".side-tabs-menu").$(By.linkText(categoryName)).shouldBe(visible); + Selenide.$(".side-tabs-menu").$(By.linkText(categoryName)).shouldBe(Condition.visible); return this; } public SettingsPage assertSettingDisplayed(String settingKey) { - $(".settings-definition[data-key='" + settingKey + "']").shouldBe(visible); + Selenide.$(".settings-definition[data-key='" + settingKey + "']").shouldBe(Condition.visible); return this; } public SettingsPage assertSettingNotDisplayed(String settingKey) { - $(".settings-definition[data-key='" + settingKey + "']").shouldNotBe(visible); + Selenide.$(".settings-definition[data-key='" + settingKey + "']").shouldNotBe(Condition.visible); return this; } public SettingsPage openCategory(String categoryName) { - $(".side-tabs-menu").$(By.linkText(categoryName)).click(); + Selenide.$(".side-tabs-menu").$(By.linkText(categoryName)).click(); return this; } public SettingsPage assertStringSettingValue(String settingKey, String value) { - $("input[name=\"settings[" + settingKey + "]\"]").shouldHave(exactValue(value)); + Selenide.$("input[name=\"settings[" + settingKey + "]\"]").shouldHave(Condition.exactValue(value)); return this; } public SettingsPage assertBooleanSettingValue(String settingKey, boolean value) { - SelenideElement toggle = $("button[name=\"settings[" + settingKey + "]\"]"); + SelenideElement toggle = Selenide.$("button[name=\"settings[" + settingKey + "]\"]"); if (value) { - toggle.shouldHave(cssClass("boolean-toggle-on")); + toggle.shouldHave(Condition.cssClass("boolean-toggle-on")); } else { - toggle.shouldNotHave(cssClass("boolean-toggle-on")); + toggle.shouldNotHave(Condition.cssClass("boolean-toggle-on")); } return this; } public SettingsPage setStringValue(String settingKey, String value) { - SelenideElement setting = $(".settings-definition[data-key=\"" + settingKey + "\"]"); + SelenideElement setting = Selenide.$(".settings-definition[data-key=\"" + settingKey + "\"]"); setting.find("input").val(value); setting.find(".js-save-changes").click(); - setting.find(".js-save-changes").shouldNot(exist); + setting.find(".js-save-changes").shouldNot(Condition.exist); return this; } public PropertySetInput getPropertySetInput(String settingKey) { - SelenideElement setting = $(".settings-definition[data-key=\"" + settingKey + "\"]"); + SelenideElement setting = Selenide.$(".settings-definition[data-key=\"" + settingKey + "\"]"); return new PropertySetInput(setting); } } diff --git a/tests/pom.xml b/tests/pom.xml index b16dedf4259..4850c7b66e2 100644 --- a/tests/pom.xml +++ b/tests/pom.xml @@ -42,6 +42,12 @@ zip provided + + org.sonarsource.sonarqube + sonar-qa-util + ${project.parent.version} + test + org.sonarsource.sonarqube sonar-process diff --git a/tests/src/test/java/org/sonarqube/tests/Tester.java b/tests/src/test/java/org/sonarqube/tests/Tester.java index 43ea1fe380b..8f5e58ffbbc 100644 --- a/tests/src/test/java/org/sonarqube/tests/Tester.java +++ b/tests/src/test/java/org/sonarqube/tests/Tester.java @@ -23,7 +23,7 @@ import com.sonar.orchestrator.Orchestrator; import javax.annotation.Nullable; import org.apache.commons.lang.StringUtils; import org.junit.rules.ExternalResource; -import org.sonarqube.pageobjects.Navigation; +import org.sonarqube.qa.util.pageobjects.Navigation; import org.sonarqube.ws.client.WsClient; import util.selenium.Selenese; diff --git a/tests/src/test/java/org/sonarqube/tests/issue/IssuesPageTest.java b/tests/src/test/java/org/sonarqube/tests/issue/IssuesPageTest.java index cc3829b78e2..e3065647298 100644 --- a/tests/src/test/java/org/sonarqube/tests/issue/IssuesPageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/issue/IssuesPageTest.java @@ -26,9 +26,9 @@ import org.junit.BeforeClass; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.pageobjects.Navigation; -import org.sonarqube.pageobjects.issues.Issue; -import org.sonarqube.pageobjects.issues.IssuesPage; +import org.sonarqube.qa.util.pageobjects.Navigation; +import org.sonarqube.qa.util.pageobjects.issues.Issue; +import org.sonarqube.qa.util.pageobjects.issues.IssuesPage; import util.ItUtils; import util.user.UserRule; 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 683b808fbbe..a9e5bcf3eee 100644 --- a/tests/src/test/java/org/sonarqube/tests/issue/OrganizationIssueAssignTest.java +++ b/tests/src/test/java/org/sonarqube/tests/issue/OrganizationIssueAssignTest.java @@ -38,7 +38,7 @@ import org.sonarqube.ws.client.issue.BulkChangeRequest; import org.sonarqube.ws.client.issue.SearchWsRequest; import org.sonarqube.ws.client.project.CreateRequest; import org.sonarqube.ws.client.qualityprofile.AddProjectRequest; -import org.sonarqube.pageobjects.issues.IssuesPage; +import org.sonarqube.qa.util.pageobjects.issues.IssuesPage; import util.issue.IssueRule; import static java.lang.String.format; 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 979467ee693..df0e4c58dd9 100644 --- a/tests/src/test/java/org/sonarqube/tests/issue/OrganizationIssuesPageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/issue/OrganizationIssuesPageTest.java @@ -25,7 +25,7 @@ import org.junit.Before; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.pageobjects.Navigation; +import org.sonarqube.qa.util.pageobjects.Navigation; import org.sonarqube.tests.Category6Suite; import org.sonarqube.tests.Tester; import org.sonarqube.ws.Organizations; diff --git a/tests/src/test/java/org/sonarqube/tests/marketplace/UpdateCenterTest.java b/tests/src/test/java/org/sonarqube/tests/marketplace/UpdateCenterTest.java index 220be947dcd..83dc231470c 100644 --- a/tests/src/test/java/org/sonarqube/tests/marketplace/UpdateCenterTest.java +++ b/tests/src/test/java/org/sonarqube/tests/marketplace/UpdateCenterTest.java @@ -24,8 +24,8 @@ import org.junit.After; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.pageobjects.MarketplacePage; -import org.sonarqube.pageobjects.Navigation; +import org.sonarqube.qa.util.pageobjects.MarketplacePage; +import org.sonarqube.qa.util.pageobjects.Navigation; import util.user.UserRule; import static util.ItUtils.pluginArtifact; diff --git a/tests/src/test/java/org/sonarqube/tests/measure/DifferentialPeriodsTest.java b/tests/src/test/java/org/sonarqube/tests/measure/DifferentialPeriodsTest.java index 8df93be6cf6..a9b2b814ea3 100644 --- a/tests/src/test/java/org/sonarqube/tests/measure/DifferentialPeriodsTest.java +++ b/tests/src/test/java/org/sonarqube/tests/measure/DifferentialPeriodsTest.java @@ -29,7 +29,7 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonarqube.ws.client.WsClient; -import org.sonarqube.pageobjects.Navigation; +import org.sonarqube.qa.util.pageobjects.Navigation; import util.ItUtils; import util.user.UserRule; diff --git a/tests/src/test/java/org/sonarqube/tests/measure/ProjectDashboardTest.java b/tests/src/test/java/org/sonarqube/tests/measure/ProjectDashboardTest.java index 956c8e7f109..02d59fa7222 100644 --- a/tests/src/test/java/org/sonarqube/tests/measure/ProjectDashboardTest.java +++ b/tests/src/test/java/org/sonarqube/tests/measure/ProjectDashboardTest.java @@ -30,14 +30,13 @@ import org.junit.Test; import org.openqa.selenium.Keys; import org.sonarqube.ws.client.PostRequest; import org.sonarqube.ws.client.WsClient; -import org.sonarqube.pageobjects.Navigation; -import org.sonarqube.pageobjects.ProjectDashboardPage; +import org.sonarqube.qa.util.pageobjects.Navigation; +import org.sonarqube.qa.util.pageobjects.ProjectDashboardPage; import util.user.UserRule; import static com.codeborne.selenide.Condition.exist; import static com.codeborne.selenide.Condition.hasText; import static com.codeborne.selenide.Condition.text; -import static com.codeborne.selenide.Condition.visible; import static util.ItUtils.newAdminWsClient; import static util.ItUtils.projectDir; import static util.selenium.Selenese.runSelenese; 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 f2466a2b3d7..2ea1009b617 100644 --- a/tests/src/test/java/org/sonarqube/tests/measure/ProjectMeasuresPageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/measure/ProjectMeasuresPageTest.java @@ -25,9 +25,9 @@ import org.junit.Before; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.pageobjects.Navigation; -import org.sonarqube.pageobjects.measures.MeasureContent; -import org.sonarqube.pageobjects.measures.MeasuresPage; +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; 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 22d209954e3..730298db1e6 100644 --- a/tests/src/test/java/org/sonarqube/tests/organization/BillingTest.java +++ b/tests/src/test/java/org/sonarqube/tests/organization/BillingTest.java @@ -36,7 +36,7 @@ import org.sonarqube.ws.client.WsResponse; import org.sonarqube.ws.client.organization.UpdateProjectVisibilityWsRequest; import org.sonarqube.ws.client.project.CreateRequest; import org.sonarqube.ws.client.project.UpdateVisibilityRequest; -import org.sonarqube.pageobjects.Navigation; +import org.sonarqube.qa.util.pageobjects.Navigation; import util.ItUtils; import static java.lang.String.format; 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 a3a47279ed7..817248a14fb 100644 --- a/tests/src/test/java/org/sonarqube/tests/organization/OrganizationMembershipUiTest.java +++ b/tests/src/test/java/org/sonarqube/tests/organization/OrganizationMembershipUiTest.java @@ -26,7 +26,7 @@ import org.junit.Before; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.pageobjects.organization.MembersPage; +import org.sonarqube.qa.util.pageobjects.organization.MembersPage; import org.sonarqube.tests.Category6Suite; import org.sonarqube.tests.Tester; import org.sonarqube.ws.Organizations.Organization; diff --git a/tests/src/test/java/org/sonarqube/tests/projectAdministration/BackgroundTasksTest.java b/tests/src/test/java/org/sonarqube/tests/projectAdministration/BackgroundTasksTest.java index 0c4e916ebf7..0e7eee2e783 100644 --- a/tests/src/test/java/org/sonarqube/tests/projectAdministration/BackgroundTasksTest.java +++ b/tests/src/test/java/org/sonarqube/tests/projectAdministration/BackgroundTasksTest.java @@ -28,9 +28,9 @@ import org.junit.BeforeClass; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.pageobjects.BackgroundTaskItem; -import org.sonarqube.pageobjects.BackgroundTasksPage; -import org.sonarqube.pageobjects.Navigation; +import org.sonarqube.qa.util.pageobjects.BackgroundTaskItem; +import org.sonarqube.qa.util.pageobjects.BackgroundTasksPage; +import org.sonarqube.qa.util.pageobjects.Navigation; import util.user.UserRule; import static com.codeborne.selenide.CollectionCondition.sizeGreaterThan; 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 b2f72b1017c..88f75d55db5 100644 --- a/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectAdministrationTest.java +++ b/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectAdministrationTest.java @@ -38,9 +38,9 @@ import org.openqa.selenium.By; import org.sonar.wsclient.SonarClient; import org.sonar.wsclient.base.HttpException; import org.sonar.wsclient.user.UserParameters; -import org.sonarqube.pageobjects.Navigation; -import org.sonarqube.pageobjects.ProjectsManagementPage; -import org.sonarqube.pageobjects.settings.SettingsPage; +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.ws.WsPermissions; diff --git a/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectKeyUpdatePageTest.java b/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectKeyUpdatePageTest.java index fb9572d3748..b907898c6ee 100644 --- a/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectKeyUpdatePageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectKeyUpdatePageTest.java @@ -28,8 +28,8 @@ import org.junit.ClassRule; import org.junit.Test; import org.sonarqube.ws.client.PostRequest; import org.sonarqube.ws.client.WsClient; -import org.sonarqube.pageobjects.Navigation; -import org.sonarqube.pageobjects.ProjectKeyPage; +import org.sonarqube.qa.util.pageobjects.Navigation; +import org.sonarqube.qa.util.pageobjects.ProjectKeyPage; import static com.codeborne.selenide.Condition.visible; import static com.codeborne.selenide.Selenide.$; diff --git a/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectLinksPageTest.java b/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectLinksPageTest.java index 5cb04c3b4e8..b6ad18a16b5 100644 --- a/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectLinksPageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectLinksPageTest.java @@ -34,9 +34,9 @@ import org.sonarqube.ws.WsProjectLinks.CreateWsResponse; import org.sonarqube.ws.client.WsClient; import org.sonarqube.ws.client.projectlinks.CreateWsRequest; import org.sonarqube.ws.client.projectlinks.DeleteWsRequest; -import org.sonarqube.pageobjects.Navigation; -import org.sonarqube.pageobjects.ProjectLinkItem; -import org.sonarqube.pageobjects.ProjectLinksPage; +import org.sonarqube.qa.util.pageobjects.Navigation; +import org.sonarqube.qa.util.pageobjects.ProjectLinkItem; +import org.sonarqube.qa.util.pageobjects.ProjectLinksPage; import util.user.UserRule; import static com.codeborne.selenide.Condition.hasText; diff --git a/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectPermissionsTest.java b/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectPermissionsTest.java index 2184a9a9506..410df9fa171 100644 --- a/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectPermissionsTest.java +++ b/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectPermissionsTest.java @@ -27,8 +27,8 @@ import org.junit.BeforeClass; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.pageobjects.Navigation; -import org.sonarqube.pageobjects.ProjectPermissionsPage; +import org.sonarqube.qa.util.pageobjects.Navigation; +import org.sonarqube.qa.util.pageobjects.ProjectPermissionsPage; import util.user.UserRule; import static util.ItUtils.projectDir; 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 438d239d6c9..6a3bdbbe8bc 100644 --- a/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectQualityGatePageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectQualityGatePageTest.java @@ -33,8 +33,8 @@ import org.sonar.wsclient.qualitygate.QualityGateClient; import org.sonarqube.ws.client.PostRequest; import org.sonarqube.ws.client.WsClient; import org.sonarqube.ws.client.qualitygate.SelectWsRequest; -import org.sonarqube.pageobjects.Navigation; -import org.sonarqube.pageobjects.ProjectQualityGatePage; +import org.sonarqube.qa.util.pageobjects.Navigation; +import org.sonarqube.qa.util.pageobjects.ProjectQualityGatePage; import static util.ItUtils.newAdminWsClient; diff --git a/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectVisibilityPageTest.java b/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectVisibilityPageTest.java index 438d2ea7a36..d5b4b12baaf 100644 --- a/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectVisibilityPageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/projectAdministration/ProjectVisibilityPageTest.java @@ -31,8 +31,8 @@ import org.sonarqube.ws.WsComponents; import org.sonarqube.ws.client.component.SearchProjectsRequest; import org.sonarqube.ws.client.permission.RemoveGroupWsRequest; import org.sonarqube.ws.client.project.UpdateVisibilityRequest; -import org.sonarqube.pageobjects.Navigation; -import org.sonarqube.pageobjects.ProjectsManagementPage; +import org.sonarqube.qa.util.pageobjects.Navigation; +import org.sonarqube.qa.util.pageobjects.ProjectsManagementPage; import util.user.UserRule; import static org.assertj.core.api.Assertions.assertThat; diff --git a/tests/src/test/java/org/sonarqube/tests/projectEvent/ProjectActivityPageTest.java b/tests/src/test/java/org/sonarqube/tests/projectEvent/ProjectActivityPageTest.java index d6514a930f0..7261e43d083 100644 --- a/tests/src/test/java/org/sonarqube/tests/projectEvent/ProjectActivityPageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/projectEvent/ProjectActivityPageTest.java @@ -27,9 +27,9 @@ import org.junit.Before; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.pageobjects.Navigation; -import org.sonarqube.pageobjects.ProjectActivityPage; -import org.sonarqube.pageobjects.ProjectAnalysisItem; +import org.sonarqube.qa.util.pageobjects.Navigation; +import org.sonarqube.qa.util.pageobjects.ProjectActivityPage; +import org.sonarqube.qa.util.pageobjects.ProjectAnalysisItem; import util.user.UserRule; import static util.ItUtils.projectDir; 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 3bbe47d1174..b09816c222c 100644 --- a/tests/src/test/java/org/sonarqube/tests/projectSearch/LeakProjectsPageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/projectSearch/LeakProjectsPageTest.java @@ -33,7 +33,7 @@ import org.junit.Rule; import org.junit.Test; import org.sonarqube.tests.Tester; import org.sonarqube.ws.Organizations.Organization; -import org.sonarqube.pageobjects.projects.ProjectsPage; +import org.sonarqube.qa.util.pageobjects.projects.ProjectsPage; import static com.codeborne.selenide.WebDriverRunner.url; import static java.util.Arrays.asList; 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 cdd2e9b97d2..1a9b5a4a0a4 100644 --- a/tests/src/test/java/org/sonarqube/tests/projectSearch/ProjectsPageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/projectSearch/ProjectsPageTest.java @@ -27,8 +27,8 @@ import org.junit.BeforeClass; import org.junit.ClassRule; import org.junit.Test; import org.junit.rules.RuleChain; -import org.sonarqube.pageobjects.Navigation; -import org.sonarqube.pageobjects.projects.ProjectsPage; +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.ws.WsUsers; 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 fc846cb244f..02e99e90a88 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityGate/OrganizationQualityGateUiTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityGate/OrganizationQualityGateUiTest.java @@ -27,8 +27,8 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.openqa.selenium.By; -import org.sonarqube.pageobjects.ProjectDashboardPage; -import org.sonarqube.pageobjects.QualityGatePage; +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.ws.Organizations; 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 132e081054c..5c342390d41 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateUiTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityGate/QualityGateUiTest.java @@ -31,8 +31,8 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.openqa.selenium.By; -import org.sonarqube.pageobjects.Navigation; -import org.sonarqube.pageobjects.ProjectActivityPage; +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.ws.WsProjects.CreateWsResponse.Project; 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 1414b129683..5a55561549c 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityProfile/OrganizationQualityProfilesUiTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityProfile/OrganizationQualityProfilesUiTest.java @@ -27,9 +27,9 @@ import org.junit.ClassRule; import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.pageobjects.Navigation; -import org.sonarqube.pageobjects.QualityProfilePage; -import org.sonarqube.pageobjects.RulesPage; +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; 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 f67a20b0acd..5ad0041e602 100644 --- a/tests/src/test/java/org/sonarqube/tests/qualityProfile/QualityProfilesUiTest.java +++ b/tests/src/test/java/org/sonarqube/tests/qualityProfile/QualityProfilesUiTest.java @@ -28,7 +28,7 @@ import org.junit.ClassRule; import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.pageobjects.Navigation; +import org.sonarqube.qa.util.pageobjects.Navigation; import org.sonarqube.tests.Category4Suite; import org.sonarqube.tests.Tester; import org.sonarqube.ws.client.PostRequest; 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 07e76dcc2c6..527dbe423ce 100644 --- a/tests/src/test/java/org/sonarqube/tests/rule/RulesPageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/rule/RulesPageTest.java @@ -23,7 +23,7 @@ import com.sonar.orchestrator.Orchestrator; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.pageobjects.RulesPage; +import org.sonarqube.qa.util.pageobjects.RulesPage; import org.sonarqube.tests.Category2Suite; import org.sonarqube.tests.Tester; 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 ae11a552e85..60065d71954 100644 --- a/tests/src/test/java/org/sonarqube/tests/serverSystem/SystemInfoTest.java +++ b/tests/src/test/java/org/sonarqube/tests/serverSystem/SystemInfoTest.java @@ -27,7 +27,7 @@ import org.apache.commons.io.FileUtils; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.pageobjects.SystemInfoPage; +import org.sonarqube.qa.util.pageobjects.SystemInfoPage; import org.sonarqube.tests.Category4Suite; import org.sonarqube.tests.Tester; import org.sonarqube.ws.client.GetRequest; diff --git a/tests/src/test/java/org/sonarqube/tests/settings/PropertySetsTest.java b/tests/src/test/java/org/sonarqube/tests/settings/PropertySetsTest.java index d30b68168e3..a6241c79374 100644 --- a/tests/src/test/java/org/sonarqube/tests/settings/PropertySetsTest.java +++ b/tests/src/test/java/org/sonarqube/tests/settings/PropertySetsTest.java @@ -34,8 +34,8 @@ import org.sonarqube.ws.Settings; import org.sonarqube.ws.client.setting.SetRequest; import org.sonarqube.ws.client.setting.SettingsService; import org.sonarqube.ws.client.setting.ValuesRequest; -import org.sonarqube.pageobjects.Navigation; -import org.sonarqube.pageobjects.settings.SettingsPage; +import org.sonarqube.qa.util.pageobjects.Navigation; +import org.sonarqube.qa.util.pageobjects.settings.SettingsPage; import util.user.UserRule; import static com.google.common.collect.Lists.newArrayList; diff --git a/tests/src/test/java/org/sonarqube/tests/settings/SettingsTestRestartingOrchestrator.java b/tests/src/test/java/org/sonarqube/tests/settings/SettingsTestRestartingOrchestrator.java index 60d690257e9..19c40338289 100644 --- a/tests/src/test/java/org/sonarqube/tests/settings/SettingsTestRestartingOrchestrator.java +++ b/tests/src/test/java/org/sonarqube/tests/settings/SettingsTestRestartingOrchestrator.java @@ -27,8 +27,8 @@ import org.junit.After; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; -import org.sonarqube.pageobjects.EncryptionPage; -import org.sonarqube.pageobjects.Navigation; +import org.sonarqube.qa.util.pageobjects.EncryptionPage; +import org.sonarqube.qa.util.pageobjects.Navigation; import util.user.UserRule; import static com.codeborne.selenide.Condition.visible; diff --git a/tests/src/test/java/org/sonarqube/tests/ui/SourceViewerTest.java b/tests/src/test/java/org/sonarqube/tests/ui/SourceViewerTest.java index 64ff1451740..f37daa3229f 100644 --- a/tests/src/test/java/org/sonarqube/tests/ui/SourceViewerTest.java +++ b/tests/src/test/java/org/sonarqube/tests/ui/SourceViewerTest.java @@ -25,7 +25,7 @@ import org.sonarqube.tests.Category4Suite; import org.junit.BeforeClass; import org.junit.ClassRule; import org.junit.Test; -import org.sonarqube.pageobjects.Navigation; +import org.sonarqube.qa.util.pageobjects.Navigation; import static com.codeborne.selenide.Condition.exist; import static com.codeborne.selenide.Selenide.$; diff --git a/tests/src/test/java/org/sonarqube/tests/ui/UiTest.java b/tests/src/test/java/org/sonarqube/tests/ui/UiTest.java index 040498df101..050960d843f 100644 --- a/tests/src/test/java/org/sonarqube/tests/ui/UiTest.java +++ b/tests/src/test/java/org/sonarqube/tests/ui/UiTest.java @@ -29,7 +29,7 @@ import org.junit.ClassRule; import org.junit.Test; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.WsResponse; -import org.sonarqube.pageobjects.Navigation; +import org.sonarqube.qa.util.pageobjects.Navigation; import util.ItUtils; import static com.codeborne.selenide.Condition.exist; diff --git a/tests/src/test/java/org/sonarqube/tests/user/BaseIdentityProviderTest.java b/tests/src/test/java/org/sonarqube/tests/user/BaseIdentityProviderTest.java index 65cd095d285..bcd7384dfae 100644 --- a/tests/src/test/java/org/sonarqube/tests/user/BaseIdentityProviderTest.java +++ b/tests/src/test/java/org/sonarqube/tests/user/BaseIdentityProviderTest.java @@ -22,7 +22,6 @@ package org.sonarqube.tests.user; import com.google.common.base.Joiner; import com.google.common.base.Optional; import com.sonar.orchestrator.Orchestrator; -import org.sonarqube.tests.Category4Suite; import java.io.File; import org.apache.commons.io.FileUtils; import org.junit.After; @@ -30,10 +29,11 @@ import org.junit.Before; import org.junit.BeforeClass; import org.junit.ClassRule; import org.junit.Test; +import org.sonarqube.qa.util.pageobjects.Navigation; +import org.sonarqube.tests.Category4Suite; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.WsClient; import org.sonarqube.ws.client.user.CreateRequest; -import org.sonarqube.pageobjects.Navigation; import util.user.UserRule; import util.user.Users; 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 1f0ae8f71ee..7d731b7b773 100644 --- a/tests/src/test/java/org/sonarqube/tests/user/ForceAuthenticationTest.java +++ b/tests/src/test/java/org/sonarqube/tests/user/ForceAuthenticationTest.java @@ -34,7 +34,7 @@ import org.sonarqube.ws.client.WsClient; import org.sonarqube.ws.client.WsConnector; import org.sonarqube.ws.client.WsRequest; import org.sonarqube.ws.client.WsResponse; -import org.sonarqube.pageobjects.Navigation; +import org.sonarqube.qa.util.pageobjects.Navigation; import static org.assertj.core.api.Assertions.assertThat; import static org.sonarqube.ws.client.WsRequest.Method.GET; 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 7c17b06599a..8dc84a3ad2e 100644 --- a/tests/src/test/java/org/sonarqube/tests/user/LocalAuthenticationTest.java +++ b/tests/src/test/java/org/sonarqube/tests/user/LocalAuthenticationTest.java @@ -26,8 +26,8 @@ import org.junit.After; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.pageobjects.LoginPage; -import org.sonarqube.pageobjects.Navigation; +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; 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 de2c4a992d3..58877d221e2 100644 --- a/tests/src/test/java/org/sonarqube/tests/user/MyAccountPageTest.java +++ b/tests/src/test/java/org/sonarqube/tests/user/MyAccountPageTest.java @@ -21,15 +21,15 @@ package org.sonarqube.tests.user; import com.sonar.orchestrator.Orchestrator; import com.sonar.orchestrator.build.SonarScanner; -import org.sonarqube.tests.Category4Suite; import org.junit.Before; import org.junit.ClassRule; 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.ws.WsUsers.CreateWsResponse.User; import org.sonarqube.ws.client.PostRequest; -import org.sonarqube.pageobjects.Navigation; import static com.codeborne.selenide.Condition.text; import static com.codeborne.selenide.Condition.visible; 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 65312825703..62eb79412c2 100644 --- a/tests/src/test/java/org/sonarqube/tests/user/OAuth2IdentityProviderTest.java +++ b/tests/src/test/java/org/sonarqube/tests/user/OAuth2IdentityProviderTest.java @@ -32,7 +32,7 @@ import org.junit.Before; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; -import org.sonarqube.pageobjects.Navigation; +import org.sonarqube.qa.util.pageobjects.Navigation; import org.sonarqube.tests.Category4Suite; import org.sonarqube.tests.Tester; import org.sonarqube.ws.WsUsers.SearchWsResponse.User; 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 12de1b740af..f1ed633686c 100644 --- a/tests/src/test/java/org/sonarqube/tests/user/RealmAuthenticationTest.java +++ b/tests/src/test/java/org/sonarqube/tests/user/RealmAuthenticationTest.java @@ -36,7 +36,7 @@ import org.sonar.wsclient.base.HttpException; import org.sonar.wsclient.connectors.HttpClient4Connector; import org.sonar.wsclient.services.AuthenticationQuery; import org.sonar.wsclient.user.UserParameters; -import org.sonarqube.pageobjects.SystemInfoPage; +import org.sonarqube.qa.util.pageobjects.SystemInfoPage; import org.sonarqube.tests.Tester; import org.sonarqube.ws.client.GetRequest; import org.sonarqube.ws.client.WsResponse; diff --git a/tests/src/test/java/util/selenium/SeleneseRunner.java b/tests/src/test/java/util/selenium/SeleneseRunner.java index 96cc4e609a2..67b2ad67fe8 100644 --- a/tests/src/test/java/util/selenium/SeleneseRunner.java +++ b/tests/src/test/java/util/selenium/SeleneseRunner.java @@ -39,7 +39,7 @@ import org.openqa.selenium.WebElement; import org.openqa.selenium.logging.LogEntries; import org.openqa.selenium.logging.LogEntry; import org.openqa.selenium.logging.LogType; -import org.sonarqube.pageobjects.SelenideConfig; +import org.sonarqube.qa.util.SelenideConfig; import static java.nio.charset.StandardCharsets.UTF_8; import static java.util.Objects.requireNonNull; -- 2.39.5