mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-06 07:17:30 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
|
|
@ -0,0 +1,116 @@
|
|||
# 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/.
|
||||
|
||||
from abc import ABCMeta
|
||||
|
||||
from marionette_driver import By
|
||||
|
||||
from firefox_puppeteer.ui.base import UIBaseLib
|
||||
|
||||
|
||||
class BaseNotification(UIBaseLib):
|
||||
"""Abstract base class for any kind of notification."""
|
||||
|
||||
__metaclass__ = ABCMeta
|
||||
|
||||
@property
|
||||
def close_button(self):
|
||||
"""Provide access to the close button.
|
||||
|
||||
:returns: The close button.
|
||||
"""
|
||||
return self.element.find_element(By.ANON_ATTRIBUTE,
|
||||
{'anonid': 'closebutton'})
|
||||
|
||||
@property
|
||||
def label(self):
|
||||
"""Provide access to the notification label.
|
||||
|
||||
:returns: The notification label.
|
||||
"""
|
||||
return self.element.get_attribute('label')
|
||||
|
||||
@property
|
||||
def origin(self):
|
||||
"""Provide access to the notification origin.
|
||||
|
||||
:returns: The notification origin.
|
||||
"""
|
||||
return self.element.get_attribute('origin')
|
||||
|
||||
def close(self, force=False):
|
||||
"""Close the notification.
|
||||
|
||||
:param force: Optional, if True force close the notification.
|
||||
Defaults to False.
|
||||
"""
|
||||
if force:
|
||||
self.marionette.execute_script('arguments[0].click()',
|
||||
script_args=[self.close_button])
|
||||
else:
|
||||
self.close_button.click()
|
||||
|
||||
self.window.wait_for_notification(None)
|
||||
|
||||
|
||||
class AddOnInstallBlockedNotification(BaseNotification):
|
||||
"""Add-on install blocked notification."""
|
||||
|
||||
@property
|
||||
def allow_button(self):
|
||||
"""Provide access to the allow button.
|
||||
|
||||
:returns: The allow button.
|
||||
"""
|
||||
return self.element.find_element(
|
||||
By.ANON_ATTRIBUTE, {'anonid': 'button'}).find_element(
|
||||
By.ANON_ATTRIBUTE, {'anonid': 'button'})
|
||||
|
||||
|
||||
class AddOnInstallConfirmationNotification(BaseNotification):
|
||||
"""Add-on install confirmation notification."""
|
||||
|
||||
@property
|
||||
def addon_name(self):
|
||||
"""Provide access to the add-on name.
|
||||
|
||||
:returns: The add-on name.
|
||||
"""
|
||||
label = self.element.find_element(
|
||||
By.CSS_SELECTOR, '#addon-install-confirmation-content label')
|
||||
return label.get_attribute('value')
|
||||
|
||||
def cancel_button(self):
|
||||
"""Provide access to the cancel button.
|
||||
|
||||
:returns: The cancel button.
|
||||
"""
|
||||
return self.element.find_element(
|
||||
By.ID, 'addon-install-confirmation-cancel')
|
||||
|
||||
def install_button(self):
|
||||
"""Provide access to the install button.
|
||||
|
||||
:returns: The install button.
|
||||
"""
|
||||
return self.element.find_element(
|
||||
By.ID, 'addon-install-confirmation-accept')
|
||||
|
||||
|
||||
class AddOnInstallCompleteNotification(BaseNotification):
|
||||
"""Add-on install complete notification."""
|
||||
|
||||
pass
|
||||
|
||||
|
||||
class AddOnInstallFailedNotification(BaseNotification):
|
||||
"""Add-on install failed notification."""
|
||||
|
||||
pass
|
||||
|
||||
|
||||
class AddOnProgressNotification(BaseNotification):
|
||||
"""Add-on progress notification."""
|
||||
|
||||
pass
|
||||
Loading…
Add table
Add a link
Reference in a new issue