def test_that_app_can_be_launched_from_cards_view(self): """https://moztrap.mozilla.org/manage/case/2462/""" cards_view = CardsView(self.marionette) self.assertFalse(cards_view.is_cards_view_displayed, 'Cards view not expected to be visible') # Pull up the cards view self.device.hold_home_button() cards_view.wait_for_cards_view() # Wait for first app ready cards_view.wait_for_card_ready(self._test_apps[1]) for app in self._test_apps: self.assertTrue(cards_view.is_app_displayed(app), '%s app should be present in cards view' % app) cards_view.swipe_to_previous_app() # Wait for previous app ready cards_view.wait_for_card_ready(self._test_apps[0]) cards_view.tap_app(self._test_apps[0]) cards_view.wait_for_cards_view_not_displayed() self.assertEqual(self.apps.displayed_app.name, self._test_apps[0])
class TestCardsView(GaiaTestCase): _app_under_test = "Clock" _clock_frame_locator = (By.CSS_SELECTOR, "iframe[mozapp^='app://clock'][mozapp$='manifest.webapp']") def setUp(self): GaiaTestCase.setUp(self) self.cards_view = CardsView(self.marionette) # Launch the Clock app as a basic, reliable # app to test against in Cards View self.app = self.apps.launch(self._app_under_test) def test_that_app_can_be_launched_from_cards_view(self): # https://github.com/mozilla/gaia-ui-tests/issues/98 # Switch to top level frame before dispatching the event self.marionette.switch_to_frame() # Find the cards frame html element clock_frame = self.marionette.find_element(*self._clock_frame_locator) # Pull up the cards view self.cards_view.open_cards_view() self.assertFalse(clock_frame.is_displayed(), "Clock frame not expected to be displayed") # Launch the app from the cards view self.cards_view.tap_app(self._app_under_test) self.cards_view.wait_for_cards_view_not_displayed() self.assertTrue(clock_frame.is_displayed(), "Clock frame expected to be displayed")
def test_that_app_can_be_launched_from_cards_view(self): """ https://moztrap.mozilla.org/manage/case/2462/ """ cards_view = CardsView(self.marionette) self.assertFalse(cards_view.is_displayed, 'Cards view not expected to be visible') # Pull up the cards view self.device.hold_home_button() cards_view.wait_for_cards_view() # Wait for first app ready cards_view.cards[1].wait_for_centered() self.assertIn(cards_view.cards[0].manifest_url, self.calendar.manifest_url) self.assertTrue(cards_view.cards[0].is_displayed, '%s app should be present in cards view' % cards_view.cards[1].title) self.assertIn(cards_view.cards[1].manifest_url, self.clock.manifest_url) self.assertTrue(cards_view.cards[1].is_displayed, '%s app should be present in cards view' % cards_view.cards[1].title) cards_view.swipe_to_previous_app() # Wait for previous app ready cards_view.cards[0].wait_for_centered() cards_view.cards[0].tap() cards_view.wait_for_cards_view_not_displayed() self.calendar.wait_to_be_displayed()
class TestCardsView(GaiaTestCase): _app_under_test = "Clock" _clock_frame_locator = ( By.CSS_SELECTOR, "iframe[mozapp^='app://clock'][mozapp$='manifest.webapp']") def setUp(self): GaiaTestCase.setUp(self) self.cards_view = CardsView(self.marionette) # Launch the Clock app as a basic, reliable # app to test against in Cards View self.app = self.apps.launch(self._app_under_test) def test_that_app_can_be_launched_from_cards_view(self): # https://github.com/mozilla/gaia-ui-tests/issues/98 # Switch to top level frame before dispatching the event self.marionette.switch_to_frame() # Find the cards frame html element clock_frame = self.marionette.find_element(*self._clock_frame_locator) # Pull up the cards view self.cards_view.open_cards_view() self.assertFalse(clock_frame.is_displayed(), "Clock frame not expected to be displayed") # Launch the app from the cards view self.cards_view.tap_app(self._app_under_test) self.cards_view.wait_for_cards_view_not_displayed() self.assertTrue(clock_frame.is_displayed(), "Clock frame expected to be displayed")
def test_cards_view_with_two_apps(self): """https://moztrap.mozilla.org/manage/case/2462/""" cards_view = CardsView(self.marionette) self.assertFalse(cards_view.is_displayed, 'Cards view not expected to be visible') # Pull up the cards view self.device.hold_home_button() cards_view.wait_for_cards_view() self.take_screenshot(top_frame=True) # disabled per Bug 1118390 #self.change_orientation('landscape-primary') #self.take_screenshot() #self.change_orientation('portrait-primary') #self.take_screenshot() # Wait for first app ready cards_view.cards[1].wait_for_centered() self.assertIn(cards_view.cards[0].manifest_url[:19], self.contacts.manifest_url) self.assertIn(cards_view.cards[1].manifest_url, self.gallery.manifest_url) cards_view.swipe_to_previous_app() # Wait for previous app ready cards_view.cards[0].wait_for_centered() # sleep inside above method is insufficient time.sleep(2) self.take_screenshot(top_frame=True) cards_view.cards[0].tap() cards_view.wait_for_cards_view_not_displayed() self.take_screenshot(top_frame=True) #bug 1151571 will cause blank screen capture self.assertTrue(self.contacts.is_displayed)
def test_that_app_can_be_launched_from_cards_view(self): # https://bugzilla.mozilla.org/show_bug.cgi?id=943338 cards_view = CardsView(self.marionette) self.assertFalse(cards_view.is_cards_view_displayed, 'Cards view not expected to be visible') # Pull up the cards view cards_view.open_cards_view() for app in self._test_apps: self.assertTrue(cards_view.is_app_displayed(app), '%s app should be visible in cards view' % app) cards_view.swipe_to_next_app() cards_view.tap_app(self._test_apps[0]) cards_view.wait_for_cards_view_not_displayed() self.assertEqual(self.apps.displayed_app.name, self._test_apps[0])
def test_that_app_can_be_launched_from_cards_view(self): # https://bugzilla.mozilla.org/show_bug.cgi?id=943338 cards_view = CardsView(self.marionette) self.assertFalse(cards_view.is_cards_view_displayed, 'Cards view not expected to be visible') # Pull up the cards view self.device.hold_home_button() cards_view.wait_for_cards_view() for app in self._test_apps: self.assertTrue(cards_view.is_app_displayed(app), '%s app should be visible in cards view' % app) cards_view.swipe_to_next_app() cards_view.tap_app(self._test_apps[0]) cards_view.wait_for_cards_view_not_displayed() self.assertEqual(self.apps.displayed_app.name, self._test_apps[0])
class TestCardsViewTwoApps(GaiaImageCompareTestCase): def setUp(self): GaiaImageCompareTestCase.setUp(self) self.cards_view = CardsView(self.marionette) self.contacts = Contacts(self.marionette) self.contacts.launch() self.gallery = Gallery(self.marionette) self.gallery.launch(empty=True) # 10 seconds for the actual user using the app a bit, and going back to homescreen time.sleep(10) self.device.touch_home_button() def test_cards_view_kill_apps_with_two_apps(self): """https://moztrap.mozilla.org/manage/case/1917/""" # Pull up the cards view self.device.hold_home_button() self.cards_view.wait_for_cards_view() # Wait for first app ready self.cards_view.cards[1].wait_for_centered() self.take_screenshot(top_frame=True) # Close the current apps from the cards view self.cards_view.cards[1].close() self.cards_view.cards[0].wait_for_centered() self.take_screenshot(top_frame=True) self.cards_view.cards[0].close() self.cards_view.wait_for_cards_view_not_displayed() self.take_screenshot(top_frame=True) # If successfully killed, the apps should no longer appear in the cards view # and the "No recent apps" message should be displayed self.device.hold_home_button() self.cards_view.wait_for_no_card_displayed() self.take_screenshot(top_frame=True) self.assertEqual(len(self.cards_view.cards), 0) self.assertTrue(self.cards_view.is_no_card_displayed)
def test_cards_view_with_two_apps(self): """https://moztrap.mozilla.org/manage/case/2462/""" cards_view = CardsView(self.marionette) self.assertFalse(cards_view.is_displayed, 'Cards view not expected to be visible') # Pull up the cards view self.device.hold_home_button() cards_view.wait_for_cards_view() card_frame = self.marionette.get_active_frame() self.take_screenshot() # disabled per Bug 1118390 #self.change_orientation('landscape-primary') #self.take_screenshot() #self.change_orientation('portrait-primary') #self.take_screenshot() # Wait for first app ready cards_view.wait_for_card_ready(self._test_apps[1]) for app in self._test_apps: self.assertTrue(cards_view.is_app_displayed(app), '%s app should be present in cards view' % app) cards_view.swipe_to_previous_app() # Wait for previous app ready cards_view.wait_for_card_ready(self._test_apps[0]) # sleep inside above method is insufficient time.sleep(2) self.take_screenshot() self.marionette.switch_to_frame(frame=card_frame) cards_view.tap_app(self._test_apps[0]) cards_view.wait_for_cards_view_not_displayed() self.take_screenshot() #bug 1151571 will cause blank screen capture self.assertEqual(self.apps.displayed_app.name, self._test_apps[0])
def test_cards_view_with_two_apps(self): """https://moztrap.mozilla.org/manage/case/2462/""" cards_view = CardsView(self.marionette) self.assertFalse(cards_view.is_displayed, 'Cards view not expected to be visible') # Pull up the cards view self.device.hold_home_button() cards_view.wait_for_cards_view() card_frame = self.marionette.get_active_frame() self.take_screenshot() # disabled per Bug 1118390 #self.change_orientation('landscape-primary') #self.take_screenshot() #self.change_orientation('portrait-primary') #self.take_screenshot() # Wait for first app ready cards_view.wait_for_card_ready(self._test_apps[1]) for app in self._test_apps: self.assertTrue(cards_view.is_app_displayed(app), '%s app should be present in cards view' % app) cards_view.swipe_to_previous_app() # Wait for previous app ready cards_view.wait_for_card_ready(self._test_apps[0]) # sleep inside above method is insufficient time.sleep(2) self.take_screenshot() self.marionette.switch_to_frame(frame=card_frame) cards_view.tap_app(self._test_apps[0]) cards_view.wait_for_cards_view_not_displayed() self.take_screenshot() #bug 1151571 will cause blank screen capture self.assertEqual(self.apps.displayed_app.name, self._test_apps[0])
class TestCardsView(GaiaTestCase): _app_under_test = "Clock" _clock_frame_locator = (By.CSS_SELECTOR, "iframe[mozapp^='app://clock'][mozapp$='manifest.webapp']") def setUp(self): GaiaTestCase.setUp(self) self.cards_view = CardsView(self.marionette) # Launch the Clock app as a basic, reliable # app to test against in Cards View self.app = self.apps.launch(self._app_under_test) def test_cards_view(self): # https://moztrap.mozilla.org/manage/case/1909/ # Switch to top level frame before dispatching the event self.marionette.switch_to_frame() # Check that cards view is not displayed self.assertFalse(self.cards_view.is_cards_view_displayed, "Cards view not expected to be visible") # Pull up the cards view self.cards_view.open_cards_view() self.assertTrue(self.cards_view.is_app_displayed(self._app_under_test), "%s app expected to be visible in cards view" % self._app_under_test) self.cards_view.exit_cards_view() def test_that_app_can_be_launched_from_cards_view(self): # https://github.com/mozilla/gaia-ui-tests/issues/98 # Switch to top level frame before dispatching the event self.marionette.switch_to_frame() # Find the cards frame html element clock_frame = self.marionette.find_element(*self._clock_frame_locator) # Pull up the cards view self.cards_view.open_cards_view() self.assertFalse(clock_frame.is_displayed(), "Clock frame not expected to be displayed") # Launch the app from the cards view self.cards_view.tap_app(self._app_under_test) self.cards_view.wait_for_cards_view_not_displayed() self.assertTrue(clock_frame.is_displayed(), "Clock frame expected to be displayed") def test_kill_app_from_cards_view(self): # https://moztrap.mozilla.org/manage/case/1917/ # Switch to top level frame before dispatching the event self.marionette.switch_to_frame() # Pull up the cards view self.cards_view.open_cards_view() # Close the current app from cards view self.cards_view.close_app(self._app_under_test) self.marionette.switch_to_frame() # Pull up the cards view again self.cards_view.open_cards_view() # If successfully killed, the app should no longer appear in the cards view. self.assertFalse(self.cards_view.is_app_present(self._app_under_test), "Killed app not expected to appear in cards view")
def test_a11y_cards_view(self): cards_view = CardsView(self.marionette) self.assertTrue( cards_view.is_cards_view_a11y_hidden, 'Cards view should not be visible to the screen reader') # Pull up the cards view self.device.hold_home_button() cards_view.wait_for_cards_view() # Wait for first app ready cards_view.cards[2].wait_for_centered() # Only current card should be visible self.assertTrue(cards_view.is_app_a11y_visible(self._test_apps[2])) self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[1])) self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[0])) # Swipe with two fingers right and left and verify card visibility cards_view.a11y_wheel_cards_view('right') self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[2])) self.assertTrue(cards_view.is_app_a11y_visible(self._test_apps[1])) self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[0])) cards_view.a11y_wheel_cards_view('right') self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[2])) self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[1])) self.assertTrue(cards_view.is_app_a11y_visible(self._test_apps[0])) # Swipe again even though there's nowhere to swipe to make sure the # state does not break cards_view.a11y_wheel_cards_view('right') self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[2])) self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[1])) self.assertTrue(cards_view.is_app_a11y_visible(self._test_apps[0])) cards_view.a11y_wheel_cards_view('left') self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[2])) self.assertTrue(cards_view.is_app_a11y_visible(self._test_apps[1])) self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[0])) cards_view.a11y_wheel_cards_view('left') self.assertTrue(cards_view.is_app_a11y_visible(self._test_apps[2])) self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[1])) self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[0])) # Swipe again even though there's nowhere to swipe to make sure the # state does not break cards_view.a11y_wheel_cards_view('left') self.assertTrue(cards_view.is_app_a11y_visible(self._test_apps[2])) self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[1])) self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[0])) # Assert there are 3 cards self.assertEqual(3, len(cards_view.cards), 'Expected 3 cards') # Remove a card by swiping with 2 fingers up cards_view.a11y_wheel_cards_view('up') # Assert there are 2 cards cards = cards_view.cards self.assertEqual(2, len(cards), 'Expected 2 cards') self.assertTrue(cards_view.is_app_a11y_visible(self._test_apps[1])) self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[0])) # Remove a card by clicking its close button cards[1].a11y_click_close_button() # Assert there is 1 card cards = cards_view.cards self.assertEqual(1, len(cards), 'Expected 1 card') self.assertTrue(cards_view.is_app_a11y_visible(self._test_apps[0])) # Open an app by clicking its icon cards[0].a11y_click_app_icon() cards_view.wait_for_cards_view_not_displayed() self.assertEqual(self.apps.displayed_app.name, self._test_apps[0]) # Switch to top level frame and reopen cards view self.marionette.switch_to_frame() self.device.hold_home_button() cards_view.wait_for_cards_view() cards_view.cards[0].wait_for_centered() # Assert there is 1 card cards = cards_view.cards self.assertEqual(1, len(cards), 'Expected 1 card') # Open an app by clicking its screenshot view cards[0].a11y_click_screenshot_view() cards_view.wait_for_cards_view_not_displayed() self.assertEqual(self.apps.displayed_app.name, self._test_apps[0])
def test_a11y_cards_view(self): cards_view = CardsView(self.marionette) self.assertTrue(cards_view.is_cards_view_a11y_hidden, 'Cards view should not be visible to the screen reader') # Pull up the cards view self.device.hold_home_button() cards_view.wait_for_cards_view() # Wait for first app ready cards_view.wait_for_card_ready(self._test_apps[2]) # Only current card should be visible self.assertTrue(cards_view.is_app_a11y_visible(self._test_apps[2])) self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[1])) self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[0])) # Swipe with two fingers right and left and verify card visibility cards_view.a11y_wheel_cards_view('right') self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[2])) self.assertTrue(cards_view.is_app_a11y_visible(self._test_apps[1])) self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[0])) cards_view.a11y_wheel_cards_view('right') self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[2])) self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[1])) self.assertTrue(cards_view.is_app_a11y_visible(self._test_apps[0])) # Swipe again even though there's nowhere to swipe to make sure the # state does not break cards_view.a11y_wheel_cards_view('right') self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[2])) self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[1])) self.assertTrue(cards_view.is_app_a11y_visible(self._test_apps[0])) cards_view.a11y_wheel_cards_view('left') self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[2])) self.assertTrue(cards_view.is_app_a11y_visible(self._test_apps[1])) self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[0])) cards_view.a11y_wheel_cards_view('left') self.assertTrue(cards_view.is_app_a11y_visible(self._test_apps[2])) self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[1])) self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[0])) # Swipe again even though there's nowhere to swipe to make sure the # state does not break cards_view.a11y_wheel_cards_view('left') self.assertTrue(cards_view.is_app_a11y_visible(self._test_apps[2])) self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[1])) self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[0])) # Assert there are 3 cards self.assertEqual(3, len(cards_view.cards), 'Expected 3 cards') # Remove a card by swiping with 2 fingers up cards_view.a11y_wheel_cards_view('up') # Assert there are 2 cards cards = cards_view.cards self.assertEqual(2, len(cards), 'Expected 2 cards') self.assertTrue(cards_view.is_app_a11y_visible(self._test_apps[1])) self.assertTrue(cards_view.is_app_a11y_hidden(self._test_apps[0])) # Remove a card by clicking its close button cards[1].a11y_click_close_button() # Assert there is 1 card cards = cards_view.cards self.assertEqual(1, len(cards), 'Expected 1 card') self.assertTrue(cards_view.is_app_a11y_visible(self._test_apps[0])) # Open an app by clicking its icon cards[0].a11y_click_app_icon() cards_view.wait_for_cards_view_not_displayed() self.assertEqual(self.apps.displayed_app.name, self._test_apps[0]) # Switch to top level frame and reopen cards view self.marionette.switch_to_frame() self.device.hold_home_button() cards_view.wait_for_cards_view() cards_view.wait_for_card_ready(self._test_apps[0]) # Assert there is 1 card cards = cards_view.cards self.assertEqual(1, len(cards), 'Expected 1 card') # Open an app by clicking its screenshot view cards[0].a11y_click_screenshot_view() cards_view.wait_for_cards_view_not_displayed() self.assertEqual(self.apps.displayed_app.name, self._test_apps[0])