Commit d237fd00 authored by Michal Čihař's avatar Michal Čihař

More complete selenium test

- test real login
- open profile page
- do logout afterwards
parent 3999a76e
...@@ -2,6 +2,7 @@ from django.test import LiveServerTestCase ...@@ -2,6 +2,7 @@ from django.test import LiveServerTestCase
from django.utils.unittest import SkipTest from django.utils.unittest import SkipTest
from selenium import webdriver from selenium import webdriver
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.contrib.auth.models import User
import os import os
import new import new
import json import json
...@@ -95,7 +96,11 @@ class SeleniumTests(LiveServerTestCase): ...@@ -95,7 +96,11 @@ class SeleniumTests(LiveServerTestCase):
cls.driver.quit() cls.driver.quit()
def test_login(self): def test_login(self):
self.driver.get('{}{}'.format(self.live_server_url, reverse('login'))) # open home page
self.driver.get('{}{}'.format(self.live_server_url, reverse('home')))
# login page
self.driver.find_element_by_id('login-button').click()
username_input = self.driver.find_element_by_id('id_username') username_input = self.driver.find_element_by_id('id_username')
username_input.send_keys("myuser") username_input.send_keys("myuser")
...@@ -106,6 +111,27 @@ class SeleniumTests(LiveServerTestCase): ...@@ -106,6 +111,27 @@ class SeleniumTests(LiveServerTestCase):
# We should end up on login page as user was invalid # We should end up on login page as user was invalid
self.driver.find_element_by_name('username') self.driver.find_element_by_name('username')
# Do proper login with new user
user = User.objects.create_user(
'testuser',
'noreply@weblate.org',
'testpassword'
)
username_input = self.driver.find_element_by_id('id_username')
username_input.send_keys('testuser')
password_input = self.driver.find_element_by_id('id_password')
password_input.send_keys('testpassword')
self.driver.find_element_by_xpath('//input[@value="Login"]').click()
# Load profile
self.driver.find_element_by_id('profile-button').click()
# Finally logout
self.driver.find_element_by_id('logout-button').click()
# We should be back on login page
self.driver.find_element_by_id('id_username')
# What other platforms we want to test # What other platforms we want to test
EXTRA_PLATFORMS = { EXTRA_PLATFORMS = {
......
...@@ -37,13 +37,13 @@ ...@@ -37,13 +37,13 @@
<nav> <nav>
<ul class="menu-float"> <ul class="menu-float">
{% if user.is_authenticated %} {% if user.is_authenticated %}
<li><a class="button" href="{% url 'profile' %}">{% blocktrans with user.get_profile.get_user_display as name %}Logged in as {{ name }}{% endblocktrans %}</a></li> <li><a class="button" id="profile-button" href="{% url 'profile' %}">{% blocktrans with user.get_profile.get_user_display as name %}Logged in as {{ name }}{% endblocktrans %}</a></li>
<li><a class="button" href="{% url 'logout' %}">{% trans "Logout" %}</a></li> <li><a class="button" id="logout-button" href="{% url 'logout' %}">{% trans "Logout" %}</a></li>
{% else %} {% else %}
{% if registration_open %} {% if registration_open %}
<li><a class="button" href="{% url 'register' %}">{% trans "Register" %}</a></li> <li><a class="button" id="register-button" href="{% url 'register' %}">{% trans "Register" %}</a></li>
{% endif %} {% endif %}
<li><a class="button" href="{% url 'login' %}{% if not skip_next %}?next={{ current_url }}{% endif %}">{% trans "Login" %}</a></li> <li><a class="button" id="login-button" href="{% url 'login' %}{% if not skip_next %}?next={{ current_url }}{% endif %}">{% trans "Login" %}</a></li>
{% endif %} {% endif %}
</ul> </ul>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment