Merge "Provide an integration test for dynamic themes"

This commit is contained in:
Jenkins 2016-06-08 21:47:08 +00:00 committed by Gerrit Code Review
commit 17d284e469
4 changed files with 38 additions and 0 deletions

View File

@ -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()

View File

@ -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)

View File

@ -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()

View File

@ -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"