def test_browser_bookmark(self): # https://github.com/mozilla/gaia-ui-tests/issues/452 browser = Browser(self.marionette) browser.launch() browser.go_to_url('http://mozqa.com/data/firefox/layout/mozilla.html') browser.tap_bookmark_button() browser.tap_add_bookmark_to_home_screen_choice_button() browser.type_bookmark_title(self.bookmark_title) browser.dismiss_keyboard() browser.tap_add_bookmark_to_home_screen_dialog_button() # Switch to Home Screen to look for bookmark homescreen = Homescreen(self.marionette) self.marionette.execute_script( "window.wrappedJSObject.dispatchEvent(new Event('home'));") homescreen.switch_to_homescreen_frame() 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)
def test_installing_everything_me_app(self): # https://github.com/mozilla/gaia-ui-tests/issues/67 homescreen = Homescreen(self.marionette) homescreen.switch_to_homescreen_frame() self.assertGreater(homescreen.collections_count, 0) collection = homescreen.tap_collection('Social') collection.wait_for_collection_screen_visible() app = collection.applications[0] app_name = app.name app.long_tap_to_install() app.tap_save_to_home_screen() notification_message = collection.notification_message self.assertEqual(notification_message, '%s added to Home Screen' % app_name) homescreen = collection.tap_exit() # return to home screen self.marionette.execute_script("window.wrappedJSObject.dispatchEvent(new Event('home'));") homescreen.switch_to_homescreen_frame() self.assertTrue(homescreen.is_app_installed(app_name), 'The app %s was not found to be installed on the home screen.' % app_name)
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)
class TestLaunchApp(GaiaTestCase): _header_locator = (By.CSS_SELECTOR, 'h1') def setUp(self): GaiaTestCase.setUp(self) self.connect_to_network() self.homescreen = Homescreen(self.marionette) self.homescreen.switch_to_homescreen_frame() # Install app self.marionette.switch_to_frame() self.marionette.execute_script('navigator.mozApps.install("%s")' % MANIFEST) # Confirm the installation and wait for the app icon to be present confirm_install = ConfirmInstall(self.marionette) confirm_install.tap_confirm() self.homescreen.switch_to_homescreen_frame() self.homescreen.wait_for_app_icon_present(APP_NAME) def test_launch_app(self): # Verify that the app icon is visible on one of the homescreen pages self.assertTrue(self.homescreen.is_app_installed(APP_NAME), "App %s not found on Homescreen" % APP_NAME) # Click icon and wait for h1 element displayed self.homescreen.installed_app(APP_NAME).tap_icon() self.wait_for_element_displayed(*self._header_locator, timeout=20) self.assertEqual( self.marionette.find_element(*self._header_locator).text, TITLE) def tearDown(self): self.apps.uninstall(APP_NAME) GaiaTestCase.tearDown(self)
def test_installing_everything_me_app(self): # https://github.com/mozilla/gaia-ui-tests/issues/67 homescreen = Homescreen(self.marionette) homescreen.switch_to_homescreen_frame() self.assertGreater(homescreen.collections_count, 0) collection = homescreen.tap_collection('Social') collection.wait_for_collection_screen_visible() app = collection.applications[0] app_name = app.name app.long_tap_to_install() app.tap_save_to_home_screen() notification_message = collection.notification_message self.assertEqual(notification_message, '%s added to Home Screen' % app_name) homescreen = collection.tap_exit() # return to home screen self.marionette.execute_script( "window.wrappedJSObject.dispatchEvent(new Event('home'));") homescreen.switch_to_homescreen_frame() self.assertTrue( homescreen.is_app_installed(app_name), 'The app %s was not found to be installed on the home screen.' % app_name)
def test_search_and_install_app(self): marketplace = Marketplace(self.marionette, self.MARKETPLACE_DEV_NAME) marketplace.launch() self.app_name = marketplace.popular_apps[0].name app_author = marketplace.popular_apps[0].author results = marketplace.search(self.app_name) self.assertGreater(len(results.search_results), 0, 'No results found.') first_result = results.search_results[0] self.assertEquals(first_result.name, self.app_name, 'First app has the wrong name.') self.assertEquals(first_result.author, app_author, 'First app has the wrong author.') # Find and click the install button to the install the web app self.assertEquals(first_result.install_button_text, 'Free', 'Incorrect button label.') first_result.tap_install_button() self.confirm_installation() self.APP_INSTALLED = True # Check that the icon of the app is on the homescreen homescreen = Homescreen(self.marionette) homescreen.switch_to_homescreen_frame() self.assertTrue(homescreen.is_app_installed(self.app_name))
class TestLaunchApp(GaiaTestCase): _header_locator = (By.CSS_SELECTOR, 'h1') def setUp(self): GaiaTestCase.setUp(self) self.connect_to_network() self.homescreen = Homescreen(self.marionette) self.homescreen.switch_to_homescreen_frame() # Install app self.marionette.switch_to_frame() self.marionette.execute_script( 'navigator.mozApps.install("%s")' % MANIFEST) # Confirm the installation and wait for the app icon to be present confirm_install = ConfirmInstall(self.marionette) confirm_install.tap_confirm() self.homescreen.switch_to_homescreen_frame() self.homescreen.wait_for_app_icon_present(APP_NAME) def test_launch_app(self): # Verify that the app icon is visible on one of the homescreen pages self.assertTrue(self.homescreen.is_app_installed(APP_NAME), "App %s not found on Homescreen" % APP_NAME) # Click icon and wait for h1 element displayed self.homescreen.installed_app(APP_NAME).tap_icon() self.wait_for_element_displayed(*self._header_locator, timeout=20) self.assertEqual(self.marionette.find_element(*self._header_locator).text, TITLE) def tearDown(self): self.apps.uninstall(APP_NAME) GaiaTestCase.tearDown(self)
def test_search_and_install_app(self): marketplace = Marketplace(self.marionette, self.MARKETPLACE_DEV_NAME) marketplace.launch() self.app_name = marketplace.popular_apps[0].name app_author = marketplace.popular_apps[0].author results = marketplace.search(self.app_name) self.assertGreater(len(results.search_results), 0, 'No results found.') first_result = results.search_results[0] self.assertEquals(first_result.name, self.app_name, 'First app has the wrong name.') self.assertEquals(first_result.author, app_author, 'First app has the wrong author.') # Find and click the install button to the install the web app self.assertEquals(first_result.install_button_text, 'Free', 'Incorrect button label.') first_result.tap_install_button() self.confirm_installation() self.APP_INSTALLED = True # Check that the icon of the app is on the homescreen homescreen = Homescreen(self.marionette) homescreen.switch_to_homescreen_frame() self.assertTrue(homescreen.is_app_installed(self.app_name))
def test_everythingme_add_collection(self): homescreen = Homescreen(self.marionette) homescreen.switch_to_homescreen_frame() contextmenu = homescreen.open_context_menu() contextmenu.tap_add_collection() homescreen.select('Autos') self.assertTrue(homescreen.is_app_installed('Autos'), "App %s not found on Homescreen" % 'Autos')
def test_everythingme_add_collection(self): homescreen = Homescreen(self.marionette) homescreen.switch_to_homescreen_frame() contextmenu = homescreen.open_context_menu() contextmenu.tap_add_collection() homescreen.select('Autos') self.assertTrue(homescreen.is_app_installed('Autos'), "App %s not found on Homescreen" % 'Autos')
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): 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)
def test_launch_everything_me_search(self): # Tests a search with a common string. # Asserts that the title and shortcuts are listed test_string = u'News' homescreen = Homescreen(self.marionette) homescreen.switch_to_homescreen_frame() search_panel = homescreen.tap_search_bar() search_panel.wait_for_everything_me_loaded() search_panel.type_into_search_box(test_string) search_panel.wait_for_everything_me_results_to_load() self.assertGreater(len(search_panel.results), 0)
def test_launch_everything_me_search(self): # Tests a search with a common string. # Asserts that the title and shortcuts are listed test_string = u'News' homescreen = Homescreen(self.marionette) homescreen.switch_to_homescreen_frame() search_panel = homescreen.tap_search_bar() search_panel.wait_for_everything_me_loaded() search_panel.type_into_search_box(test_string) search_panel.wait_for_everything_me_results_to_load() self.assertGreater(len(search_panel.results), 0)
def test_launch_everything_me_search_accented(self): # Tests a search with accented characters. # Asserts that title and shortcut results are returned correctly test_string = u'Pétanque' homescreen = Homescreen(self.marionette) homescreen.launch() search_panel = homescreen.tap_search_bar() search_panel.wait_for_keyboard_visible() search_panel.type_into_search_box(test_string) homescreen.switch_to_homescreen_frame() search_panel.wait_for_everything_me_results_to_load() self.assertGreater(len(search_panel.results), 0)
def test_launch_everything_me_search_accented(self): # Tests a search with accented characters. # Asserts that title and shortcut results are returned correctly test_string = u'Pétanque' homescreen = Homescreen(self.marionette) homescreen.switch_to_homescreen_frame() search_panel = homescreen.tap_search_bar() search_panel.wait_for_keyboard_visible() search_panel.type_into_search_box(test_string) search_panel.wait_for_type('Sports') search_panel.wait_for_everything_me_results_to_load() self.assertGreater(len(search_panel.results), 0)
def test_launch_packaged_app_from_search_panel(self): """Launch packaged app from homescreen search panel. https://github.com/mozilla/gaia-ui-tests/issues/1169 """ homescreen = Homescreen(self.marionette) homescreen.switch_to_homescreen_frame() search_panel = homescreen.tap_search_bar() search_panel.wait_for_keyboard_visible() search_panel.type_into_search_box(self.app_name) results = search_panel.installed_apps self.assertEqual(results[0].name, self.app_name) results[0].tap() self.assertEqual(self.apps.displayed_app.name.lower(), self.app_name.lower())
def test_marketplace_launch(self): app_name = 'Marketplace' homescreen = Homescreen(self.marionette) homescreen.switch_to_homescreen_frame() self.assertTrue(homescreen.is_app_installed(app_name)) marketplace = homescreen.installed_app(app_name) marketplace.tap_icon() self.wait_for_element_not_displayed(*self._loading_fragment_locator) iframe = self.marionette.find_element(*self._marketplace_iframe_locator) self.marionette.switch_to_frame(iframe) self.wait_for_element_displayed(*self._site_header_locator)
def test_launch_everything_me_app(self): # https://github.com/mozilla/gaia-ui-tests/issues/69 app_name = 'Twitter' homescreen = Homescreen(self.marionette) homescreen.switch_to_homescreen_frame() search_panel = homescreen.tap_search_bar() search_panel.wait_for_keyboard_visible() search_panel.type_into_search_box(app_name) search_panel.wait_for_everything_me_results_to_load() results = search_panel.results self.assertGreater(len(results), 0) results[0].tap() self.assertIn(app_name, self.marionette.title)
def test_launch_everything_me_app(self): # https://github.com/mozilla/gaia-ui-tests/issues/69 app_name = 'Twitter' homescreen = Homescreen(self.marionette) homescreen.switch_to_homescreen_frame() search_panel = homescreen.tap_search_bar() search_panel.wait_for_everything_me_loaded() search_panel.type_into_search_box(app_name) search_panel.wait_for_everything_me_results_to_load() results = search_panel.results self.assertGreater(len(results), 0) results[0].tap() self.assertIn(app_name, self.marionette.title)
def test_launch_packaged_app_from_search_panel(self): """Launch packaged app from homescreen search panel. https://github.com/mozilla/gaia-ui-tests/issues/1169 """ homescreen = Homescreen(self.marionette) homescreen.switch_to_homescreen_frame() search_panel = homescreen.tap_search_bar() search_panel.wait_for_everything_me_loaded() search_panel.type_into_search_box(self.app_name) results = search_panel.installed_apps self.assertEqual(results[0].name, self.app_name) results[0].tap() self.assertEqual(self.apps.displayed_app.name.lower(), self.app_name.lower())
def test_browser_bookmark(self): # https://github.com/mozilla/gaia-ui-tests/issues/452 browser = Browser(self.marionette) browser.launch() browser.go_to_url('http://mozqa.com/data/firefox/layout/mozilla.html') browser.tap_bookmark_button() browser.tap_add_bookmark_to_home_screen_choice_button() browser.type_bookmark_title(self.bookmark_title) browser.tap_add_bookmark_to_home_screen_dialog_button() # Switch to Home Screen to look for bookmark homescreen = Homescreen(self.marionette) self.marionette.execute_script("window.wrappedJSObject.dispatchEvent(new Event('home'));") homescreen.switch_to_homescreen_frame() 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)
def test_installing_everything_me_app(self): # https://github.com/mozilla/gaia-ui-tests/issues/67 homescreen = Homescreen(self.marionette) homescreen.switch_to_homescreen_frame() search_panel = homescreen.tap_search_bar() search_panel. wait_for_categories_to_load() self.assertGreater(search_panel.categories_count, 0) search_panel.categories[0].tap() search_panel.wait_for_app_icons_displayed() app_name = search_panel.results[0].name search_panel.results[0].tap_to_install() # return to home screen self.marionette.execute_script("window.wrappedJSObject.dispatchEvent(new Event('home'));") homescreen.switch_to_homescreen_frame() self.assertTrue(homescreen.is_app_installed(app_name), 'The app %s was not found to be installed on the home screen.' % app_name)
class TestEditMode(GaiaTestCase): def setUp(self): GaiaTestCase.setUp(self) self.homescreen = Homescreen(self.marionette) self.homescreen.switch_to_homescreen_frame() 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")
class TestEditMode(GaiaTestCase): def setUp(self): GaiaTestCase.setUp(self) self.homescreen = Homescreen(self.marionette) self.homescreen.switch_to_homescreen_frame() 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")