tor-browser

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

commit f76b1c0ac8b9fa18e157d69abba07f511473c82c
parent f686a3befe627131ab12254c1f77004e8c4d3a88
Author: John Oberhauser <j.git-global@obez.io>
Date:   Mon, 10 Nov 2025 16:05:16 +0000

Bug 1996107: Enabling adjust sooner for vivo PAI distributions r=android-reviewers,twhite

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

Diffstat:
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/AdjustMetricsService.kt | 9+++++++++
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/MarketingAttributionService.kt | 26++++++++++++++++++++++----
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/distributions/DistributionIdManager.kt | 61++++++++++++++++++++++++++++++++++++++++++-------------------
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/onboarding/MarketingPageRemovalSupport.kt | 7+------
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/onboarding/OnboardingFragment.kt | 1-
Mmobile/android/fenix/app/src/test/java/org/mozilla/fenix/components/metrics/MarketingAttributionServiceTest.kt | 96+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------
Mmobile/android/fenix/app/src/test/java/org/mozilla/fenix/distributions/DistributionIdManagerTest.kt | 71++++++++++++++++++++++++++++++++++++++++++++++-------------------------
Mmobile/android/fenix/app/src/test/java/org/mozilla/fenix/onboarding/MarketingPageRemovalManagerTest.kt | 55++-----------------------------------------------------
8 files changed, 204 insertions(+), 122 deletions(-)

diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/AdjustMetricsService.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/AdjustMetricsService.kt @@ -35,6 +35,7 @@ class AdjustMetricsService( override fun start() { val settings = application.components.settings + if ((BuildConfig.ADJUST_TOKEN.isNullOrBlank())) { logger.info("No adjust token defined") @@ -60,6 +61,14 @@ class AdjustMetricsService( ) config.enablePreinstallTracking() + val distributionIdManager = application.components.distributionIdManager + + // If we skipped the marketing consent screen, enable COPPA compliance to prevent + // personal identifiers from being shared with Adjust. + if (distributionIdManager.shouldSkipMarketingConsentScreen()) { + config.enableCoppaCompliance() + } + val timerId = AdjustAttribution.adjustAttributionTime.start() config.setOnAttributionChangedListener { AdjustAttribution.adjustAttributionTime.stopAndAccumulate(timerId) diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/MarketingAttributionService.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/metrics/MarketingAttributionService.kt @@ -10,6 +10,7 @@ import androidx.annotation.VisibleForTesting import com.android.installreferrer.api.InstallReferrerClient import com.android.installreferrer.api.InstallReferrerStateListener import mozilla.components.support.base.log.logger.Logger +import org.mozilla.fenix.distributions.DistributionIdManager import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.settings @@ -51,16 +52,26 @@ class MarketingAttributionService(private val context: Context) { null } + val distributionIdManager = context.components.distributionIdManager + if (!installReferrerResponse.isNullOrBlank()) { response = installReferrerResponse val utmParams = UTMParams.parseUTMParameters(installReferrerResponse) - context.components.distributionIdManager - .updateDistributionIdFromUtmParams(utmParams) + distributionIdManager.updateDistributionIdFromUtmParams(utmParams) + + if (distributionIdManager.shouldSkipMarketingConsentScreen()) { + context.components.settings.isMarketingTelemetryEnabled = true + context.components.settings.hasMadeMarketingTelemetrySelection = true + context.components.analytics.metrics.start(MetricServiceType.Marketing) + } } context.settings().shouldShowMarketingOnboarding = - shouldShowMarketingOnboarding(installReferrerResponse) + shouldShowMarketingOnboarding( + installReferrerResponse, + distributionIdManager, + ) return } @@ -103,7 +114,14 @@ class MarketingAttributionService(private val context: Context) { var response: String? = null @VisibleForTesting - internal fun shouldShowMarketingOnboarding(installReferrerResponse: String?): Boolean { + internal fun shouldShowMarketingOnboarding( + installReferrerResponse: String?, + distributionIdManager: DistributionIdManager, + ): Boolean { + if (distributionIdManager.isPartnershipDistribution()) { + return !distributionIdManager.shouldSkipMarketingConsentScreen() + } + if (installReferrerResponse.isNullOrBlank()) { return false } diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/distributions/DistributionIdManager.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/distributions/DistributionIdManager.kt @@ -57,6 +57,8 @@ class DistributionIdManager( private val isDtUsaInstalled: () -> Boolean = { isDtUsaInstalled(context) }, ) { + private var distribution: Distribution? = null + /** * Gets the distribution Id that is used to specify which distribution deal this install * is associated with. @@ -64,7 +66,7 @@ class DistributionIdManager( * @return the distribution ID if one exists. */ fun getDistributionId(): String { - browserStoreProvider.getDistributionId()?.let { return it } + distribution?.let { return it.id } val provider = distributionProviderChecker.queryProvider() val providerLegacy = legacyDistributionProviderChecker.queryProvider() @@ -73,14 +75,14 @@ class DistributionIdManager( val savedId = distributionSettings.getDistributionId() - val distributionId = when { - savedId.isNotBlank() -> savedId - isProviderDigitalTurbine && isDtTelefonicaInstalled() -> Distribution.DT_001.id - isProviderDigitalTurbine && isDtUsaInstalled() -> Distribution.DT_002.id - isProviderDigitalTurbine -> Distribution.DT_003.id - isProviderAura(provider) -> Distribution.AURA_001.id - isDeviceVivo() && appPreinstalledOnVivoDevice() -> Distribution.VIVO_001.id - else -> Distribution.DEFAULT.id + val distribution = when { + savedId.isNotBlank() -> Distribution.fromId(savedId) + isProviderDigitalTurbine && isDtTelefonicaInstalled() -> Distribution.DT_001 + isProviderDigitalTurbine && isDtUsaInstalled() -> Distribution.DT_002 + isProviderDigitalTurbine -> Distribution.DT_003 + isProviderAura(provider) -> Distribution.AURA_001 + isDeviceVivo() && appPreinstalledOnVivoDevice() -> Distribution.VIVO_001 + else -> Distribution.DEFAULT } recordProviderCheckerEvents( @@ -89,10 +91,9 @@ class DistributionIdManager( distributionMetricsProvider = DefaultDistributionMetricsProvider(), ) - browserStoreProvider.updateDistributionId(distributionId) - distributionSettings.saveDistributionId(distributionId) + setDistribution(distribution) - return distributionId + return distribution.id } @VisibleForTesting @@ -132,19 +133,36 @@ class DistributionIdManager( fun updateDistributionIdFromUtmParams(utmParams: UTMParams) { when { utmParams.campaign.contains(VIVO_INDIA_UTM_CAMPAIGN) -> { - browserStoreProvider.updateDistributionId(Distribution.VIVO_002.id) - distributionSettings.saveDistributionId(Distribution.VIVO_002.id) - Metrics.distributionId.set(Distribution.VIVO_002.id) + setDistribution(Distribution.VIVO_001) + Metrics.distributionId.set(Distribution.VIVO_001.id) } utmParams.campaign.contains(Distribution.XIAOMI_001.id) -> { - browserStoreProvider.updateDistributionId(Distribution.XIAOMI_001.id) - distributionSettings.saveDistributionId(Distribution.XIAOMI_001.id) + setDistribution(Distribution.XIAOMI_001) Metrics.distributionId.set(Distribution.XIAOMI_001.id) } } } /** + * Check if we can skip the marketing consent screen during onboarding based on the distribution + * + * @return true if the marketing consent screen can be skipped during onboarding + */ + fun shouldSkipMarketingConsentScreen(): Boolean { + val id = Distribution.fromId(getDistributionId()) + + return when (id) { + Distribution.DEFAULT -> false + Distribution.VIVO_001 -> true + Distribution.DT_001 -> false + Distribution.DT_002 -> false + Distribution.DT_003 -> false + Distribution.AURA_001 -> false + Distribution.XIAOMI_001 -> false + } + } + + /** * Check if the distribution is part of a distribution deal * * @return true if the distribution is part of a distribution deal @@ -155,7 +173,6 @@ class DistributionIdManager( return when (id) { Distribution.DEFAULT -> false Distribution.VIVO_001 -> true - Distribution.VIVO_002 -> true Distribution.DT_001 -> true Distribution.DT_002 -> true Distribution.DT_003 -> true @@ -179,7 +196,6 @@ class DistributionIdManager( internal enum class Distribution(val id: String) { DEFAULT(id = "Mozilla"), VIVO_001(id = "vivo-001"), - VIVO_002(id = "vivo-002"), DT_001(id = "dt-001"), DT_002(id = "dt-002"), DT_003(id = "dt-003"), @@ -193,6 +209,13 @@ class DistributionIdManager( } } } + + @VisibleForTesting + internal fun setDistribution(distribution: Distribution) { + this.distribution = distribution + browserStoreProvider.updateDistributionId(distribution.id) + distributionSettings.saveDistributionId(distribution.id) + } } /** diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/onboarding/MarketingPageRemovalSupport.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/onboarding/MarketingPageRemovalSupport.kt @@ -17,7 +17,6 @@ import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import mozilla.components.support.base.feature.LifecycleAwareFeature -import org.mozilla.fenix.distributions.DistributionIdManager import org.mozilla.fenix.onboarding.view.OnboardingPageUiData import org.mozilla.fenix.perf.runBlockingIncrement import org.mozilla.fenix.settings.OnSharedPreferenceChangeListener @@ -29,7 +28,6 @@ import kotlin.coroutines.CoroutineContext * * @param prefKey the pref key identifier for the "should show marketing page" pref * @param pagesToDisplay the mutable list of onboarding pages we display - * @param distributionIdManager the distribution ID manager * @param settings settings class that holds shared preferences * @param ioContext the coroutine context for IO * @param lifecycleOwner the lifecycle owner @@ -37,7 +35,6 @@ import kotlin.coroutines.CoroutineContext class MarketingPageRemovalSupport( private val prefKey: String, private val pagesToDisplay: MutableList<OnboardingPageUiData>, - private val distributionIdManager: DistributionIdManager, private val settings: Settings, private val ioContext: CoroutineContext = Dispatchers.IO, private val lifecycleOwner: LifecycleOwner, @@ -49,8 +46,6 @@ class MarketingPageRemovalSupport( override fun start() { job = lifecycleOwner.lifecycleScope.launch(ioContext) { - val isPartnership = distributionIdManager.isPartnershipDistribution() - settings.preferences.flowScopedBooleanPreference( lifecycleOwner, prefKey, @@ -58,7 +53,7 @@ class MarketingPageRemovalSupport( ) .distinctUntilChanged() .collect { shouldShowMarketingOnboarding -> - if (!shouldShowMarketingOnboarding && !isPartnership) { + if (!shouldShowMarketingOnboarding) { pagesToDisplay.removeIfPageNotReached(currentPageIndex) } } diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/onboarding/OnboardingFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/onboarding/OnboardingFragment.kt @@ -162,7 +162,6 @@ class OnboardingFragment : Fragment() { feature = MarketingPageRemovalSupport( prefKey = requireContext().getString(R.string.pref_key_should_show_marketing_onboarding), pagesToDisplay = pagesToDisplay, - distributionIdManager = requireComponents.distributionIdManager, settings = requireContext().settings(), lifecycleOwner = viewLifecycleOwner, ), diff --git a/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/components/metrics/MarketingAttributionServiceTest.kt b/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/components/metrics/MarketingAttributionServiceTest.kt @@ -5,36 +5,104 @@ package org.mozilla.fenix.components.metrics import androidx.test.ext.junit.runners.AndroidJUnit4 +import mozilla.components.support.test.robolectric.testContext import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue import org.junit.Test import org.junit.runner.RunWith +import org.mozilla.fenix.distributions.DistributionBrowserStoreProvider +import org.mozilla.fenix.distributions.DistributionIdManager +import org.mozilla.fenix.distributions.DistributionProviderChecker +import org.mozilla.fenix.distributions.DistributionSettings @RunWith(AndroidJUnit4::class) internal class MarketingAttributionServiceTest { + + private var providerValue: String? = null + private var legacyProviderValue: String? = null + private var storedId: String? = null + private var savedId: String = "" + + private val testDistributionProviderChecker = object : DistributionProviderChecker { + override fun queryProvider(): String? = providerValue + } + + private val testLegacyDistributionProviderChecker = object : DistributionProviderChecker { + override fun queryProvider(): String? = legacyProviderValue + } + + private val testBrowserStoreProvider = object : DistributionBrowserStoreProvider { + override fun getDistributionId(): String? = storedId + + override fun updateDistributionId(id: String) { + storedId = id + } + } + + private val testDistributionSettings = object : DistributionSettings { + override fun getDistributionId(): String = savedId + + override fun saveDistributionId(id: String) { + savedId = id + } + } + + val distributionIdManager = DistributionIdManager( + testContext, + testBrowserStoreProvider, + distributionProviderChecker = testDistributionProviderChecker, + legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, + distributionSettings = testDistributionSettings, + appPreinstalledOnVivoDevice = { true }, + ) + @Test fun `WHEN installReferrerResponse is empty or null THEN we should not show marketing onboarding`() { - assertFalse(MarketingAttributionService.shouldShowMarketingOnboarding(null)) - assertFalse(MarketingAttributionService.shouldShowMarketingOnboarding("")) - assertFalse(MarketingAttributionService.shouldShowMarketingOnboarding(" ")) + assertFalse(MarketingAttributionService.shouldShowMarketingOnboarding(null, distributionIdManager)) + assertFalse(MarketingAttributionService.shouldShowMarketingOnboarding("", distributionIdManager)) + assertFalse(MarketingAttributionService.shouldShowMarketingOnboarding(" ", distributionIdManager)) } @Test fun `WHEN installReferrerResponse is in the marketing prefixes THEN we should show marketing onboarding`() { - assertTrue(MarketingAttributionService.shouldShowMarketingOnboarding("gclid=")) - assertTrue(MarketingAttributionService.shouldShowMarketingOnboarding("gclid=12345")) - assertTrue(MarketingAttributionService.shouldShowMarketingOnboarding("adjust_reftag=")) - assertTrue(MarketingAttributionService.shouldShowMarketingOnboarding("adjust_reftag=test")) + assertTrue(MarketingAttributionService.shouldShowMarketingOnboarding("gclid=", distributionIdManager)) + assertTrue(MarketingAttributionService.shouldShowMarketingOnboarding("gclid=12345", distributionIdManager)) + assertTrue(MarketingAttributionService.shouldShowMarketingOnboarding("adjust_reftag=", distributionIdManager)) + assertTrue(MarketingAttributionService.shouldShowMarketingOnboarding("adjust_reftag=test", distributionIdManager)) } @Test fun `WHEN installReferrerResponse is not in the marketing prefixes THEN we should show marketing onboarding`() { - assertFalse(MarketingAttributionService.shouldShowMarketingOnboarding(" gclid=12345")) - assertFalse(MarketingAttributionService.shouldShowMarketingOnboarding("utm_source=google-play&utm_medium=organic")) - assertFalse(MarketingAttributionService.shouldShowMarketingOnboarding("utm_source=(not%20set)&utm_medium=(not%20set)")) - assertFalse(MarketingAttributionService.shouldShowMarketingOnboarding("utm_source=eea-browser-choice&utm_medium=preload")) - assertFalse(MarketingAttributionService.shouldShowMarketingOnboarding("gclida=")) - assertFalse(MarketingAttributionService.shouldShowMarketingOnboarding("adjust_reftag_test")) - assertFalse(MarketingAttributionService.shouldShowMarketingOnboarding("test")) + assertFalse(MarketingAttributionService.shouldShowMarketingOnboarding(" gclid=12345", distributionIdManager)) + assertFalse(MarketingAttributionService.shouldShowMarketingOnboarding("utm_source=google-play&utm_medium=organic", distributionIdManager)) + assertFalse(MarketingAttributionService.shouldShowMarketingOnboarding("utm_source=(not%20set)&utm_medium=(not%20set)", distributionIdManager)) + assertFalse(MarketingAttributionService.shouldShowMarketingOnboarding("utm_source=eea-browser-choice&utm_medium=preload", distributionIdManager)) + assertFalse(MarketingAttributionService.shouldShowMarketingOnboarding("gclida=", distributionIdManager)) + assertFalse(MarketingAttributionService.shouldShowMarketingOnboarding("adjust_reftag_test", distributionIdManager)) + assertFalse(MarketingAttributionService.shouldShowMarketingOnboarding("test", distributionIdManager)) + } + + @Test + fun `GIVEN a partnership distribution WHEN we should skip the marketing screen THEN we skip it`() { + distributionIdManager.setDistribution(DistributionIdManager.Distribution.VIVO_001) + assertFalse(MarketingAttributionService.shouldShowMarketingOnboarding(null, distributionIdManager)) + } + + @Test + fun `GIVEN a partnership distribution WHEN we should not skip the marketing screen THEN we do not skip it`() { + distributionIdManager.setDistribution(DistributionIdManager.Distribution.DT_001) + assertTrue(MarketingAttributionService.shouldShowMarketingOnboarding(null, distributionIdManager)) + + distributionIdManager.setDistribution(DistributionIdManager.Distribution.DT_002) + assertTrue(MarketingAttributionService.shouldShowMarketingOnboarding(null, distributionIdManager)) + + distributionIdManager.setDistribution(DistributionIdManager.Distribution.DT_003) + assertTrue(MarketingAttributionService.shouldShowMarketingOnboarding(null, distributionIdManager)) + + distributionIdManager.setDistribution(DistributionIdManager.Distribution.AURA_001) + assertTrue(MarketingAttributionService.shouldShowMarketingOnboarding(null, distributionIdManager)) + + distributionIdManager.setDistribution(DistributionIdManager.Distribution.XIAOMI_001) + assertTrue(MarketingAttributionService.shouldShowMarketingOnboarding(null, distributionIdManager)) } } diff --git a/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/distributions/DistributionIdManagerTest.kt b/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/distributions/DistributionIdManagerTest.kt @@ -128,23 +128,6 @@ class DistributionIdManagerTest { } @Test - fun `WHEN the browser stores state already has a distribution Id assigned THEN that ID gets returned`() { - val subject = DistributionIdManager( - testContext, - testBrowserStoreProvider, - distributionProviderChecker = testDistributionProviderChecker, - legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, - distributionSettings = testDistributionSettings, - ) - - storedId = "testId" - - val distributionId = subject.getDistributionId() - - assertEquals("testId", distributionId) - } - - @Test fun `WHEN the provider is digital_tubrine AND the DT app is installed THEN the proper ID is returned`() { val subject = DistributionIdManager( testContext, @@ -239,23 +222,61 @@ class DistributionIdManagerTest { distributionSettings = testDistributionSettings, ) - testBrowserStoreProvider.updateDistributionId(DistributionIdManager.Distribution.VIVO_001.id) + subject.setDistribution(DistributionIdManager.Distribution.DEFAULT) + assertEquals(false, subject.isPartnershipDistribution()) + + subject.setDistribution(DistributionIdManager.Distribution.VIVO_001) + assertEquals(true, subject.isPartnershipDistribution()) + + subject.setDistribution(DistributionIdManager.Distribution.DT_001) assertEquals(true, subject.isPartnershipDistribution()) - testBrowserStoreProvider.updateDistributionId(DistributionIdManager.Distribution.DT_001.id) + subject.setDistribution(DistributionIdManager.Distribution.DT_002) assertEquals(true, subject.isPartnershipDistribution()) - testBrowserStoreProvider.updateDistributionId(DistributionIdManager.Distribution.DT_002.id) + subject.setDistribution(DistributionIdManager.Distribution.DT_003) assertEquals(true, subject.isPartnershipDistribution()) - testBrowserStoreProvider.updateDistributionId(DistributionIdManager.Distribution.AURA_001.id) + subject.setDistribution(DistributionIdManager.Distribution.AURA_001) assertEquals(true, subject.isPartnershipDistribution()) - testBrowserStoreProvider.updateDistributionId(DistributionIdManager.Distribution.XIAOMI_001.id) + subject.setDistribution(DistributionIdManager.Distribution.XIAOMI_001) assertEquals(true, subject.isPartnershipDistribution()) } @Test + fun `WHEN the distribution is vivo THEN the marketing screen should be skipped`() { + val subject = DistributionIdManager( + testContext, + testBrowserStoreProvider, + distributionProviderChecker = testDistributionProviderChecker, + legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, + distributionSettings = testDistributionSettings, + ) + + subject.setDistribution(DistributionIdManager.Distribution.DEFAULT) + assertEquals(false, subject.shouldSkipMarketingConsentScreen()) + + subject.setDistribution(DistributionIdManager.Distribution.VIVO_001) + assertEquals(true, subject.shouldSkipMarketingConsentScreen()) + + subject.setDistribution(DistributionIdManager.Distribution.DT_001) + assertEquals(false, subject.shouldSkipMarketingConsentScreen()) + + subject.setDistribution(DistributionIdManager.Distribution.DT_002) + assertEquals(false, subject.shouldSkipMarketingConsentScreen()) + + subject.setDistribution(DistributionIdManager.Distribution.DT_003) + assertEquals(false, subject.shouldSkipMarketingConsentScreen()) + + subject.setDistribution(DistributionIdManager.Distribution.AURA_001) + assertEquals(false, subject.shouldSkipMarketingConsentScreen()) + + subject.setDistribution(DistributionIdManager.Distribution.XIAOMI_001) + assertEquals(false, subject.shouldSkipMarketingConsentScreen()) + } + + @Test fun `WHEN the provider is aura THEN the proper distribution ID is returned`() { val subject = DistributionIdManager( testContext, @@ -632,7 +653,7 @@ class DistributionIdManagerTest { val distributionId = subject.getDistributionId() - assertEquals("vivo-002", distributionId) + assertEquals("vivo-001", distributionId) } @Test @@ -695,11 +716,11 @@ class DistributionIdManagerTest { distributionSettings = testDistributionSettings, ) - testDistributionSettings.saveDistributionId("dist") + testDistributionSettings.saveDistributionId("vivo-001") val distributionId = subject.getDistributionId() - assertEquals("dist", distributionId) + assertEquals("vivo-001", distributionId) } @Test diff --git a/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/onboarding/MarketingPageRemovalManagerTest.kt b/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/onboarding/MarketingPageRemovalManagerTest.kt @@ -24,7 +24,6 @@ import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith import org.mozilla.fenix.R -import org.mozilla.fenix.distributions.DistributionIdManager import org.mozilla.fenix.helpers.lifecycle.TestLifecycleOwner import org.mozilla.fenix.onboarding.view.OnboardingPageUiData import org.mozilla.fenix.utils.Settings @@ -37,7 +36,6 @@ class MarketingPageRemovalManagerTest { private lateinit var pages: MutableList<OnboardingPageUiData> private lateinit var settings: Settings private lateinit var mockedLifecycleOwner: TestLifecycleOwner - private lateinit var distributionIdManager: DistributionIdManager private lateinit var prefKey: String @Before @@ -68,39 +66,14 @@ class MarketingPageRemovalManagerTest { } settings = Settings(testContext) mockedLifecycleOwner = TestLifecycleOwner(Lifecycle.State.CREATED) - distributionIdManager = mockk(relaxed = true) prefKey = testContext.getString(R.string.pref_key_should_show_marketing_onboarding) } @Test - fun `we should show marketing AND there is not a partnership`() = runTest { - every { distributionIdManager.isPartnershipDistribution() } returns false - - val removePage = MarketingPageRemovalSupport( - prefKey = prefKey, - pagesToDisplay = pages, - distributionIdManager = distributionIdManager, - settings = settings, - ioContext = testScheduler, - lifecycleOwner = mockedLifecycleOwner, - ) - settings.shouldShowMarketingOnboarding = true - - removePage.start() - - testScheduler.advanceUntilIdle() - - assertTrue(pages.size == 2) - } - - @Test - fun `we should show marketing AND there is a partnership`() = runTest { - every { distributionIdManager.isPartnershipDistribution() } returns true - + fun `we should show marketing`() = runTest { val removePage = MarketingPageRemovalSupport( prefKey = prefKey, pagesToDisplay = pages, - distributionIdManager = distributionIdManager, settings = settings, ioContext = testScheduler, lifecycleOwner = mockedLifecycleOwner, @@ -115,34 +88,10 @@ class MarketingPageRemovalManagerTest { } @Test - fun `we should not show marketing AND there is a partnership`() = runTest { - every { distributionIdManager.isPartnershipDistribution() } returns true - - val removePage = MarketingPageRemovalSupport( - prefKey = prefKey, - pagesToDisplay = pages, - distributionIdManager = distributionIdManager, - settings = settings, - ioContext = testScheduler, - lifecycleOwner = mockedLifecycleOwner, - ) - settings.shouldShowMarketingOnboarding = false - - removePage.start() - - testScheduler.advanceUntilIdle() - - assertTrue(pages.size == 2) - } - - @Test - fun `we should not show marketing AND there is not a partnership`() = runTest { - every { distributionIdManager.isPartnershipDistribution() } returns false - + fun `we should not show marketing`() = runTest { val removePage = MarketingPageRemovalSupport( prefKey = prefKey, pagesToDisplay = pages, - distributionIdManager = distributionIdManager, settings = settings, ioContext = testScheduler, lifecycleOwner = mockedLifecycleOwner,