VulpesOS/gaia/tests/python/gaia-ui-tests/gaiatest/apps/bugzillalite/app.py
OverSu b38dea0597 Publish Vulpes Preview 15 sources for desktop, Android and Tundra
Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
2026-09-30 23:13:03 +02:00

54 lines
2.3 KiB
Python
Executable file

from gaiatest.apps.base import Base
from marionette_driver import By, Wait, expected
class BugzillaLite(Base):
name = 'Bugzilla Lite'
manifest_url = "https://www.bzlite.com/manifest.webapp"
_given_username = (By.CSS_SELECTOR, "#login input[type='email']")
_given_password = (By.CSS_SELECTOR, "#login input[type='password']")
_button_login = (By.CSS_SELECTOR, "#login input[type='submit']")
_profile_icon = (By.CSS_SELECTOR, "a[href='/profile/']")
_button_logout = (By.CSS_SELECTOR, "a[href='/logout/']")
_dashboard_navigator_locator = (By.ID, 'navigation')
_login_form_locator = (By.ID, 'login')
_popup_intro = (By.ID, 'intro')
_button_popup_intro = (By.ID, 'intro-submit')
def login (self, username, password):
username_element = self.marionette.find_element(*self._given_username)
username_element.tap()
username_element.send_keys(username)
password_element = self.marionette.find_element(*self._given_password)
password_element.tap()
password_element.send_keys(password)
button_element = self.marionette.find_element(*self._button_login)
button_element.tap()
def logout(self):
profile_element = self.marionette.find_element(*self._profile_icon)
profile_element.tap()
logout_element = self.marionette.find_element(*self._button_logout)
logout_element.tap()
@property
def is_logged_in(self):
self.wait_for_dashboard_navigator_to_be_displayed()
return True
def wait_for_dashboard_navigator_to_be_displayed(self):
Wait(self.marionette).until(expected.element_displayed(
Wait(self.marionette).until(expected.element_present(*self._dashboard_navigator_locator))))
@property
def is_logged_out(self):
self.wait_for_login_form_to_be_displayed()
return True
def wait_for_login_form_to_be_displayed(self):
Wait(self.marionette).until(expected.element_displayed(
Wait(self.marionette).until(expected.element_present(*self._login_form_locator))))
def dismiss_tooltip(self):
confirm_element = Wait(self.marionette).until(expected.element_present(*self._button_popup_intro))
Wait(self.marionette).until(expected.element_displayed(confirm_element))
confirm_element.tap()