From: Julien Lancelot Date: Tue, 19 Jun 2018 09:38:59 +0000 (+0200) Subject: Replace some selenium tests by selenide in LocalAuthenticationTest X-Git-Tag: 7.5~965 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=3ba09d3fb4328ee12b68c33b1b9a16824cb04a25;p=sonarqube.git Replace some selenium tests by selenide in LocalAuthenticationTest --- diff --git a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/Navigation.java b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/Navigation.java index aff024938ee..6a26317a11a 100644 --- a/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/Navigation.java +++ b/server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/Navigation.java @@ -325,9 +325,9 @@ public class Navigation { } } - public Navigation shouldBeRedirectedToLogin() { + public LoginPage shouldBeRedirectedToLogin() { Selenide.$("#login_form").should(Condition.visible); - return this; + return Selenide.page(LoginPage.class); } } 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 51e258bdfb8..0b15743fc48 100644 --- a/tests/src/test/java/org/sonarqube/tests/user/LocalAuthenticationTest.java +++ b/tests/src/test/java/org/sonarqube/tests/user/LocalAuthenticationTest.java @@ -22,7 +22,6 @@ package org.sonarqube.tests.user; import com.codeborne.selenide.Condition; import com.sonar.orchestrator.Orchestrator; import java.util.UUID; -import org.junit.After; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; @@ -46,10 +45,10 @@ import org.sonarqube.ws.client.usertokens.SearchRequest; import org.sonarqube.ws.client.usertokens.UserTokensService; import util.selenium.Selenese; +import static com.codeborne.selenide.WebDriverRunner.url; import static java.lang.String.format; import static java.util.Arrays.asList; import static org.assertj.core.api.Assertions.assertThat; -import static util.ItUtils.resetSettings; import static util.ItUtils.setServerProperty; public class LocalAuthenticationTest { @@ -60,11 +59,6 @@ public class LocalAuthenticationTest { @Rule public Tester tester = new Tester(orchestrator).disableOrganizations(); - @After - public void resetProperties() { - resetSettings(orchestrator, null, "sonar.forceAuthentication"); - } - @Test public void log_in_with_correct_credentials_then_log_out() { User user = tester.users().generate(); @@ -170,16 +164,57 @@ public class LocalAuthenticationTest { } @Test - public void test_authentication_redirects_in_ui() { - tester.users().generate(u -> u.setLogin("simple-user").setPassword("password")); - tester.users().generateAdministrator(u -> u.setLogin("admin-user").setPassword("admin-user")); - Selenese.runSelenese(orchestrator, - "/user/LocalAuthenticationTest/redirect_to_login_when_not_enough_privilege.html", - // SONAR-2132 - "/user/LocalAuthenticationTest/redirect_to_original_url_after_direct_login.html", - "/user/LocalAuthenticationTest/redirect_to_original_url_with_parameters_after_direct_login.html", - // SONAR-2009 - "/user/LocalAuthenticationTest/redirect_to_original_url_after_indirect_login.html"); + public void redirect_to_login_when_not_enough_privilege() { + User user = tester.users().generate(); + Navigation navigation = tester.openBrowser() + .logIn() + .submitCredentials(user.getLogin()); + + navigation.open("/settings"); + + navigation.shouldBeRedirectedToLogin(); + } + + @Test + public void redirect_to_original_url_after_indirect_login() { + User admin = tester.users().generateAdministrator(); + Navigation navigation = tester.openBrowser(); + + navigation.open("/settings"); + navigation + .shouldBeRedirectedToLogin() + .submitCredentials(admin.getLogin()) + .shouldBeLoggedIn(); + + assertThat(url()).endsWith("/settings"); + } + + @Test + public void redirect_to_original_url_after_direct_login() { + User user = tester.users().generate(); + Navigation navigation = tester.openBrowser(); + + navigation.openQualityGates(); + navigation + .logIn() + .submitCredentials(user.getLogin()) + .shouldBeLoggedIn(); + + assertThat(url()).contains("quality_gates"); + } + + @Test + public void redirect_to_original_url_with_parameters_after_direct_login() { + User admin = tester.users().generateAdministrator(); + Navigation navigation = tester.openBrowser(); + + navigation.openProjectsWithQuery("gate=OK&reliability=1&security=1"); + navigation + .logIn() + .submitCredentials(admin.getLogin()) + .shouldBeLoggedIn(); + + assertThat(url()).endsWith("/projects?gate=OK&reliability=1&security=1"); } @Test diff --git a/tests/src/test/resources/user/LocalAuthenticationTest/redirect_to_login_when_not_enough_privilege.html b/tests/src/test/resources/user/LocalAuthenticationTest/redirect_to_login_when_not_enough_privilege.html deleted file mode 100644 index d461a89cb7e..00000000000 --- a/tests/src/test/resources/user/LocalAuthenticationTest/redirect_to_login_when_not_enough_privilege.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - redirect-to-original-url-after-direct-login - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
open/sessions/new
waitForTextcontent*Log In to SonarQube*
typeloginsimple-user
typepasswordpassword
clickAndWait[type=submit]
waitForElementPresentcss=.js-user-authenticated
open/settings
waitForTextcontent*Log In to SonarQube*
assertTextcontent*You are not authorized to access this page. Please log in with more privileges and try again.*
- - diff --git a/tests/src/test/resources/user/LocalAuthenticationTest/redirect_to_original_url_after_direct_login.html b/tests/src/test/resources/user/LocalAuthenticationTest/redirect_to_original_url_after_direct_login.html deleted file mode 100644 index 4fb3a5df6ee..00000000000 --- a/tests/src/test/resources/user/LocalAuthenticationTest/redirect_to_original_url_after_direct_login.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - redirect-to-original-url-after-direct-login - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
open/sessions/logout
waitForTextglobal-navigation*Log in*
open/settings?category=general
waitForTextcontent*Log In to SonarQube*
typeloginadmin-user
typepasswordadmin-user
clickAndWait[type=submit]
waitForElementPresentcss=.js-user-authenticated
assertLocationglob:*/settings?category=general*
- - diff --git a/tests/src/test/resources/user/LocalAuthenticationTest/redirect_to_original_url_after_indirect_login.html b/tests/src/test/resources/user/LocalAuthenticationTest/redirect_to_original_url_after_indirect_login.html deleted file mode 100644 index ab1cd03aa55..00000000000 --- a/tests/src/test/resources/user/LocalAuthenticationTest/redirect_to_original_url_after_indirect_login.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
open/sessions/logout
waitForTextglobal-navigation*Log in*
open/settings
waitForTextcontent*Log In to SonarQube*
typeloginadmin-user
typepasswordadmin-user
clickAndWait[type=submit]
waitForElementPresentcss=.js-user-authenticated
assertLocation*/settings
- - diff --git a/tests/src/test/resources/user/LocalAuthenticationTest/redirect_to_original_url_with_parameters_after_direct_login.html b/tests/src/test/resources/user/LocalAuthenticationTest/redirect_to_original_url_with_parameters_after_direct_login.html deleted file mode 100644 index 907b27e1aae..00000000000 --- a/tests/src/test/resources/user/LocalAuthenticationTest/redirect_to_original_url_with_parameters_after_direct_login.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
open/sessions/logout
waitForTextglobal-navigation*Log in*
open/projects?gate=OK&reliability=1&security=1
waitForTextglobal-navigation*Log in*
clicklink=Log in
waitForTextcontent*Log In to SonarQube*
typeloginadmin-user
typepasswordadmin-user
clickAndWait[type=submit]
waitForElementPresentcss=.js-user-authenticated
assertLocation*/projects?gate=OK&reliability=1&security=1
- -