From 6ab6f3efe9b47d59c50b10c2a4f03e220e099b60 Mon Sep 17 00:00:00 2001 From: Oana Horvath Date: Tue, 21 Jul 2020 15:49:24 +0300 Subject: [PATCH] Fix UI tests from #12752 #12637 #12764 (#12779) * For #12752 & #12764: Fixes tabs tray behavior in UI tests * For #12637: fixes goBackTest --- .../java/org/mozilla/fenix/ui/BookmarksTest.kt | 6 ++++-- .../java/org/mozilla/fenix/ui/HistoryTest.kt | 6 +++--- .../org/mozilla/fenix/ui/MediaNotificationTest.kt | 4 ++-- .../org/mozilla/fenix/ui/NavigationToolbarTest.kt | 2 ++ .../org/mozilla/fenix/ui/TabbedBrowsingTest.kt | 15 +++++++++++---- .../mozilla/fenix/ui/robots/HomeScreenRobot.kt | 3 +++ .../fenix/ui/robots/ThreeDotMenuMainRobot.kt | 7 +++---- 7 files changed, 28 insertions(+), 15 deletions(-) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/BookmarksTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/BookmarksTest.kt index 8ab1a1b0e..3bb2f5348 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/BookmarksTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/BookmarksTest.kt @@ -322,7 +322,6 @@ class BookmarksTest { } } - @Ignore("Flaky test, temp disabled: https://github.com/mozilla-mobile/fenix/issues/12752") @Test fun openSelectionInNewTabTest() { val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) @@ -331,7 +330,10 @@ class BookmarksTest { createBookmark(defaultWebPage.url) }.openTabDrawer { closeTab() - }.openHomeScreen { }.openThreeDotMenu { + } + + homeScreen { + }.openThreeDotMenu { }.openBookmarks { bookmarksListIdlingResource = RecyclerViewIdlingResource(activityTestRule.activity.findViewById(R.id.bookmark_list)) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/HistoryTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/HistoryTest.kt index 9abc735aa..c1b65d5f2 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/HistoryTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/HistoryTest.kt @@ -11,7 +11,6 @@ import mozilla.components.browser.storage.sync.PlacesHistoryStorage import okhttp3.mockwebserver.MockWebServer import org.junit.After import org.junit.Before -import org.junit.Ignore import org.junit.Rule import org.junit.Test import org.mozilla.fenix.helpers.AndroidAssetDispatcher @@ -204,7 +203,6 @@ class HistoryTest { } } - @Ignore("Flaky test, temp disabled: https://github.com/mozilla-mobile/fenix/issues/12752") @Test fun openHistoryInNewTabTest() { val firstWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) @@ -214,7 +212,9 @@ class HistoryTest { mDevice.waitForIdle() }.openTabDrawer { closeTab() - }.openHomeScreen { }.openThreeDotMenu { + } + + homeScreen { }.openThreeDotMenu { }.openHistory { longTapSelectItem(firstWebPage.url) openActionBarOverflowOrOptionsMenu(activityTestRule.activity) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/MediaNotificationTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/MediaNotificationTest.kt index 386c95bb9..14d463209 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/MediaNotificationTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/MediaNotificationTest.kt @@ -136,7 +136,7 @@ class MediaNotificationTest { } } - @Ignore("Flaky test, temp disabled: https://github.com/mozilla-mobile/fenix/issues/12764") + @Ignore("Flaky test, temp disabled: https://github.com/mozilla-mobile/fenix/issues/12645") @Test fun mediaSystemNotificationInPrivateModeTest() { val audioTestPage = TestAssetHelper.getAudioPageAsset(mockWebServer) @@ -160,7 +160,7 @@ class MediaNotificationTest { verifyMediaIsPaused() }.openTabDrawer { closeTab() - }.openHomeScreen { } + } mDevice.openNotification() diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/NavigationToolbarTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/NavigationToolbarTest.kt index 41b623d73..15f76597c 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/NavigationToolbarTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/NavigationToolbarTest.kt @@ -58,8 +58,10 @@ class NavigationToolbarTest { mDevice.waitForIdle() }.openNavigationToolbar { }.enterURLAndEnterToBrowser(nextWebPage.url) { + mDevice.waitForIdle() verifyUrl(nextWebPage.url.toString()) mDevice.pressBack() + mDevice.waitForIdle() verifyUrl(defaultWebPage.url.toString()) } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/TabbedBrowsingTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/TabbedBrowsingTest.kt index 9879ace57..3470db229 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/TabbedBrowsingTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/TabbedBrowsingTest.kt @@ -9,6 +9,7 @@ import androidx.test.uiautomator.UiDevice import okhttp3.mockwebserver.MockWebServer import org.junit.After import org.junit.Before +import org.junit.BeforeClass import org.junit.Ignore import org.junit.Rule import org.junit.Test @@ -53,6 +54,16 @@ class TabbedBrowsingTest { } } + // changing the device preference for Touch and Hold delay, to avoid long-clicks instead of a single-click + companion object { + @BeforeClass + @JvmStatic + fun setDevicePreference() { + val mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()) + mDevice.executeShellCommand("settings put secure long_press_timeout 3000") + } + } + @After fun tearDown() { mockWebServer.shutdown() @@ -104,7 +115,6 @@ class TabbedBrowsingTest { } } - @Ignore("Flaky test, temp disabled: https://github.com/mozilla-mobile/fenix/issues/12752") @Test fun closeAllTabsTest() { val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) @@ -119,7 +129,6 @@ class TabbedBrowsingTest { verifySaveCollection() }.closeAllTabs { verifyNoTabsOpened() - }.openHomeScreen { } // Repeat for Private Tabs @@ -135,8 +144,6 @@ class TabbedBrowsingTest { verifyCloseAllTabsButton() }.closeAllTabs { verifyNoTabsOpened() - }.openHomeScreen { - verifyPrivateSessionMessage() } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HomeScreenRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HomeScreenRobot.kt index 7299729ff..f1e24be71 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HomeScreenRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HomeScreenRobot.kt @@ -63,6 +63,7 @@ class HomeScreenRobot { fun verifyHomeToolbar() = assertHomeToolbar() fun verifyHomeComponent() = assertHomeComponent() fun verifyDefaultSearchEngine(searchEngine: String) = verifySearchEngineIcon(searchEngine) + fun verifyNoTabsOpened() = assertNoTabsOpened() // First Run elements fun verifyWelcomeHeader() = assertWelcomeHeader() @@ -529,6 +530,8 @@ private fun assertHomeComponent() = onView(ViewMatchers.withResourceName("sessionControlRecyclerView")) .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) +private fun assertNoTabsOpened() = onView(withId(R.id.counter_text)).check(matches(withText("0"))) + private fun threeDotButton() = onView(allOf(withId(R.id.menuButton))) private fun verifySearchEngineIcon(searchEngineIcon: Bitmap, searchEngineName: String) { diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/ThreeDotMenuMainRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/ThreeDotMenuMainRobot.kt index c1a207379..51665856b 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/ThreeDotMenuMainRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/ThreeDotMenuMainRobot.kt @@ -253,12 +253,11 @@ class ThreeDotMenuMainRobot { return BrowserRobot.Transition() } - fun closeAllTabs(interact: TabDrawerRobot.() -> Unit): TabDrawerRobot.Transition { -// mDevice.waitNotNull(Until.findObject(By.text("Close all tabs")), waitingTime) + fun closeAllTabs(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition { closeAllTabsButton().click() - TabDrawerRobot().interact() - return TabDrawerRobot.Transition() + HomeScreenRobot().interact() + return HomeScreenRobot.Transition() } fun openFindInPage(interact: FindInPageRobot.() -> Unit): FindInPageRobot.Transition {