Merge "Provide an integration test for dynamic themes"
This commit is contained in:
commit
17d284e469
@ -52,6 +52,9 @@ class BasePage(pageobject.PageObject):
|
||||
def go_to_help_page(self):
|
||||
self.topbar.user_dropdown_menu.click_on_help()
|
||||
|
||||
def choose_theme(self, theme_name):
|
||||
self.topbar.user_dropdown_menu.choose_theme(theme_name)
|
||||
|
||||
def find_message_and_dismiss(self, message_level=messages.SUCCESS):
|
||||
message = messages.MessageRegion(self.driver, self.conf, message_level)
|
||||
is_message_present = message.exists()
|
||||
|
@ -24,6 +24,9 @@ class TopBarRegion(baseregion.BaseRegion):
|
||||
_user_dropdown_project_locator = (
|
||||
by.By.CSS_SELECTOR,
|
||||
'.navbar-collapse > ul.navbar-nav:first-child li.dropdown')
|
||||
_header_locator = (by.By.CSS_SELECTOR, 'nav.navbar-fixed-top')
|
||||
|
||||
MATERIAL_THEME_CLASS = 'material-header'
|
||||
|
||||
@property
|
||||
def user(self):
|
||||
@ -33,6 +36,15 @@ class TopBarRegion(baseregion.BaseRegion):
|
||||
def brand(self):
|
||||
return self._get_element(*self._openstack_brand_locator)
|
||||
|
||||
@property
|
||||
def header(self):
|
||||
return self._get_element(*self._header_locator)
|
||||
|
||||
@property
|
||||
def is_material_theme_enabled(self):
|
||||
classes = self.header.get_attribute('class').strip().split()
|
||||
return self.MATERIAL_THEME_CLASS in classes
|
||||
|
||||
@property
|
||||
def user_dropdown_menu(self):
|
||||
src_elem = self._get_element(*self._user_dropdown_menu_locator)
|
||||
|
@ -214,6 +214,10 @@ class UserDropDownMenuRegion(DropDownMenuRegion):
|
||||
_logout_link_locator = (by.By.CSS_SELECTOR,
|
||||
'a[href*="/auth/logout/"]')
|
||||
|
||||
def _theme_picker_locator(self, theme_name):
|
||||
return (by.By.CSS_SELECTOR,
|
||||
'.theme-picker-item[data-theme="%s"]' % theme_name)
|
||||
|
||||
@property
|
||||
def settings_link(self):
|
||||
return self._get_element(*self._settings_link_locator)
|
||||
@ -226,6 +230,9 @@ class UserDropDownMenuRegion(DropDownMenuRegion):
|
||||
def logout_link(self):
|
||||
return self._get_element(*self._logout_link_locator)
|
||||
|
||||
def theme_picker_link(self, theme_name):
|
||||
return self._get_element(*self._theme_picker_locator(theme_name))
|
||||
|
||||
def click_on_settings(self):
|
||||
self.open()
|
||||
self.settings_link.click()
|
||||
@ -234,6 +241,10 @@ class UserDropDownMenuRegion(DropDownMenuRegion):
|
||||
self.open()
|
||||
self.help_link.click()
|
||||
|
||||
def choose_theme(self, theme_name):
|
||||
self.open()
|
||||
self.theme_picker_link(theme_name).click()
|
||||
|
||||
def click_on_logout(self):
|
||||
self.open()
|
||||
self.logout_link.click()
|
||||
|
@ -31,6 +31,18 @@ class TestDashboardHelp(helpers.TestCase):
|
||||
self.home_pg.switch_window()
|
||||
|
||||
|
||||
class TestThemePicker(helpers.TestCase):
|
||||
DEFAULT_THEME = 'default'
|
||||
MATERIAL_THEME = 'material'
|
||||
|
||||
def test_switch_to_material_theme(self):
|
||||
"""Verifies that material theme is available and switchable to."""
|
||||
self.home_pg.choose_theme(self.MATERIAL_THEME)
|
||||
self.assertTrue(self.home_pg.topbar.is_material_theme_enabled)
|
||||
self.home_pg.choose_theme(self.DEFAULT_THEME)
|
||||
self.assertFalse(self.home_pg.topbar.is_material_theme_enabled)
|
||||
|
||||
|
||||
class TestPasswordChange(helpers.TestCase):
|
||||
NEW_PASSWORD = "123"
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user