44
55package org.mozilla.reference.browser.ui
66
7+ import android.content.ComponentName
78import androidx.test.core.app.ActivityScenario
9+ import androidx.test.platform.app.InstrumentationRegistry
810import mockwebserver3.MockWebServer
911import org.junit.After
1012import org.junit.Before
@@ -28,6 +30,19 @@ class CustomTabsTest {
2830 @JvmField
2931 val retryTestRule = RetryTestRule (3 )
3032
33+ // ActivityScenario.launch resolves intents via normal Android routing, so an ACTION_VIEW
34+ // intent with an HTTP URL would resolve to the browser rather than IntentReceiverActivity.
35+ // Setting the component explicitly forces it to launch within the test process.
36+ private fun launchCustomTab (pageUrl : String ) =
37+ ActivityScenario .launch<IntentReceiverActivity >(
38+ createCustomTabIntent(pageUrl).apply {
39+ component = ComponentName (
40+ InstrumentationRegistry .getInstrumentation().targetContext,
41+ IntentReceiverActivity ::class .java,
42+ )
43+ },
44+ )
45+
3146 @Before
3247 fun setUp () {
3348 mockWebServer = MockWebServer ().apply {
@@ -45,10 +60,7 @@ class CustomTabsTest {
4560 fun openCustomTabTest () {
4661 val customTabPage = TestAssetHelper .getGenericAsset(mockWebServer, 1 )
4762
48- ActivityScenario
49- .launch<IntentReceiverActivity >(
50- createCustomTabIntent(customTabPage.url.toString()),
51- ).use {
63+ launchCustomTab(customTabPage.url.toString()).use {
5264 customTabScreen {
5365 verifyCloseButton()
5466 verifyTrackingProtectionIcon()
@@ -65,10 +77,7 @@ class CustomTabsTest {
6577 fun verifyCustomTabMenuItemsTest () {
6678 val customTabPage = TestAssetHelper .getGenericAsset(mockWebServer, 1 )
6779
68- ActivityScenario
69- .launch<IntentReceiverActivity >(
70- createCustomTabIntent(customTabPage.url.toString()),
71- ).use {
80+ launchCustomTab(customTabPage.url.toString()).use {
7281 customTabScreen {
7382 }.openMainMenu {
7483 verifyForwardButton()
@@ -87,10 +96,7 @@ class CustomTabsTest {
8796 val pageLinks = TestAssetHelper .getGenericAsset(mockWebServer, 4 )
8897 val genericURL = TestAssetHelper .getGenericAsset(mockWebServer, 1 )
8998
90- ActivityScenario
91- .launch<IntentReceiverActivity >(
92- createCustomTabIntent(pageLinks.url.toString()),
93- ).use {
99+ launchCustomTab(pageLinks.url.toString()).use {
94100 customTabScreen {
95101 clickGenericLink(" Link 1" )
96102 verifyPageTitle(genericURL.title)
@@ -110,10 +116,7 @@ class CustomTabsTest {
110116 fun customTabShareTest () {
111117 val customTabPage = TestAssetHelper .getGenericAsset(mockWebServer, 1 )
112118
113- ActivityScenario
114- .launch<IntentReceiverActivity >(
115- createCustomTabIntent(customTabPage.url.toString()),
116- ).use {
119+ launchCustomTab(customTabPage.url.toString()).use {
117120 customTabScreen {
118121 }.openMainMenu {
119122 }.clickShareButton {
@@ -126,10 +129,7 @@ class CustomTabsTest {
126129 fun customTabRequestDesktopSiteTest () {
127130 val customTabPage = TestAssetHelper .getGenericAsset(mockWebServer, 1 )
128131
129- ActivityScenario
130- .launch<IntentReceiverActivity >(
131- createCustomTabIntent(customTabPage.url.toString()),
132- ).use {
132+ launchCustomTab(customTabPage.url.toString()).use {
133133 customTabScreen {
134134 }.openMainMenu {
135135 switchRequestDesktopSiteToggle()
@@ -146,10 +146,7 @@ class CustomTabsTest {
146146 fun customTabOpenInBrowserTest () {
147147 val customTabPage = TestAssetHelper .getGenericAsset(mockWebServer, 1 )
148148
149- ActivityScenario
150- .launch<IntentReceiverActivity >(
151- createCustomTabIntent(customTabPage.url.toString()),
152- ).use {
149+ launchCustomTab(customTabPage.url.toString()).use {
153150 customTabScreen {
154151 }.openMainMenu {
155152 }.clickOpenInBrowserButton {
0 commit comments