tor-browser

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

commit 9540e9cc9d782012c725c6ca2ff97315cd5fbd32
parent 92a32420b83fe2580f2b9d9a3445b465e4761703
Author: John Oberhauser <j.git-global@obez.io>
Date:   Mon, 17 Nov 2025 18:31:29 +0000

Bug 1999009: Small refactor to pass in the package manager to the distribution ID manager instead of context r=android-reviewers,gmalekpour,twhite

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

Diffstat:
Mmobile/android/android-components/components/support/utils/src/main/AndroidManifest.xml | 7++++++-
Mmobile/android/android-components/components/support/utils/src/main/java/mozilla/components/support/utils/ext/Context.kt | 3+++
Mmobile/android/android-components/components/support/utils/src/main/java/mozilla/components/support/utils/ext/PackageManagerWrapper.kt | 12++++++++++++
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Components.kt | 3++-
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/distributions/DistributionIdManager.kt | 18+++++++++---------
Mmobile/android/fenix/app/src/test/java/org/mozilla/fenix/FenixApplicationTest.kt | 4++--
Mmobile/android/fenix/app/src/test/java/org/mozilla/fenix/components/metrics/MarketingAttributionServiceTest.kt | 3++-
Mmobile/android/fenix/app/src/test/java/org/mozilla/fenix/distributions/DistributionIdManagerTest.kt | 71++++++++++++++++++++++++++++++++++++-----------------------------------
8 files changed, 72 insertions(+), 49 deletions(-)

diff --git a/mobile/android/android-components/components/support/utils/src/main/AndroidManifest.xml b/mobile/android/android-components/components/support/utils/src/main/AndroidManifest.xml @@ -1,10 +1,15 @@ <!-- This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this file, - You can obtain one at http://mozilla.org/MPL/2.0/. --> -<manifest xmlns:android="http://schemas.android.com/apk/res/android"> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools"> <!-- Adds the ability to discover apps that have matching <intent-filter> elements. Needed for PackageManager.queryIntentActivities calls. See https://developer.android.com/training/package-visibility/declaring for more details.--> + + <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" + tools:ignore="PackageVisibilityPolicy,QueryAllPackagesPermission" /> + <queries> <intent> <action android:name="android.intent.action.SEND" /> diff --git a/mobile/android/android-components/components/support/utils/src/main/java/mozilla/components/support/utils/ext/Context.kt b/mobile/android/android-components/components/support/utils/src/main/java/mozilla/components/support/utils/ext/Context.kt @@ -28,6 +28,9 @@ const val DEFAULT_BROWSER_APP_OPTION = "default_browser" const val ACTION_MANAGE_DEFAULT_APPS_SETTINGS_HUAWEI = "com.android.settings.PREFERRED_SETTINGS" private val logger = Logger("navigateToDefaultBrowserAppsSettings") +val Context.packageManagerWrapper: PackageManagerWrapper + get() = DefaultPackageManagerWrapper(packageManager) + /** * The default [PackageManagerCompatHelper] for this [Context]. * diff --git a/mobile/android/android-components/components/support/utils/src/main/java/mozilla/components/support/utils/ext/PackageManagerWrapper.kt b/mobile/android/android-components/components/support/utils/src/main/java/mozilla/components/support/utils/ext/PackageManagerWrapper.kt @@ -77,6 +77,15 @@ interface PackageManagerWrapper { * @see [PackageManager.getApplicationInfo]. */ fun getApplicationInfo(packageName: String, flags: Int): ApplicationInfo + + /** + * Returns a list of all installed packages. + * + * @param flags Optional flags to modify the data returned. + * + * @return A list of [PackageInfo] objects, one for each installed package. + */ + fun getInstalledPackages(flags: Int): List<PackageInfo> } /** @@ -131,4 +140,7 @@ class DefaultPackageManagerWrapper( packageName: String, flags: Int, ): ApplicationInfo = packageManager.getApplicationInfo(packageName, flags) + + override fun getInstalledPackages(flags: Int): List<PackageInfo> = + packageManager.getInstalledPackages(flags) } diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Components.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/Components.kt @@ -28,6 +28,7 @@ import mozilla.components.support.remotesettings.RemoteSettingsService import mozilla.components.support.remotesettings.into import mozilla.components.support.utils.BuildManufacturerChecker import mozilla.components.support.utils.ClipboardHandler +import mozilla.components.support.utils.ext.packageManagerWrapper import org.mozilla.fenix.BuildConfig import org.mozilla.fenix.Config import org.mozilla.fenix.FeatureFlags @@ -344,7 +345,7 @@ class Components(private val context: Context) { val distributionIdManager by lazyMonitored { DistributionIdManager( - context = context, + packageManager = context.packageManagerWrapper, browserStoreProvider = DefaultDistributionBrowserStoreProvider(core.store), distributionProviderChecker = DefaultDistributionProviderChecker(context), legacyDistributionProviderChecker = LegacyDistributionProviderChecker(context), 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 @@ -4,11 +4,11 @@ package org.mozilla.fenix.distributions -import android.content.Context import android.content.pm.PackageManager import android.os.Build import androidx.annotation.VisibleForTesting import mozilla.components.support.base.log.logger.Logger +import mozilla.components.support.utils.ext.PackageManagerWrapper import org.mozilla.fenix.GleanMetrics.Metrics import org.mozilla.fenix.GleanMetrics.Partnerships import org.mozilla.fenix.components.metrics.UTMParams @@ -37,7 +37,7 @@ private val logger = Logger(DistributionIdManager::class.simpleName) /** * Class used to manage distribution Ids for distribution deals with third parties * - * @param context application context + * @param packageManager device package manager for checking installed packages * @param browserStoreProvider used to update and fetch the stored distribution Id * @param distributionProviderChecker used for checking content providers for a distribution provider * @param legacyDistributionProviderChecker used for checking content providers for a distribution provider @@ -47,14 +47,14 @@ private val logger = Logger(DistributionIdManager::class.simpleName) * @param isDtUsaInstalled checks if one of the DT USA carrier apps is installed on the device */ class DistributionIdManager( - private val context: Context, + private val packageManager: PackageManagerWrapper, private val browserStoreProvider: DistributionBrowserStoreProvider, private val distributionProviderChecker: DistributionProviderChecker, private val legacyDistributionProviderChecker: DistributionProviderChecker, private val distributionSettings: DistributionSettings, private val appPreinstalledOnVivoDevice: () -> Boolean = { wasAppPreinstalledOnVivoDevice() }, - private val isDtTelefonicaInstalled: () -> Boolean = { isDtTelefonicaInstalled(context) }, - private val isDtUsaInstalled: () -> Boolean = { isDtUsaInstalled(context) }, + private val isDtTelefonicaInstalled: () -> Boolean = { isDtTelefonicaInstalled(packageManager) }, + private val isDtUsaInstalled: () -> Boolean = { isDtUsaInstalled(packageManager) }, ) { private var distribution: Distribution? = null @@ -234,16 +234,16 @@ private fun wasAppPreinstalledOnVivoDevice(): Boolean { /** * Checks if the Digital Turbine Telefonica app exists on the device */ -private fun isDtTelefonicaInstalled(context: Context): Boolean { - val packages = context.packageManager.getInstalledPackages(PackageManager.GET_META_DATA) +private fun isDtTelefonicaInstalled(packageManager: PackageManagerWrapper): Boolean { + val packages = packageManager.getInstalledPackages(PackageManager.GET_META_DATA) return packages.any { it.packageName == DT_TELEFONICA_PACKAGE } } /** * Checks if one of the Digital Turbine USA apps exist on the device */ -private fun isDtUsaInstalled(context: Context): Boolean { - val packages = context.packageManager.getInstalledPackages(PackageManager.GET_META_DATA) +private fun isDtUsaInstalled(packageManager: PackageManagerWrapper): Boolean { + val packages = packageManager.getInstalledPackages(PackageManager.GET_META_DATA) return packages.any { val packageName = it.packageName.lowercase() packageName == DT_VERIZON_PACKAGE || diff --git a/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/FenixApplicationTest.kt b/mobile/android/fenix/app/src/test/java/org/mozilla/fenix/FenixApplicationTest.kt @@ -21,8 +21,8 @@ import mozilla.components.concept.engine.webextension.WebExtension import mozilla.components.feature.addons.migration.DefaultSupportedAddonsChecker import mozilla.components.support.test.robolectric.testContext import mozilla.components.support.utils.BrowsersCache +import mozilla.components.support.utils.ext.packageManagerWrapper import org.junit.Assert.assertEquals -import org.junit.Assert.assertFalse import org.junit.Assert.assertNotNull import org.junit.Assert.assertNull import org.junit.Assert.assertTrue @@ -83,7 +83,7 @@ class FenixApplicationTest { every { testContext.components.core } returns mockk(relaxed = true) every { testContext.components.distributionIdManager } returns DistributionIdManager( - context = testContext, + packageManager = testContext.packageManagerWrapper, browserStoreProvider = DefaultDistributionBrowserStoreProvider(browserStore), distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, 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 @@ -6,6 +6,7 @@ package org.mozilla.fenix.components.metrics import androidx.test.ext.junit.runners.AndroidJUnit4 import mozilla.components.support.test.robolectric.testContext +import mozilla.components.support.utils.ext.packageManagerWrapper import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue import org.junit.Test @@ -48,7 +49,7 @@ internal class MarketingAttributionServiceTest { } val distributionIdManager = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, 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 @@ -7,6 +7,7 @@ package org.mozilla.fenix.distributions import io.mockk.mockk import io.mockk.verify import mozilla.components.support.test.robolectric.testContext +import mozilla.components.support.utils.ext.packageManagerWrapper import org.junit.After import org.junit.Assert.assertEquals import org.junit.Test @@ -61,7 +62,7 @@ class DistributionIdManagerTest { @Test fun `WHEN a device is made by vivo AND the vivo distribution file is found THEN the proper id is returned`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -80,7 +81,7 @@ class DistributionIdManagerTest { @Test fun `WHEN a device is not made by vivo AND the vivo distribution file is found THEN the proper id is returned`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -96,7 +97,7 @@ class DistributionIdManagerTest { @Test fun `WHEN a device is made by vivo AND the vivo distribution file is not found THEN the proper id is returned`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -115,7 +116,7 @@ class DistributionIdManagerTest { @Test fun `WHEN the device is not vivo AND the channel is not mozilla online THEN the proper id is returned`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -130,7 +131,7 @@ class DistributionIdManagerTest { @Test fun `WHEN the provider is digital_tubrine AND the DT app is installed THEN the proper ID is returned`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -147,7 +148,7 @@ class DistributionIdManagerTest { @Test fun `WHEN the provider is not digital_tubrine AND the DT app is installed THEN the proper ID is returned`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -164,7 +165,7 @@ class DistributionIdManagerTest { @Test fun `WHEN the provider is not digital_tubrine AND the DT app is not installed THEN the proper ID is returned`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -181,7 +182,7 @@ class DistributionIdManagerTest { @Test fun `WHEN the provider is null AND the DT app is installed THEN the proper ID is returned`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -198,7 +199,7 @@ class DistributionIdManagerTest { @Test fun `WHEN the provider is null AND the DT app is not installed THEN the proper ID is returned`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -215,7 +216,7 @@ class DistributionIdManagerTest { @Test fun `WHEN the distribution is not default or mozilla online THEN the distribution is from a deal`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -247,7 +248,7 @@ class DistributionIdManagerTest { @Test fun `WHEN the distribution is vivo THEN the marketing screen should be skipped`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -279,7 +280,7 @@ class DistributionIdManagerTest { @Test fun `WHEN the provider is aura THEN the proper distribution ID is returned`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -295,7 +296,7 @@ class DistributionIdManagerTest { @Test fun `WHEN the provider is DT AND a DT USA package is installed THEN the proper distribution ID is returned`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -312,7 +313,7 @@ class DistributionIdManagerTest { @Test fun `WHEN the provider is not DT AND a DT USA package is installed THEN the proper distribution ID is returned`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -329,7 +330,7 @@ class DistributionIdManagerTest { @Test fun `WHEN the provider is DT and telefonica and USA packages are not installed THEN the proper distribution ID is returned`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -345,7 +346,7 @@ class DistributionIdManagerTest { @Test fun `WHEN the new default provider fails to detect DT telefonica THEN the legacy provider detects it`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -362,7 +363,7 @@ class DistributionIdManagerTest { @Test fun `WHEN the new default provider fails to detect DT USA THEN the legacy provider detects it`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -379,7 +380,7 @@ class DistributionIdManagerTest { @Test fun `WHEN the new default provider fails to detect DT ROW THEN the legacy provider detects it`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -395,7 +396,7 @@ class DistributionIdManagerTest { @Test fun `WHEN DT telefonica is installed AND provider is DT and legacy provider is DT THEN the proper metrics are sent`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -415,7 +416,7 @@ class DistributionIdManagerTest { @Test fun `WHEN DT telefonica is installed AND provider is not DT and legacy provider is DT THEN the proper metrics are sent`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -435,7 +436,7 @@ class DistributionIdManagerTest { @Test fun `WHEN DT telefonica is installed AND provider is DT and legacy provider is not DT THEN the proper metrics are sent`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -455,7 +456,7 @@ class DistributionIdManagerTest { @Test fun `WHEN DT telefonica is installed AND provider is not DT and legacy provider is not DT THEN the metrics are not sent`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -476,7 +477,7 @@ class DistributionIdManagerTest { @Test fun `WHEN DT USA is installed AND provider is DT and legacy provider is DT THEN the proper metrics are sent`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -496,7 +497,7 @@ class DistributionIdManagerTest { @Test fun `WHEN DT USA is installed AND provider is not DT and legacy provider is DT THEN the proper metrics are sent`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -516,7 +517,7 @@ class DistributionIdManagerTest { @Test fun `WHEN DT USA is installed AND provider is DT and legacy provider is not DT THEN the proper metrics are sent`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -536,7 +537,7 @@ class DistributionIdManagerTest { @Test fun `WHEN DT USA is installed AND provider is not DT and legacy provider is not DT THEN the metrics are not sent`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -557,7 +558,7 @@ class DistributionIdManagerTest { @Test fun `WHEN DT ROW is installed AND provider is DT and legacy provider is DT THEN the proper metrics are sent`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -576,7 +577,7 @@ class DistributionIdManagerTest { @Test fun `WHEN DT ROW is installed AND provider is not DT and legacy provider is DT THEN the proper metrics are sent`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -595,7 +596,7 @@ class DistributionIdManagerTest { @Test fun `WHEN DT ROW is installed AND provider is DT and legacy provider is not DT THEN the proper metrics are sent`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -614,7 +615,7 @@ class DistributionIdManagerTest { @Test fun `WHEN DT ROW is installed AND provider is not DT and legacy provider is not DT THEN the metrics are not sent`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -634,7 +635,7 @@ class DistributionIdManagerTest { @Test fun `WHEN the play install referrer response has a vivo india campaign THEN the distribution ID is updated`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -659,7 +660,7 @@ class DistributionIdManagerTest { @Test fun `WHEN the play install referrer response has a xiaomi campaign THEN the distribution ID is updated`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -684,7 +685,7 @@ class DistributionIdManagerTest { @Test fun `WHEN the play install referrer response does not have a distribution campaign THEN the distribution ID is not updated`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -709,7 +710,7 @@ class DistributionIdManagerTest { @Test fun `WHEN there is a saved ID THEN the saved ID is returned`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker, @@ -726,7 +727,7 @@ class DistributionIdManagerTest { @Test fun `WHEN there is not a saved ID THEN a non blank ID is returned`() { val subject = DistributionIdManager( - testContext, + packageManager = testContext.packageManagerWrapper, testBrowserStoreProvider, distributionProviderChecker = testDistributionProviderChecker, legacyDistributionProviderChecker = testLegacyDistributionProviderChecker,