# -*- 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'{text}'.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)