]> source.dussan.org Git - sonarqube.git/commitdiff
Replace some selenium tests by selenide in LocalAuthenticationTest
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Tue, 19 Jun 2018 09:38:59 +0000 (11:38 +0200)
committersonartech <sonartech@sonarsource.com>
Tue, 19 Jun 2018 16:34:42 +0000 (18:34 +0200)
server/sonar-qa-util/src/main/java/org/sonarqube/qa/util/pageobjects/Navigation.java
tests/src/test/java/org/sonarqube/tests/user/LocalAuthenticationTest.java
tests/src/test/resources/user/LocalAuthenticationTest/redirect_to_login_when_not_enough_privilege.html [deleted file]
tests/src/test/resources/user/LocalAuthenticationTest/redirect_to_original_url_after_direct_login.html [deleted file]
tests/src/test/resources/user/LocalAuthenticationTest/redirect_to_original_url_after_indirect_login.html [deleted file]
tests/src/test/resources/user/LocalAuthenticationTest/redirect_to_original_url_with_parameters_after_direct_login.html [deleted file]

index aff024938eee757e73086d182ebb13e0bb64d10b..6a26317a11ac6c560ecd7ec69ae84b28e5e005e0 100644 (file)
@@ -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);
   }
 
 }
index 51e258bdfb84676a376ccc6366be8eea6dcdb6d7..0b15743fc486e5349f6be7f43747b68c89d2d137 100644 (file)
@@ -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 (file)
index d461a89..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head profile="http://selenium-ide.openqa.org/profiles/test-case">
-  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-  <title>redirect-to-original-url-after-direct-login</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
-  <tbody>
-  <tr>
-       <td>open</td>
-       <td>/sessions/new</td>
-       <td></td>
-</tr>
-<tr>
-       <td>waitForText</td>
-       <td>content</td>
-       <td>*Log In to SonarQube*</td>
-</tr>
-<tr>
-       <td>type</td>
-       <td>login</td>
-       <td>simple-user</td>
-</tr>
-<tr>
-       <td>type</td>
-       <td>password</td>
-       <td>password</td>
-</tr>
-<tr>
-       <td>clickAndWait</td>
-       <td>[type=submit]</td>
-       <td></td>
-</tr>
-<tr>
-       <td>waitForElementPresent</td>
-       <td>css=.js-user-authenticated</td>
-       <td></td>
-</tr>
-<tr>
-       <td>open</td>
-       <td>/settings</td>
-       <td></td>
-</tr>
-<tr>
-       <td>waitForText</td>
-       <td>content</td>
-       <td>*Log In to SonarQube*</td>
-</tr>
-<tr>
-       <td>assertText</td>
-       <td>content</td>
-       <td>*You are not authorized to access this page. Please log in with more privileges and try again.*</td>
-</tr>
-</tbody>
-</table>
-</body>
-</html>
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 (file)
index 4fb3a5d..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head profile="http://selenium-ide.openqa.org/profiles/test-case">
-  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-  <title>redirect-to-original-url-after-direct-login</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
-  <tbody>
-  <tr>
-    <td>open</td>
-    <td>/sessions/logout</td>
-    <td></td>
-  </tr>
-  <tr>
-    <td>waitForText</td>
-    <td>global-navigation</td>
-    <td>*Log in*</td>
-  </tr>
-  <tr>
-    <td>open</td>
-    <td>/settings?category=general</td>
-    <td></td>
-  </tr>
-  <tr>
-    <td>waitForText</td>
-    <td>content</td>
-    <td>*Log In to SonarQube*</td>
-  </tr>
-  <tr>
-    <td>type</td>
-    <td>login</td>
-    <td>admin-user</td>
-  </tr>
-  <tr>
-    <td>type</td>
-    <td>password</td>
-    <td>admin-user</td>
-  </tr>
-  <tr>
-    <td>clickAndWait</td>
-    <td>[type=submit]</td>
-    <td></td>
-  </tr>
-  <tr>
-    <td>waitForElementPresent</td>
-    <td>css=.js-user-authenticated</td>
-    <td></td>
-  </tr>
-  <tr>
-    <td>assertLocation</td>
-    <td>glob:*/settings?category=general*</td>
-    <td></td>
-  </tr>
-  </tbody>
-</table>
-</body>
-</html>
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 (file)
index ab1cd03..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head profile="http://selenium-ide.openqa.org/profiles/test-case">
-  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
-  <tbody>
-  <tr>
-    <td>open</td>
-    <td>/sessions/logout</td>
-    <td></td>
-  </tr>
-  <tr>
-    <td>waitForText</td>
-    <td>global-navigation</td>
-    <td>*Log in*</td>
-  </tr>
-  <tr>
-    <td>open</td>
-    <td>/settings</td>
-    <td></td>
-  </tr>
-  <tr>
-    <td>waitForText</td>
-    <td>content</td>
-    <td>*Log In to SonarQube*</td>
-  </tr>
-  <tr>
-    <td>type</td>
-    <td>login</td>
-    <td>admin-user</td>
-  </tr>
-  <tr>
-    <td>type</td>
-    <td>password</td>
-    <td>admin-user</td>
-  </tr>
-  <tr>
-    <td>clickAndWait</td>
-    <td>[type=submit]</td>
-    <td></td>
-  </tr>
-  <tr>
-    <td>waitForElementPresent</td>
-    <td>css=.js-user-authenticated</td>
-    <td></td>
-  </tr>
-  <tr>
-    <td>assertLocation</td>
-    <td>*/settings</td>
-    <td></td>
-  </tr>
-  </tbody>
-</table>
-</body>
-</html>
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 (file)
index 907b27e..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head profile="http://selenium-ide.openqa.org/profiles/test-case">
-  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
-  <tbody>
-  <tr>
-    <td>open</td>
-    <td>/sessions/logout</td>
-    <td></td>
-  </tr>
-  <tr>
-    <td>waitForText</td>
-    <td>global-navigation</td>
-    <td>*Log in*</td>
-  </tr>
-  <tr>
-    <td>open</td>
-    <td>/projects?gate=OK&reliability=1&security=1</td>
-    <td></td>
-  </tr>
-  <tr>
-    <td>waitForText</td>
-    <td>global-navigation</td>
-    <td>*Log in*</td>
-  </tr>
-  <tr>
-    <td>click</td>
-    <td>link=Log in</td>
-    <td></td>
-  </tr>
-  <tr>
-    <td>waitForText</td>
-    <td>content</td>
-    <td>*Log In to SonarQube*</td>
-  </tr>
-  <tr>
-    <td>type</td>
-    <td>login</td>
-    <td>admin-user</td>
-  </tr>
-  <tr>
-    <td>type</td>
-    <td>password</td>
-    <td>admin-user</td>
-  </tr>
-  <tr>
-    <td>clickAndWait</td>
-    <td>[type=submit]</td>
-    <td></td>
-  </tr>
-  <tr>
-    <td>waitForElementPresent</td>
-    <td>css=.js-user-authenticated</td>
-    <td></td>
-  </tr>
-  <tr>
-    <td>assertLocation</td>
-    <td>*/projects?gate=OK&reliability=1&security=1</td>
-    <td></td>
-  </tr>
-  </tbody>
-</table>
-</body>
-</html>