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.
This commit is contained in:
parent
93e3a48004
commit
b38dea0597
25901 changed files with 9982925 additions and 369 deletions
109
gaia/tests/python/gaia-ui-tests/gaiatest/apps/gallery/app.py
Executable file
109
gaia/tests/python/gaia-ui-tests/gaiatest/apps/gallery/app.py
Executable file
|
|
@ -0,0 +1,109 @@
|
|||
# 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 marionette_driver import expected, By, Wait
|
||||
|
||||
from gaiatest.apps.base import Base
|
||||
from gaiatest.apps.base import PageRegion
|
||||
|
||||
import gaiatest.apps.camera.app
|
||||
|
||||
|
||||
class Gallery(Base):
|
||||
|
||||
name = 'Gallery'
|
||||
|
||||
_gallery_items_locator = (By.CSS_SELECTOR, 'div.thumbnail')
|
||||
_overlay_locator = (By.ID, 'overlay')
|
||||
_empty_gallery_title_locator = (By.ID, 'overlay-title')
|
||||
_empty_gallery_text_locator = (By.ID, 'overlay-text')
|
||||
_progress_bar_locator = (By.ID, 'progress')
|
||||
_thumbnail_list_view_locator = (By.CSS_SELECTOR, '#thumbnail-views > footer.thumbnails-list')
|
||||
_switch_to_camera_button_locator = (By.ID, 'thumbnails-camera-button')
|
||||
_switch_to_multiple_selection_view_locator = (By.ID, 'thumbnails-select-button')
|
||||
|
||||
def launch(self, empty=False):
|
||||
Base.launch(self)
|
||||
if empty:
|
||||
self.wait_for_overlay_to_show()
|
||||
else:
|
||||
self.wait_for_thumbnail_view_to_load()
|
||||
|
||||
def wait_for_thumbnail_view_to_load(self):
|
||||
Wait(self.marionette).until(expected.element_displayed(*self._thumbnail_list_view_locator))
|
||||
|
||||
def wait_for_overlay_to_show(self):
|
||||
Wait(self.marionette).until(expected.element_displayed(*self._overlay_locator))
|
||||
|
||||
def wait_for_files_to_load(self, files_number):
|
||||
Wait(self.marionette).until(lambda m: m.execute_script(
|
||||
'return window.wrappedJSObject.files.length;') == files_number)
|
||||
|
||||
def wait_for_thumbnails_to_load(self):
|
||||
Wait(self.marionette).until(expected.element_displayed(*self._gallery_items_locator))
|
||||
|
||||
@property
|
||||
def gallery_items_number(self):
|
||||
return len(self.thumbnails)
|
||||
|
||||
def tap_first_gallery_item(self):
|
||||
first_gallery_item = self.thumbnails[0]
|
||||
if self.is_element_displayed(*self._thumbnail_list_view_locator):
|
||||
from gaiatest.apps.gallery.regions.fullscreen_image import FullscreenImage as NextView
|
||||
else:
|
||||
from gaiatest.apps.gallery.regions.crop_view import CropView as NextView
|
||||
first_gallery_item.tap()
|
||||
return NextView(self.marionette)
|
||||
|
||||
@property
|
||||
def empty_gallery_title(self):
|
||||
return self.marionette.find_element(*self._empty_gallery_title_locator).text
|
||||
|
||||
@property
|
||||
def empty_gallery_text(self):
|
||||
return self.marionette.find_element(*self._empty_gallery_text_locator).text
|
||||
|
||||
@property
|
||||
def are_gallery_items_displayed(self):
|
||||
return self.is_element_displayed(*self._gallery_items_locator)
|
||||
|
||||
@property
|
||||
def thumbnails(self):
|
||||
if self.are_gallery_items_displayed:
|
||||
return [self.Thumbnail(self.marionette, thumbnail, index)
|
||||
for index, thumbnail in enumerate(self.marionette.find_elements(*self._gallery_items_locator))]
|
||||
else:
|
||||
return []
|
||||
|
||||
def switch_to_camera(self):
|
||||
switch_to_camera_button = self.marionette.find_element(*self._switch_to_camera_button_locator)
|
||||
switch_to_camera_button.tap()
|
||||
camera_app = gaiatest.apps.camera.app.Camera(self.marionette)
|
||||
camera_app.wait_to_be_displayed()
|
||||
self.apps.switch_to_displayed_app()
|
||||
return camera_app
|
||||
|
||||
def switch_to_multiple_selection_view(self):
|
||||
self.marionette.find_element(*self._switch_to_multiple_selection_view_locator).tap()
|
||||
from gaiatest.apps.gallery.regions.multiple_selection_view import MultipleSelectionView
|
||||
return MultipleSelectionView(self.marionette)
|
||||
|
||||
class Thumbnail(PageRegion):
|
||||
|
||||
def __init__(self, marionette, element, index):
|
||||
self.root_element = element
|
||||
# Save the index of the element so we can match it to the js files object
|
||||
self.index = index
|
||||
Base.__init__(self, marionette)
|
||||
|
||||
@property
|
||||
def absolute_image_size(self):
|
||||
'''
|
||||
The dimensions of the image on disk, is drawn from the image's metadata
|
||||
'''
|
||||
return {"height": self.marionette.execute_script('return window.wrappedJSObject.files[%s].metadata.height' % self.index),
|
||||
"width": self.marionette.execute_script('return window.wrappedJSObject.files[%s].metadata.width' % self.index)}
|
||||
|
||||
def tap(self):
|
||||
self.root_element.tap()
|
||||
Loading…
Reference in a new issue