class TestMoveApp(GaiaTestCase): def setUp(self): GaiaTestCase.setUp(self) self.homescreen = Homescreen(self.marionette) self.homescreen.launch() def test_move_app_position(self): """ Verify the user can move an application around on the homescreen. https://moztrap.mozilla.org/manage/case/1317/ """ # Go to app page self.homescreen.go_to_next_page() first_app_before_move = self.homescreen.visible_apps[0].name # Activate edit mode self.assertFalse(self.homescreen.is_edit_mode_active, "Edit mode should not be active") self.homescreen.activate_edit_mode() self.assertTrue(self.homescreen.is_edit_mode_active, "Edit mode should be active") # Move first app to position 12 self.homescreen.move_app_to_position(0, 12) # Exit edit mode self.homescreen.touch_home_button() self.homescreen.switch_to_homescreen_frame() self.assertFalse(self.homescreen.is_edit_mode_active, "Edit mode should not be active") # Check the app order and that the app on position 12 is the right one first_app_after_move = self.homescreen.visible_apps[0].name self.assertNotEqual(first_app_before_move, first_app_after_move) self.assertEqual(first_app_before_move, self.homescreen.visible_apps[12].name)
def test_browser_bookmark(self): search = Search(self.marionette) search.launch() browser = search.go_to_url(self.test_url) browser.tap_menu_button() bookmark = browser.tap_add_to_home() bookmark.type_bookmark_title(self.bookmark_title) bookmark.tap_add_bookmark_to_home_screen_dialog_button() # Switch to Home Screen to look for bookmark self.device.touch_home_button() homescreen = Homescreen(self.marionette) homescreen.wait_for_app_icon_present(self.bookmark_title) self._bookmark_added = homescreen.is_app_installed(self.bookmark_title) self.assertTrue(self._bookmark_added, 'The bookmark %s was not found to be installed on the home screen.' % self.bookmark_title) # Delete the bookmark homescreen.activate_edit_mode() homescreen.bookmark(self.bookmark_title).tap_delete_app().tap_confirm(bookmark=True) homescreen.wait_to_be_displayed() self.apps.switch_to_displayed_app() homescreen.wait_for_bookmark_icon_not_present(self.bookmark_title) # Check that the bookmark icon is no longer displayed on the homescreen self._bookmark_added = homescreen.is_app_installed(self.bookmark_title) self.assertFalse(self._bookmark_added, 'The bookmark %s was not successfully removed from homescreen.' % self.bookmark_title)
class TestMoveApp(GaiaTestCase): def setUp(self): GaiaTestCase.setUp(self) self.homescreen = Homescreen(self.marionette) self.apps.switch_to_displayed_app() def test_move_app_position(self): """Verify the user can move an application around on the homescreen. https://moztrap.mozilla.org/manage/case/1317/ """ # Go to app page self.homescreen.go_to_next_page() first_app_before_move = self.homescreen.visible_apps[0].name # Activate edit mode self.assertFalse(self.homescreen.is_edit_mode_active, "Edit mode should not be active") self.homescreen.activate_edit_mode() self.assertTrue(self.homescreen.is_edit_mode_active, "Edit mode should be active") # Move first app to position 12 self.homescreen.move_app_to_position(0, 12) # Exit edit mode self.device.touch_home_button() self.assertFalse(self.homescreen.is_edit_mode_active, "Edit mode should not be active") # Check the app order and that the app on position 12 is the right one first_app_after_move = self.homescreen.visible_apps[0].name self.assertNotEqual(first_app_before_move, first_app_after_move) self.assertEqual(first_app_before_move, self.homescreen.visible_apps[12].name)
class TestDeleteApp(GaiaTestCase): def setUp(self): GaiaTestCase.setUp(self) self.connect_to_local_area_network() self.homescreen = Homescreen(self.marionette) self.apps.switch_to_displayed_app() self.test_data = { 'name': 'packagedapp1', 'url': self.marionette.absolute_url('webapps/packaged1/manifest.webapp'), 'title': 'Packaged app1' } # Install app so we can delete it self.marionette.execute_script( 'navigator.mozApps.installPackage("%s")' % self.test_data['url']) # Confirm the installation and wait for the app icon to be present confirm_install = ConfirmInstall(self.marionette) confirm_install.tap_confirm() self.apps.switch_to_displayed_app() self.homescreen.wait_for_app_icon_present(self.test_data['name']) def test_delete_app(self): """https://moztrap.mozilla.org/manage/case/6117/""" # Verify that the app is installed i.e. the app icon is visible on one of the homescreen pages self.assertTrue( self.homescreen.is_app_installed(self.test_data['name']), 'App %s not found on homescreen' % self.test_data['name']) # Activate edit mode self.homescreen.activate_edit_mode() # Tap on the (x) to start delete process and tap on the confirm delete button self.homescreen.installed_app( self.test_data['name']).tap_delete_app().tap_confirm() self.wait_for_condition( lambda m: self.apps.displayed_app.name == self.homescreen.name) self.apps.switch_to_displayed_app() self.homescreen.tap_edit_done() self.homescreen.wait_for_app_icon_not_present(self.test_data['name']) # Check that the app is no longer available with self.assertRaises(AssertionError): self.apps.launch(self.test_data['name']) def tearDown(self): self.apps.uninstall(self.test_data['name']) GaiaTestCase.tearDown(self)
class TestDeleteApp(GaiaTestCase): MANIFEST = 'http://mozqa.com/data/webapps/mozqa.com/manifest.webapp' APP_NAME = 'Mozilla QA WebRT Tester' APP_INSTALLED = False # App install popup _notification_banner_locator = (By.ID, 'system-banner') def setUp(self): GaiaTestCase.setUp(self) if self.apps.is_app_installed(self.APP_NAME): self.apps.uninstall(self.APP_NAME) self.connect_to_network() self.homescreen = Homescreen(self.marionette) self.homescreen.launch() def test_delete_app(self): # Install app self.marionette.switch_to_frame() self.marionette.execute_script('navigator.mozApps.install("%s")' % self.MANIFEST) # Confirm the installation confirm_install = ConfirmInstall(self.marionette) confirm_install.tap_confirm() # Wait for the app to be installed and the notification banner to be available self.wait_for_element_displayed(*self._notification_banner_locator) self.wait_for_element_not_displayed(*self._notification_banner_locator) self.homescreen.switch_to_homescreen_frame() # Verify that the app is installed i.e. the app icon is visible on one of the homescreen pages self.assertTrue(self.homescreen.is_app_installed(self.APP_NAME), "App %s not found on Homescreen" % self.APP_NAME) # Activate edit mode self.homescreen.activate_edit_mode() # Tap on the (x) to start delete process and tap on the confirm delete button self.homescreen.installed_app( self.APP_NAME).tap_delete_app().tap_confirm() self.homescreen.wait_for_app_icon_not_present(self.APP_NAME) # Return to normal mode self.homescreen.touch_home_button() # Check that the app is no longer available with self.assertRaises(AssertionError): self.apps.launch(self.APP_NAME)
class TestDeleteApp(GaiaTestCase): MANIFEST = "http://mozqa.com/data/webapps/mozqa.com/manifest.webapp" APP_NAME = "Mozilla QA WebRT Tester" APP_INSTALLED = False # App install popup _confirm_install_button_locator = (By.ID, "app-install-install-button") _notification_banner_locator = (By.ID, "system-banner") def setUp(self): GaiaTestCase.setUp(self) if self.apps.is_app_installed(self.APP_NAME): self.apps.uninstall(self.APP_NAME) self.connect_to_network() self.homescreen = Homescreen(self.marionette) self.homescreen.launch() def test_delete_app(self): # Install app self.marionette.switch_to_frame() self.marionette.execute_script('navigator.mozApps.install("%s")' % self.MANIFEST) # Confirm the installation self.wait_for_element_displayed(*self._confirm_install_button_locator) self.marionette.find_element(*self._confirm_install_button_locator).tap() # Wait for the app to be installed and the notification banner to be available self.wait_for_element_displayed(*self._notification_banner_locator) self.wait_for_element_not_displayed(*self._notification_banner_locator) self.homescreen.switch_to_homescreen_frame() # Verify that the app is installed i.e. the app icon is visible on one of the homescreen pages self.assertTrue( self.homescreen.is_app_installed(self.APP_NAME), "App %s not found on Homescreen" % self.APP_NAME ) # Activate edit mode self.homescreen.activate_edit_mode() # Tap on the (x) to start delete process and tap on the confirm delete button self.homescreen.installed_app(self.APP_NAME).tap_delete_app().tap_confirm() self.homescreen.wait_for_app_icon_not_present(self.APP_NAME) # Return to normal mode self.homescreen.touch_home_button() # Check that the app is no longer available with self.assertRaises(AssertionError): self.apps.launch(self.APP_NAME)
class TestDeleteApp(GaiaTestCase): def setUp(self): GaiaTestCase.setUp(self) # Turn off geolocation prompt for smart collections self.apps.set_permission('Smart Collections', 'geolocation', 'deny') self.homescreen = Homescreen(self.marionette) self.apps.switch_to_displayed_app() self.test_data = { 'name': 'Mozilla QA WebRT Tester', 'url': 'http://mozqa.com/data/webapps/mozqa.com/manifest.webapp'} if not self.apps.is_app_installed(self.test_data['name']): self.connect_to_network() if self.device.is_desktop_b2g or self.data_layer.is_wifi_connected(): self.test_data['url'] = self.marionette.absolute_url( 'webapps/mozqa.com/manifest.webapp') # Install app so we can delete it self.marionette.execute_script( 'navigator.mozApps.install("%s")' % self.test_data['url']) # Confirm the installation and wait for the app icon to be present confirm_install = ConfirmInstall(self.marionette) confirm_install.tap_confirm() self.apps.switch_to_displayed_app() self.homescreen.wait_for_app_icon_present(self.test_data['name']) def test_delete_app(self): # Verify that the app is installed i.e. the app icon is visible on one of the homescreen pages self.assertTrue( self.homescreen.is_app_installed(self.test_data['name']), 'App %s not found on homescreen' % self.test_data['name']) # Activate edit mode self.homescreen.activate_edit_mode() # Tap on the (x) to start delete process and tap on the confirm delete button self.homescreen.installed_app(self.test_data['name']).tap_delete_app().tap_confirm() self.wait_for_condition(lambda m: self.apps.displayed_app.name == self.homescreen.name) self.apps.switch_to_displayed_app() self.homescreen.wait_for_app_icon_not_present(self.test_data['name']) # Check that the app is no longer available with self.assertRaises(AssertionError): self.apps.launch(self.test_data['name'])
class TestBrowserBookmark(GaiaMtbfTestCase): _bookmark_added = False def setUp(self): GaiaMtbfTestCase.setUp(self) self.connect_to_network() self.test_url = 'http://mozqa.com/data/firefox/layout/mozilla.html' curr_time = repr(time.time()).replace('.', '') self.bookmark_title = 'gaia%s' % curr_time[10:] self.homescreen = Homescreen(self.marionette) self.browser = Browser(self.marionette) self.browser.launch() def test_browser_bookmark(self): self.wait_for_element_displayed(*self.browser._awesome_bar_locator) self.marionette.find_element(*self.browser._awesome_bar_locator).clear() self.browser.go_to_url(self.test_url) self.browser.tap_bookmark_button() bookmark = self.browser.tap_add_bookmark_to_home_screen_choice_button() self.wait_for_element_displayed(*bookmark._bookmark_title_input_locator) bookmark.type_bookmark_title(self.bookmark_title) bookmark.tap_add_bookmark_to_home_screen_dialog_button() # Switch to Home Screen to look for bookmark self.device.touch_home_button() self.wait_for_element_displayed('id', 'bookmark-title') self.homescreen.wait_for_app_icon_present(self.bookmark_title) self._bookmark_added = self.homescreen.is_app_installed(self.bookmark_title) if self.find_element('id', 'edit-button').is_displayed(): self.find_element('id', 'edit-button').tap() self.assertTrue(self._bookmark_added, 'The bookmark %s was not found to be installed on the home screen.' % self.bookmark_title) def tearDown(self): # make sure it goes back to the top for activating editing mode self.device.touch_home_button() self.device.touch_home_button() # delete the bookmark self.apps.switch_to_displayed_app() self.homescreen.activate_edit_mode() self.confirm_dialog = self.homescreen.installed_app(self.bookmark_title).tap_delete_app() self.confirm_dialog.tap_confirm() self.data_layer.disable_wifi() GaiaMtbfTestCase.tearDown(self)
class home(object): def __init__(self, parent): self.parent = parent self.marionette = parent.marionette self.homescreen = Homescreen(self.marionette) def goHome(self): """ Return to the home screen. """ # (Sometimes the home button needs to be tapped twice, i.e. if you're # in a results screen of EME.) self.touchHomeButton() self.touchHomeButton() self.parent.apps.kill_all() self.parent.iframe.switchToFrame(*DOM.Home.frame_locator, quit_on_error=False) time.sleep(1) def holdHomeButton(self): """Hold Home button pressed to show active applications. """ self.parent.parent.device.hold_home_button() def putHomeInEditMode(self): """Activate Edit Mode by holding an app pressed and then releasing. """ self.homescreen.activate_edit_mode() def scrollHomescreenLeft(self): """ Scroll to previous page (left). Should change this to use marionette.flick() when it works. """ self.marionette.execute_script( 'window.wrappedJSObject.GridManager.goToPreviousPage()') def scrollHomescreenRight(self): """ Scroll to next page (right). Should change this to use marionette.flick() when it works. """ self.marionette.execute_script( 'window.wrappedJSObject.GridManager.goToNextPage()') def touchHomeButton(self): """Touch Home button. """ self.parent.parent.device.touch_home_button()
class TestDeleteApp(GaiaTestCase): def setUp(self): GaiaTestCase.setUp(self) self.connect_to_local_area_network() # Turn off geolocation prompt for smart collections self.apps.set_permission('Smart Collections', 'geolocation', 'deny') self.homescreen = Homescreen(self.marionette) self.apps.switch_to_displayed_app() self.test_data = { 'name': 'packagedapp1', 'url': self.marionette.absolute_url('webapps/packaged1/manifest.webapp'), 'title': 'Packaged app1' } # Install app so we can delete it self.marionette.execute_script( 'navigator.mozApps.installPackage("%s")' % self.test_data['url']) # Confirm the installation and wait for the app icon to be present confirm_install = ConfirmInstall(self.marionette) confirm_install.tap_confirm() self.apps.switch_to_displayed_app() self.homescreen.wait_for_app_icon_present(self.test_data['name']) def test_delete_app(self): """https://moztrap.mozilla.org/manage/case/6117/""" # Verify that the app is installed i.e. the app icon is visible on one of the homescreen pages self.assertTrue( self.homescreen.is_app_installed(self.test_data['name']), 'App %s not found on homescreen' % self.test_data['name']) # Activate edit mode self.homescreen.activate_edit_mode() # Tap on the (x) to start delete process and tap on the confirm delete button self.homescreen.installed_app( self.test_data['name']).tap_delete_app().tap_confirm() self.wait_for_condition( lambda m: self.apps.displayed_app.name == self.homescreen.name) self.apps.switch_to_displayed_app() self.homescreen.wait_for_app_icon_not_present(self.test_data['name']) # Check that the app is no longer available with self.assertRaises(AssertionError): self.apps.launch(self.test_data['name'])
class TestDeleteApp(GaiaTestCase): def setUp(self): GaiaTestCase.setUp(self) self.connect_to_local_area_network() # Turn off geolocation prompt for smart collections self.apps.set_permission('Smart Collections', 'geolocation', 'deny') self.homescreen = Homescreen(self.marionette) self.apps.switch_to_displayed_app() self.test_data = { 'name': 'Mozilla QA WebRT Tester', 'url': self.marionette.absolute_url('webapps/mozqa.com/manifest.webapp') } # Install app so we can delete it self.marionette.execute_script('navigator.mozApps.install("%s")' % self.test_data['url']) # Confirm the installation and wait for the app icon to be present confirm_install = ConfirmInstall(self.marionette) confirm_install.tap_confirm() self.apps.switch_to_displayed_app() self.homescreen.wait_for_app_icon_present(self.test_data['name']) def test_delete_app(self): # Verify that the app is installed i.e. the app icon is visible on one of the homescreen pages self.assertTrue( self.homescreen.is_app_installed(self.test_data['name']), 'App %s not found on homescreen' % self.test_data['name']) # Activate edit mode self.homescreen.activate_edit_mode() # Tap on the (x) to start delete process and tap on the confirm delete button self.homescreen.installed_app( self.test_data['name']).tap_delete_app().tap_confirm() self.wait_for_condition( lambda m: self.apps.displayed_app.name == self.homescreen.name) self.apps.switch_to_displayed_app() self.homescreen.wait_for_app_icon_not_present(self.test_data['name']) # Check that the app is no longer available with self.assertRaises(AssertionError): self.apps.launch(self.test_data['name'])
class home(object): def __init__(self, parent): self.parent = parent self.marionette = parent.marionette self.homescreen = Homescreen(self.marionette) def goHome(self): """ Return to the home screen. """ # (Sometimes the home button needs to be tapped twice, i.e. if you're # in a results screen of EME.) self.touchHomeButton() self.touchHomeButton() self.parent.apps.kill_all() self.parent.iframe.switchToFrame(*DOM.Home.frame_locator, quit_on_error=False) time.sleep(1) def holdHomeButton(self): """Hold Home button pressed to show active applications. """ self.parent.parent.device.hold_home_button() def putHomeInEditMode(self): """Activate Edit Mode by holding an app pressed and then releasing. """ self.homescreen.activate_edit_mode() def scrollHomescreenLeft(self): """ Scroll to previous page (left). Should change this to use marionette.flick() when it works. """ self.marionette.execute_script('window.wrappedJSObject.GridManager.goToPreviousPage()') def scrollHomescreenRight(self): """ Scroll to next page (right). Should change this to use marionette.flick() when it works. """ self.marionette.execute_script('window.wrappedJSObject.GridManager.goToNextPage()') def touchHomeButton(self): """Touch Home button. """ self.parent.parent.device.touch_home_button()
class TestDeleteApp(GaiaTestCase): def setUp(self): GaiaTestCase.setUp(self) self.connect_to_local_area_network() self.homescreen = Homescreen(self.marionette) self.apps.switch_to_displayed_app() self.test_data = { 'name': 'Mozilla QA WebRT Tester', 'url': self.marionette.absolute_url('webapps/mozqa.com/manifest.webapp')} # Install app so we can delete it self.marionette.execute_script( 'navigator.mozApps.install("%s")' % self.test_data['url']) # Confirm the installation and wait for the app icon to be present confirm_install = ConfirmInstall(self.marionette) confirm_install.tap_confirm() self.apps.switch_to_displayed_app() self.homescreen.wait_for_app_icon_present(self.test_data['name']) def test_delete_app(self): # Verify that the app is installed i.e. the app icon is visible on one of the homescreen pages self.assertTrue( self.homescreen.is_app_installed(self.test_data['name']), 'App %s not found on homescreen' % self.test_data['name']) # Activate edit mode self.homescreen.activate_edit_mode() # Tap on the (x) to start delete process and tap on the confirm delete button self.homescreen.installed_app(self.test_data['name']).tap_delete_app().tap_confirm() self.homescreen.wait_to_be_displayed() self.apps.switch_to_displayed_app() self.homescreen.tap_edit_done() self.homescreen.wait_for_app_icon_not_present(self.test_data['name']) # Check that the app is no longer available with self.assertRaises(AssertionError): self.apps.launch(self.test_data['name']) def tearDown(self): self.apps.uninstall(self.test_data['name']) GaiaTestCase.tearDown(self)
class TestDeleteApp(GaiaTestCase): MANIFEST = "http://mozqa.com/data/webapps/mozqa.com/manifest.webapp" APP_NAME = "Mozilla QA WebRT Tester" APP_INSTALLED = False def setUp(self): GaiaTestCase.setUp(self) if self.apps.is_app_installed(self.APP_NAME): self.apps.uninstall(self.APP_NAME) self.connect_to_network() self.homescreen = Homescreen(self.marionette) def test_delete_app(self): # Install app self.marionette.execute_script('navigator.mozApps.install("%s")' % self.MANIFEST) # Confirm the installation confirm_install = ConfirmInstall(self.marionette) confirm_install.tap_confirm() self.apps.switch_to_displayed_app() # Wait for the app to be installed self.homescreen.wait_for_app_icon_present(self.APP_NAME) # Verify that the app is installed i.e. the app icon is visible on one of the homescreen pages self.assertTrue( self.homescreen.is_app_installed(self.APP_NAME), "App %s not found on Homescreen" % self.APP_NAME ) # Activate edit mode self.homescreen.activate_edit_mode() # Tap on the (x) to start delete process and tap on the confirm delete button self.homescreen.installed_app(self.APP_NAME).tap_delete_app().tap_confirm() self.wait_for_condition(lambda m: self.apps.displayed_app.name == self.homescreen.name) self.apps.switch_to_displayed_app() self.homescreen.wait_for_app_icon_not_present(self.APP_NAME) # Check that the app is no longer available with self.assertRaises(AssertionError): self.apps.launch(self.APP_NAME)
class TestDeleteApp(GaiaTestCase): MANIFEST = 'http://mozqa.com/data/webapps/mozqa.com/manifest.webapp' APP_NAME = 'Mozilla QA WebRT Tester' def setUp(self): GaiaTestCase.setUp(self) self.homescreen = Homescreen(self.marionette) self.apps.switch_to_displayed_app() self.homescreen.wait_for_homescreen_to_load() if not self.apps.is_app_installed(self.APP_NAME): self.connect_to_network() # Install app so we can delete it self.marionette.execute_script( 'navigator.mozApps.install("%s")' % self.MANIFEST) # Confirm the installation and wait for the app icon to be present confirm_install = ConfirmInstall(self.marionette) confirm_install.tap_confirm() self.apps.switch_to_displayed_app() self.homescreen.wait_for_app_icon_present(self.APP_NAME) def test_delete_app(self): # Verify that the app is installed i.e. the app icon is visible on one of the homescreen pages self.assertTrue(self.homescreen.is_app_installed(self.APP_NAME), "App %s not found on Homescreen" % self.APP_NAME) # Activate edit mode self.homescreen.activate_edit_mode() # Tap on the (x) to start delete process and tap on the confirm delete button self.homescreen.installed_app(self.APP_NAME).tap_delete_app().tap_confirm() self.wait_for_condition(lambda m: self.apps.displayed_app.name == self.homescreen.name) self.apps.switch_to_displayed_app() self.homescreen.wait_for_app_icon_not_present(self.APP_NAME) # Check that the app is no longer available with self.assertRaises(AssertionError): self.apps.launch(self.APP_NAME)
class TestEditMode(GaiaTestCase): def setUp(self): GaiaTestCase.setUp(self) self.homescreen = Homescreen(self.marionette) self.apps.switch_to_displayed_app() def test_access_and_leave_edit_mode(self): # Go to edit mode self.homescreen.activate_edit_mode() # Verify that edit mode is active self.assertTrue(self.homescreen.is_edit_mode_active, "Edit mode should be active") # Tap home button and verify that edit mode is no longer active self.device.touch_home_button() self.assertFalse(self.homescreen.is_edit_mode_active, "Edit mode should not be active")
class TestEditMode(GaiaTestCase): def setUp(self): GaiaTestCase.setUp(self) self.homescreen = Homescreen(self.marionette) self.homescreen.launch() def test_access_and_leave_edit_mode(self): self.homescreen.go_to_next_page() # Go to edit mode self.homescreen.activate_edit_mode() # Verify that edit mode is active self.assertTrue(self.homescreen.is_edit_mode_active, "Edit mode should be active") # Tap home button and verify that edit mode is no longer active self.homescreen.touch_home_button() self.assertFalse(self.homescreen.is_edit_mode_active, "Edit mode should not be active")