diff --git a/openstack_dashboard/test/integration_tests/config.py b/openstack_dashboard/test/integration_tests/config.py index d90f0c022f..3ca119b851 100644 --- a/openstack_dashboard/test/integration_tests/config.py +++ b/openstack_dashboard/test/integration_tests/config.py @@ -32,6 +32,9 @@ IdentityGroup = [ default='secretadmin', help="API key to use when authenticating.", secret=True), + cfg.StrOpt('domain', + default=None, + help="Domain name to use if required for login"), cfg.StrOpt('home_project', default='demo', help="Project to keep all objects belonging to a regular user." diff --git a/openstack_dashboard/test/integration_tests/pages/loginpage.py b/openstack_dashboard/test/integration_tests/pages/loginpage.py index 8358d35383..fd55183c77 100644 --- a/openstack_dashboard/test/integration_tests/pages/loginpage.py +++ b/openstack_dashboard/test/integration_tests/pages/loginpage.py @@ -21,6 +21,7 @@ from openstack_dashboard.test.integration_tests.pages.project.compute import \ class LoginPage(pageobject.PageObject): + _login_domain_field_locator = (by.By.ID, 'id_domain') _login_username_field_locator = (by.By.ID, 'id_username') _login_password_field_locator = (by.By.ID, 'id_password') _login_submit_button_locator = (by.By.CSS_SELECTOR, @@ -35,6 +36,10 @@ class LoginPage(pageobject.PageObject): return (self.is_the_current_page() and self._is_element_visible(*self._login_submit_button_locator)) + @property + def domain(self): + return self._get_elements(*self._login_domain_field_locator) + @property def username(self): return self._get_element(*self._login_username_field_locator) @@ -67,6 +72,8 @@ class LoginPage(pageobject.PageObject): self._press_enter_on_login_button) def _do_login(self, user, password, login_method): + if self.conf.identity.domain: + self.domain[0].send_keys(self.conf.identity.domain) if user == self.conf.identity.admin_username: if password is None: password = self.conf.identity.admin_password