Source code for gaiatest.apps.settings.regions.language

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

import time

from marionette_driver import expected, By, Wait

from gaiatest.apps.base import Base
from gaiatest.apps.settings.app import Settings


[docs]class Language(Base): _select_language_locator = (By.CSS_SELECTOR, "select[name='language.current']") _language_options_locator = (By.CSS_SELECTOR, "select[name='language.current'] option") _more_language_locator = (By.CSS_SELECTOR, '.more-languages') _more_language_cancel_locator = (By.CSS_SELECTOR, '[data-l10n-id="cancel"]') _select_language_close_button_locator = (By.CLASS_NAME, "value-option-confirm") _language_locator = (By.ID, 'languages')
[docs] def wait_for_languages_to_load(self): Wait(self.marionette).until(expected.elements_present(*self._language_options_locator))
[docs] def go_back(self): settings = Settings(self.marionette) settings.return_to_prev_menu(settings.screen_element, self.screen_element)
[docs] def open_select_language(self): self.marionette.find_element(*self._select_language_locator).tap() self.marionette.switch_to_frame() Wait(self.marionette).until(expected.element_present(*self._select_language_close_button_locator))
[docs] def close_select_language(self): self.marionette.find_element(*self._select_language_close_button_locator).tap() self.apps.switch_to_displayed_app() Wait(self.marionette).until(expected.element_present(*self._select_language_locator))
[docs] def select_language(self, language): self.marionette.find_element(*self._select_language_locator).tap() self.select(language)
[docs] def open_get_language(self): self.marionette.find_element(*self._more_language_locator).tap() self.marionette.switch_to_frame() Wait(self.marionette).until(expected.element_present(*self._more_language_cancel_locator))
[docs] def close_get_language(self): self.marionette.find_element(*self._more_language_cancel_locator).tap() self.apps.switch_to_displayed_app() Wait(self.marionette).until(expected.element_present(*self._more_language_locator))
@property def current_language(self): return self.marionette.find_element(By.CSS_SELECTOR, 'html').get_attribute('lang') @property def screen_element(self): return self.marionette.find_element(*self._language_locator)