tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 53da81d4b770bd70e5780b1d4efdeb8f4ebf7295
parent 4d75a9862ba8e07531fc7170d74da9b98234a8b6
Author: Titouan Thibaud <tthibaud@mozilla.com>
Date:   Mon,  3 Nov 2025 15:48:50 +0000

Bug 1994182 - Set Open in App settings from tests instead of navigating to the menu. r=android-reviewers,Roger

This makes the tests more reliable, easier to write and a lot faster.

Differential Revision: https://phabricator.services.mozilla.com/D268541

Diffstat:
Mmobile/android/fenix/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsAdvancedTest.kt | 151+++++++++++++++----------------------------------------------------------------
1 file changed, 28 insertions(+), 123 deletions(-)

diff --git a/mobile/android/fenix/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsAdvancedTest.kt b/mobile/android/fenix/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsAdvancedTest.kt @@ -5,6 +5,7 @@ package org.mozilla.fenix.ui import androidx.core.net.toUri +import org.junit.Before import org.junit.Rule import org.junit.Test import org.mozilla.fenix.customannotations.SmokeTest @@ -13,6 +14,7 @@ import org.mozilla.fenix.helpers.AppAndSystemHelper.assertYoutubeAppOpens import org.mozilla.fenix.helpers.HomeActivityIntentTestRule import org.mozilla.fenix.helpers.MatcherHelper.itemContainingText import org.mozilla.fenix.helpers.MatcherHelper.itemWithResIdAndText +import org.mozilla.fenix.helpers.OpenLinksInApp import org.mozilla.fenix.helpers.TestAssetHelper import org.mozilla.fenix.helpers.TestHelper import org.mozilla.fenix.helpers.TestHelper.exitMenu @@ -40,6 +42,14 @@ class SettingsAdvancedTest : TestSetup() { @get:Rule val memoryLeaksRule = DetectMemoryLeaksRule() + lateinit var externalLinksPage: TestAssetHelper.TestAsset + + @Before + override fun setUp() { + super.setUp() + externalLinksPage = TestAssetHelper.getExternalLinksAsset(mockWebServer) + } + // TestRail link: https://mozilla.testrail.io/index.php?/cases/view/2092699 // Walks through settings menu and sub-menus to ensure all items are present @Test @@ -68,15 +78,8 @@ class SettingsAdvancedTest : TestSetup() { @SmokeTest @Test fun askBeforeOpeningOpenLinkInAppTest() { - val externalLinksPage = TestAssetHelper.getExternalLinksAsset(mockWebServer) - - homeScreen { - }.openThreeDotMenu { - }.openSettings { - verifyOpenLinksInAppsButton() - verifySettingsOptionSummary("Open links in apps", "Ask before opening") - }.openOpenLinksInAppsMenu { - verifyOpenLinksInAppsView("Ask before opening") + activityIntentTestRule.applySettingsExceptions { + it.openLinksInExternalApp = OpenLinksInApp.ASK } exitMenu() @@ -92,22 +95,10 @@ class SettingsAdvancedTest : TestSetup() { // Assumes Youtube is installed and enabled @Test fun privateBrowsingAskBeforeOpeningOpenLinkInAppTest() { - val externalLinksPage = TestAssetHelper.getExternalLinksAsset(mockWebServer) - - homeScreen { - }.togglePrivateBrowsingMode() - - homeScreen { - }.openThreeDotMenu { - }.openSettings { - verifyOpenLinksInAppsButton() - verifySettingsOptionSummary("Open links in apps", "Ask before opening") - }.openOpenLinksInAppsMenu { - verifyPrivateOpenLinksInAppsView("Ask before opening") + activityIntentTestRule.applySettingsExceptions { + it.openLinksInExternalApp = OpenLinksInApp.ASK } - exitMenu() - navigationToolbar { }.enterURLAndEnterToBrowser(externalLinksPage.url) { clickPageObject(playStoreLink) @@ -120,22 +111,10 @@ class SettingsAdvancedTest : TestSetup() { @SmokeTest @Test fun askBeforeOpeningLinkInAppCancelTest() { - val externalLinksPage = TestAssetHelper.getExternalLinksAsset(mockWebServer) - - homeScreen { - }.openThreeDotMenu { - }.openSettings { - verifyOpenLinksInAppsButton() - verifySettingsOptionSummary("Open links in apps", "Ask before opening") - }.openOpenLinksInAppsMenu { - verifyOpenLinksInAppsView("Ask before opening") - verifySelectedOpenLinksInAppOption("Ask before opening") - }.goBack { - verifySettingsOptionSummary("Open links in apps", "Ask before opening") + activityIntentTestRule.applySettingsExceptions { + it.openLinksInExternalApp = OpenLinksInApp.ASK } - exitMenu() - navigationToolbar { }.enterURLAndEnterToBrowser(externalLinksPage.url) { clickPageObject(youTubeSchemaLink) @@ -150,22 +129,10 @@ class SettingsAdvancedTest : TestSetup() { @SmokeTest @Test fun askBeforeOpeningLinkInAppOpenTest() { - val externalLinksPage = TestAssetHelper.getExternalLinksAsset(mockWebServer) - - homeScreen { - }.openThreeDotMenu { - }.openSettings { - verifyOpenLinksInAppsButton() - verifySettingsOptionSummary("Open links in apps", "Ask before opening") - }.openOpenLinksInAppsMenu { - verifyOpenLinksInAppsView("Ask before opening") - verifySelectedOpenLinksInAppOption("Ask before opening") - }.goBack { - verifySettingsOptionSummary("Open links in apps", "Ask before opening") + activityIntentTestRule.applySettingsExceptions { + it.openLinksInExternalApp = OpenLinksInApp.ASK } - exitMenu() - navigationToolbar { }.enterURLAndEnterToBrowser(externalLinksPage.url) { clickPageObject(youTubeSchemaLink) @@ -182,25 +149,13 @@ class SettingsAdvancedTest : TestSetup() { @Test fun privateBrowsingAskBeforeOpeningLinkInAppCancelTest() { TestHelper.appContext.settings().shouldShowCookieBannersCFR = false - val externalLinksPage = TestAssetHelper.getExternalLinksAsset(mockWebServer) + activityIntentTestRule.applySettingsExceptions { + it.openLinksInExternalApp = OpenLinksInApp.ASK + } homeScreen { }.togglePrivateBrowsingMode() - homeScreen { - }.openThreeDotMenu { - }.openSettings { - verifyOpenLinksInAppsButton() - verifySettingsOptionSummary("Open links in apps", "Ask before opening") - }.openOpenLinksInAppsMenu { - verifyPrivateOpenLinksInAppsView("Ask before opening") - verifySelectedOpenLinksInAppOption("Ask before opening") - }.goBack { - verifySettingsOptionSummary("Open links in apps", "Ask before opening") - } - - exitMenu() - navigationToolbar { }.enterURLAndEnterToBrowser(externalLinksPage.url) { clickPageObject(youTubeSchemaLink) @@ -218,23 +173,13 @@ class SettingsAdvancedTest : TestSetup() { // Assumes Youtube is installed and enabled @Test fun privateBrowsingAskBeforeOpeningLinkInAppOpenTest() { - val externalLinksPage = TestAssetHelper.getExternalLinksAsset(mockWebServer) + activityIntentTestRule.applySettingsExceptions { + it.openLinksInExternalApp = OpenLinksInApp.ASK + } homeScreen { }.togglePrivateBrowsingMode() - homeScreen { - }.openThreeDotMenu { - }.openSettings { - verifyOpenLinksInAppsButton() - verifySettingsOptionSummary("Open links in apps", "Ask before opening") - }.openOpenLinksInAppsMenu { - verifyPrivateOpenLinksInAppsView("Ask before opening") - verifySelectedOpenLinksInAppOption("Ask before opening") - }.goBack { - verifySettingsOptionSummary("Open links in apps", "Ask before opening") - } - exitMenu() navigationToolbar { @@ -256,23 +201,10 @@ class SettingsAdvancedTest : TestSetup() { // Assumes Youtube is installed and enabled @Test fun alwaysOpenLinkInAppTest() { - val externalLinksPage = TestAssetHelper.getExternalLinksAsset(mockWebServer) - - homeScreen { - }.openThreeDotMenu { - }.openSettings { - verifyOpenLinksInAppsButton() - verifySettingsOptionSummary("Open links in apps", "Ask before opening") - }.openOpenLinksInAppsMenu { - verifyOpenLinksInAppsView("Ask before opening") - clickOpenLinkInAppOption("Always") - verifySelectedOpenLinksInAppOption("Always") - }.goBack { - verifySettingsOptionSummary("Open links in apps", "Always") + activityIntentTestRule.applySettingsExceptions { + it.openLinksInExternalApp = OpenLinksInApp.ALWAYS } - exitMenu() - navigationToolbar { }.enterURLAndEnterToBrowser(externalLinksPage.url) { clickPageObject(youTubeSchemaLink) @@ -286,22 +218,9 @@ class SettingsAdvancedTest : TestSetup() { fun dismissOpenLinksInAppCFRTest() { activityIntentTestRule.applySettingsExceptions { it.isOpenInAppBannerEnabled = true + it.openLinksInExternalApp = OpenLinksInApp.NEVER } - homeScreen { - }.openThreeDotMenu { - }.openSettings { - verifyOpenLinksInAppsButton() - verifySettingsOptionSummary("Open links in apps", "Ask before opening") - }.openOpenLinksInAppsMenu { - verifyOpenLinksInAppsView("Ask before opening") - clickOpenLinkInAppOption("Never") - verifySelectedOpenLinksInAppOption("Never") - }.goBack { - verifySettingsOptionSummary("Open links in apps", "Never") - } - - exitMenu() navigationToolbar { }.enterURLAndEnterToBrowser("https://m.youtube.com/".toUri()) { verifyPageContent("youtube") @@ -316,23 +235,9 @@ class SettingsAdvancedTest : TestSetup() { fun goToSettingsFromOpenLinksInAppCFRTest() { activityIntentTestRule.applySettingsExceptions { it.isOpenInAppBannerEnabled = true + it.openLinksInExternalApp = OpenLinksInApp.NEVER } - homeScreen { - }.openThreeDotMenu { - }.openSettings { - verifyOpenLinksInAppsButton() - verifySettingsOptionSummary("Open links in apps", "Ask before opening") - }.openOpenLinksInAppsMenu { - verifyOpenLinksInAppsView("Ask before opening") - clickOpenLinkInAppOption("Never") - verifySelectedOpenLinksInAppOption("Never") - }.goBack { - verifySettingsOptionSummary("Open links in apps", "Never") - } - - exitMenu() - navigationToolbar { }.enterURLAndEnterToBrowser("https://m.youtube.com/".toUri()) { verifyPageContent("youtube")