Files
django-dav-events/dav_auth/tests/test_templates.py

81 lines
3.0 KiB
Python

# -*- coding: utf-8 -*-
from django.contrib.auth import get_user_model
from django.test import SimpleTestCase, tag
from django.utils.translation import ugettext
from django.urls import reverse
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from unittest import skip
from dav_base.tests.generic import SeleniumTestCase
TEST_USERNAME = 'root@localhost'
TEST_PASSWORD = u'me||ön 2'
TEST_EMAIL = TEST_USERNAME
class TemplatesTestCase(SimpleTestCase):
def test_reset_link_in_login_form(self):
login_url = reverse('dav_auth:login')
reset_url = reverse('dav_auth:reset_password')
text = ugettext(u'Passwort vergessen?')
html = u'<a href="{url}">{text}</a>'.format(url=reset_url, text=text)
response = self.client.get(login_url)
self.assertInHTML(html, response.content)
@tag('browser')
class TestCase(SeleniumTestCase):
def setUp(self):
super(TestCase, self).setUp()
# Need a test user
self.test_username = TEST_USERNAME
self.test_password = TEST_PASSWORD
model = get_user_model()
self.user = model.objects.create_user(username=TEST_USERNAME, password=TEST_PASSWORD, email=TEST_EMAIL)
def _login(self, driver):
url = self.complete_url(reverse('dav_auth:login'))
driver.get(url)
username_field = self.wait_on_presence(driver, (By.ID, "id_username"))
username_field.clear()
username_field.send_keys(self.test_username)
password_field = driver.find_element_by_id('id_password')
password_field.clear()
password_field.send_keys(self.test_password)
password_field.send_keys(Keys.RETURN)
self.wait_on_presence(driver, (By.CSS_SELECTOR, "#messages .alert-success"))
return driver
def test_login_button_in_root_page(self):
c = self.selenium
c.get(self.complete_url('/'))
try:
link = c.find_element_by_css_selector('#login-widget a')
except NoSuchElementException as e:
self.fail(str(e))
def test_required_fields_in_login_form(self):
c = self.selenium
location = reverse('dav_auth:login')
c.get(self.complete_url(location))
field = c.find_element_by_id('id_username')
self.assertEqual(field.get_attribute('required'), u'true')
field = c.find_element_by_id('id_password')
self.assertEqual(field.get_attribute('required'), u'true')
def test_required_fields_in_set_password_form(self):
c = self._login(self.selenium)
c.get(self.complete_url(reverse('dav_auth:set_password')))
field = self.wait_on_presence(c, (By.ID, "id_new_password"))
self.assertEqual(field.get_attribute('required'), u'true')
field = c.find_element_by_id('id_new_password_repeat')
self.assertEqual(field.get_attribute('required'), u'true')
field = c.find_element_by_id('id_send_password_mail')
self.assertEqual(field.get_attribute('required'), None)