From e0cc64a13a953da11efb2b4604d339f39dcdc8bf Mon Sep 17 00:00:00 2001 From: AndiAJ Date: Thu, 24 Nov 2022 12:33:35 +0200 Subject: [PATCH] For #26286 new selectStoriesByTopicItemTest UI test --- .../org/mozilla/fenix/ui/HomeScreenTest.kt | 17 ++++++++++++++++ .../fenix/ui/robots/HomeScreenRobot.kt | 20 +++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/HomeScreenTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/HomeScreenTest.kt index 5e711c87c..b013b0bf1 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/HomeScreenTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/HomeScreenTest.kt @@ -277,6 +277,23 @@ class HomeScreenTest { } } + @Test + fun selectStoriesByTopicItemTest() { + activityTestRule.activityRule.applySettingsExceptions { + it.isRecentTabsFeatureEnabled = false + it.isRecentlyVisitedFeatureEnabled = false + } + + homeScreen { + }.dismissOnboarding() + + homeScreen { + verifyStoriesByTopicItemState(activityTestRule, false, 1) + clickStoriesByTopicItem(activityTestRule, 1) + verifyStoriesByTopicItemState(activityTestRule, true, 1) + } + } + @Test fun verifyCustomizeHomepageTest() { val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) 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 05db7128e..ec9d7dd64 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 @@ -10,6 +10,8 @@ import android.graphics.Bitmap import android.widget.EditText import androidx.compose.ui.test.assert import androidx.compose.ui.test.assertIsDisplayed +import androidx.compose.ui.test.assertIsNotSelected +import androidx.compose.ui.test.assertIsSelected import androidx.compose.ui.test.hasTestTag import androidx.compose.ui.test.hasText import androidx.compose.ui.test.junit4.ComposeTestRule @@ -333,6 +335,21 @@ class HomeScreenRobot { fun verifyStoriesByTopicItems() = assertTrue(mDevice.findObject(UiSelector().resourceId("pocket.categories")).childCount > 1) + fun verifyStoriesByTopicItemState(composeTestRule: ComposeTestRule, isSelected: Boolean, position: Int) { + homeScreenList().scrollIntoView(mDevice.findObject(UiSelector().resourceId("pocket.header"))) + + if (isSelected) { + composeTestRule.onNodeWithTag("pocket.categories").assertIsDisplayed() + storyByTopicItem(composeTestRule, position).assertIsSelected() + } else { + composeTestRule.onNodeWithTag("pocket.categories").assertIsDisplayed() + storyByTopicItem(composeTestRule, position).assertIsNotSelected() + } + } + + fun clickStoriesByTopicItem(composeTestRule: ComposeTestRule, position: Int) = + storyByTopicItem(composeTestRule, position).performClick() + fun verifyPoweredByPocket(rule: ComposeTestRule) { homeScreenList().scrollIntoView(mDevice.findObject(UiSelector().resourceId("pocket.header"))) rule.onNodeWithTag("pocket.header.title", true).assertIsDisplayed() @@ -1087,6 +1104,9 @@ private fun sponsoredShortcut(sponsoredShortcutTitle: String) = .textContains(sponsoredShortcutTitle), ) +private fun storyByTopicItem(composeTestRule: ComposeTestRule, position: Int) = + composeTestRule.onNodeWithTag("pocket.categories").onChildAt(position - 1) + val deleteFromHistory = onView( allOf(