Skip to content
Snippets Groups Projects
Commit 83ff19ab authored by robinwilliam.hundt's avatar robinwilliam.hundt
Browse files

Added sidebar tests

parent 96df55b8
No related branches found
No related tags found
1 merge request!128Merge improve testing
import os import os
import time from typing import Sequence
from django.test import LiveServerTestCase from django.test import LiveServerTestCase
from selenium import webdriver from selenium import webdriver
from selenium.webdriver.common.keys import Keys from selenium.webdriver.remote.webelement import WebElement
from selenium.webdriver.firefox.options import Options
from core.models import UserAccount
from functional_tests.util import get_frontend_url, login, create_browser from functional_tests.util import get_frontend_url, login, create_browser
from util.factories import make_test_data
from util import factory_boys as fact from util import factory_boys as fact
LiveServerTestCase.port = int(os.environ.get('LIVE_SERVER_PORT', 0)) LiveServerTestCase.port = int(os.environ.get('LIVE_SERVER_PORT', 0))
class FrontPageTestsTutorReviewer: class FrontPageTestsTutorReviewer():
def __init__(self):
self.browser: webdriver.Firefox = None
def _login(self): def _login(self):
login(self.browser, self.live_server_url, self.username, self.password) login(self.browser, self.live_server_url, self.username, self.password)
def test_statistics_are_shown(self): def test_statistics_are_shown(self):
self._login() self._login()
statistics = self.browser.find_element_by_id('correction-statistics') statistcs = self.browser.find_element_by_id('correction-statistics')
title = statistcs.find_element_by_class_name('title')
self.assertEqual('Statistics', title.text)
class FrontPageTestsTutor(LiveServerTestCase, FrontPageTestsTutorReviewer): class FrontPageTestsTutor(LiveServerTestCase, FrontPageTestsTutorReviewer):
...@@ -30,10 +32,24 @@ class FrontPageTestsTutor(LiveServerTestCase, FrontPageTestsTutorReviewer): ...@@ -30,10 +32,24 @@ class FrontPageTestsTutor(LiveServerTestCase, FrontPageTestsTutorReviewer):
self.username = 'tutor' self.username = 'tutor'
self.password = 'p' self.password = 'p'
fact.UserAccountFactory(username=self.username, password=self.password) fact.UserAccountFactory(username=self.username, password=self.password)
fact.SubmissionFactory()
def tearDown(self): def tearDown(self):
self.browser.quit() self.browser.quit()
def test_side_bar_contains_correct_items(self):
self._login()
drawer = self.browser.find_element_by_class_name('v-navigation-drawer')
links = extract_hrefs(drawer.find_elements_by_tag_name('a'))
self.assertTrue(all(link in links for link in ['#/home', '#/feedback']))
task_title = drawer.find_element_by_class_name('v-toolbar__title')
self.assertEqual('Tasks', task_title.text)
footer = drawer.find_element_by_class_name('sidebar-footer')
feedback_link = footer.find_element_by_css_selector('a.feedback-link')
self.assertEqual('Give us Feedback!', feedback_link.text)
self.assertEqual('https://gitlab.gwdg.de/j.michal/grady/issues',
feedback_link.get_attribute('href'))
class FrontPageTestsReviewer(LiveServerTestCase, FrontPageTestsTutorReviewer): class FrontPageTestsReviewer(LiveServerTestCase, FrontPageTestsTutorReviewer):
def setUp(self): def setUp(self):
...@@ -45,3 +61,21 @@ class FrontPageTestsReviewer(LiveServerTestCase, FrontPageTestsTutorReviewer): ...@@ -45,3 +61,21 @@ class FrontPageTestsReviewer(LiveServerTestCase, FrontPageTestsTutorReviewer):
def tearDown(self): def tearDown(self):
self.browser.quit() self.browser.quit()
def test_side_bar_contains_correct_items(self):
self._login()
drawer = self.browser.find_element_by_class_name('v-navigation-drawer')
links = extract_hrefs(drawer.find_elements_by_tag_name('a'))
self.assertTrue(all(link in links for link in
['#/home', '#/feedback', '#/student-overview', '#/tutor-overview']))
task_title = drawer.find_element_by_class_name('v-toolbar__title')
self.assertEqual('Tasks', task_title.text)
footer = drawer.find_element_by_class_name('sidebar-footer')
feedback_link = footer.find_element_by_css_selector('a.feedback-link')
self.assertEqual('Give us Feedback!', feedback_link.text)
self.assertEqual('https://gitlab.gwdg.de/j.michal/grady/issues',
feedback_link.get_attribute('href'))
def extract_hrefs(web_elements: Sequence[WebElement]):
return [el.get_attribute('href') for el in web_elements]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment