Added footer link tests. (#811)
This commit is contained in:
parent
fd71e7f957
commit
f99e4db25f
3 changed files with 39 additions and 3 deletions
|
@ -1,4 +1,4 @@
|
||||||
from pypom import Page
|
from pypom import Page, Region
|
||||||
from selenium.webdriver.common.by import By
|
from selenium.webdriver.common.by import By
|
||||||
|
|
||||||
|
|
||||||
|
@ -10,10 +10,32 @@ class Base(Page):
|
||||||
|
|
||||||
def __init__(self, selenium, base_url, locale='en-US', **kwargs):
|
def __init__(self, selenium, base_url, locale='en-US', **kwargs):
|
||||||
super(Base, self).__init__(
|
super(Base, self).__init__(
|
||||||
selenium, base_url, locale=locale, timeout=10, **kwargs)
|
selenium, base_url, locale=locale, timeout=20, **kwargs)
|
||||||
|
|
||||||
def wait_for_page_to_load(self):
|
def wait_for_page_to_load(self):
|
||||||
self.wait.until(
|
self.wait.until(
|
||||||
lambda _: self.find_element(
|
lambda _: self.find_element(
|
||||||
*self._send_logo_locator).is_displayed())
|
*self._send_logo_locator).is_displayed())
|
||||||
return self
|
return self
|
||||||
|
|
||||||
|
@property
|
||||||
|
def footer(self):
|
||||||
|
return self.Footer(self)
|
||||||
|
|
||||||
|
class Footer(Region):
|
||||||
|
_root_element = (By.CLASS_NAME, 'footer')
|
||||||
|
_legal_links = (By.CLASS_NAME, 'legalSection__link')
|
||||||
|
|
||||||
|
@property
|
||||||
|
def links(self):
|
||||||
|
return [self.Links(self, el) for el in self.find_elements(
|
||||||
|
*self._legal_links)]
|
||||||
|
|
||||||
|
class Links(Region):
|
||||||
|
|
||||||
|
@property
|
||||||
|
def name(self):
|
||||||
|
return self.root.text.split()[0]
|
||||||
|
|
||||||
|
def click(self):
|
||||||
|
self.root.click()
|
||||||
|
|
14
test/integration/test_home.py
Normal file
14
test/integration/test_home.py
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
from pages.desktop.base import Base
|
||||||
|
|
||||||
|
footer_links = ['mozilla', 'mozilla', 'about', 'legal', 'legal', 'cookies',
|
||||||
|
'report-infringement']
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize('i, name', enumerate(footer_links))
|
||||||
|
def test_legal_links(selenium, base_url, i, name):
|
||||||
|
"""Test links in footer load correct pages."""
|
||||||
|
page = Base(selenium, base_url).open()
|
||||||
|
page.footer.links[i].click()
|
||||||
|
assert name in selenium.current_url
|
|
@ -9,7 +9,7 @@ passenv = DISPLAY MOZ_HEADLESS
|
||||||
deps = -rpipenv.txt
|
deps = -rpipenv.txt
|
||||||
commands =
|
commands =
|
||||||
pipenv install --skip-lock
|
pipenv install --skip-lock
|
||||||
pipenv run pytest -v --verify-base-url --driver Firefox --html=send-test.html --self-contained-html {posargs}
|
pipenv run pytest -v --verify-base-url -n 2 --driver Firefox --html=send-test.html --self-contained-html {posargs}
|
||||||
|
|
||||||
[testenv:flake8]
|
[testenv:flake8]
|
||||||
commands =
|
commands =
|
||||||
|
|
Loading…
Reference in a new issue