From bb15eb8471be443157f2be4aef8ee06d9b13025a Mon Sep 17 00:00:00 2001
From: Dominik George <dominik.george@teckids.org>
Date: Wed, 11 Dec 2019 19:15:36 +0100
Subject: [PATCH] [Tests] Add test for logging in with default admin
 credentials

---
 biscuit/core/tests/browser/test_selenium.py | 30 +++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/biscuit/core/tests/browser/test_selenium.py b/biscuit/core/tests/browser/test_selenium.py
index f8f32164f..918ec79c2 100644
--- a/biscuit/core/tests/browser/test_selenium.py
+++ b/biscuit/core/tests/browser/test_selenium.py
@@ -2,7 +2,9 @@ import os
 
 import pytest
 
+from django.conf import settings
 from django.test.selenium import SeleniumTestCase, SeleniumTestCaseBase
+from django.urls import reverse
 
 SeleniumTestCaseBase.external_host = os.environ.get('TEST_HOST', '') or None
 SeleniumTestCaseBase.browsers = list(filter(bool, os.environ.get('TEST_SELENIUM_BROWSERS', '').split(',')))
@@ -23,3 +25,31 @@ class SeleniumTests(SeleniumTestCase):
         self.selenium.get(self.live_server_url + '/')
         assert 'BiscuIT' in self.selenium.title
         self._screenshot('index.png')
+
+    @pytest.mark.django_db
+    def test_login_default_superuser(self):
+        username = 'admin'
+        password = 'admin'
+
+        # Navigate to configured login page
+        self.selenium.get(self.live_server_url + reverse(settings.LOGIN_URL))
+        self._screenshot('login_default_superuser_blank.png')
+
+        # Find login form input fields and enter defined credentials
+        self.selenium.find_element_by_xpath(
+            '//label[contains(text(), "Username")]/../input'
+        ).send_keys(username)
+        self.selenium.find_element_by_xpath(
+            '//label[contains(text(), "Password")]/../input'
+        ).send_keys(password)
+        self._screenshot('login_default_superuser_filled.png')
+
+        # Submit form by clicking django-two-factor-auth's Next button
+        self.selenium.find_element_by_xpath(
+            '//button[contains(text(), "Next")]'
+        ).click()
+        self._screenshot('login_default_superuser_submitted.png')
+
+        # Should redirect away from login page and not put up an alert about wrong credentials
+        assert 'Please enter a correct username and password.' not in self.selenium.page_source
+        assert reverse(settings.LOGIN_URL) not in self.selenium.current_url
-- 
GitLab