diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
commit | 6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /toolkit/mozapps/extensions/test/xpcshell/test_system_update_installTelemetryInfo.js | |
parent | Initial commit. (diff) | |
download | thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'toolkit/mozapps/extensions/test/xpcshell/test_system_update_installTelemetryInfo.js')
-rw-r--r-- | toolkit/mozapps/extensions/test/xpcshell/test_system_update_installTelemetryInfo.js | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/toolkit/mozapps/extensions/test/xpcshell/test_system_update_installTelemetryInfo.js b/toolkit/mozapps/extensions/test/xpcshell/test_system_update_installTelemetryInfo.js new file mode 100644 index 0000000000..3d41b81198 --- /dev/null +++ b/toolkit/mozapps/extensions/test/xpcshell/test_system_update_installTelemetryInfo.js @@ -0,0 +1,94 @@ +// Test that the expected installTelemetryInfo are being set on the system addon +// installed/updated through Balrog. + +createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "2"); + +let distroDir = FileUtils.getDir("ProfD", ["sysfeatures", "empty"], true); +registerDirectory("XREAppFeat", distroDir); + +AddonTestUtils.usePrivilegedSignatures = id => "system"; + +add_task(() => initSystemAddonDirs()); + +add_task(async function test_addon_update() { + Services.prefs.setBoolPref(PREF_SYSTEM_ADDON_UPDATE_ENABLED, true); + + // Define the set of initial conditions to run each test against: + // - setup: A task to setup the profile into the initial state. + // - initialState: The initial expected system add-on state after setup has run. + const initialSetup = { + async setup() { + await buildPrefilledUpdatesDir(); + distroDir.leafName = "empty"; + }, + initialState: [ + { isUpgrade: false, version: null }, + { isUpgrade: true, version: "2.0" }, + ], + }; + + await setupSystemAddonConditions(initialSetup, distroDir); + + const newlyInstalledSystemAddonId = "system1@tests.mozilla.org"; + const updatedSystemAddonId = "system2@tests.mozilla.org"; + + const updateXML = buildSystemAddonUpdates([ + // Newly installed system addon entry. + { + id: newlyInstalledSystemAddonId, + version: "1.0", + path: "system1_1.xpi", + xpi: await getSystemAddonXPI(1, "1.0"), + }, + // Updated system addon entry. + { + id: updatedSystemAddonId, + version: "3.0", + path: "system2_3.xpi", + xpi: await getSystemAddonXPI(2, "3.0"), + }, + ]); + + await Promise.all([ + updateAllSystemAddons(updateXML), + promiseWebExtensionStartup(newlyInstalledSystemAddonId), + promiseWebExtensionStartup(updatedSystemAddonId), + ]); + + await verifySystemAddonState( + initialSetup.initialState, + [ + { isUpgrade: true, version: "1.0" }, + { isUpgrade: true, version: "3.0" }, + { isUpgrade: false, version: null }, + { isUpgrade: false, version: null }, + { isUpgrade: false, version: null }, + ], + false, + distroDir + ); + + const newlyInstalledSystemAddon = await AddonManager.getAddonByID( + newlyInstalledSystemAddonId + ); + Assert.deepEqual( + newlyInstalledSystemAddon.installTelemetryInfo, + // For addons installed for the first time through the product addon checker + // we set a `method` in the telemetryInfo. + { source: "system-addon", method: "product-updates" }, + "Got the expected telemetry info on balrog system addon installed addon" + ); + + const updatedSystemAddon = await AddonManager.getAddonByID( + updatedSystemAddonId + ); + Assert.deepEqual( + updatedSystemAddon.installTelemetryInfo, + // For addons that are distributed in Firefox, then updated through the product + // addon checker, `method` will not be set. + { source: "system-addon" }, + "Got the expected telemetry info on balrog system addon updated addon" + ); + + await promiseShutdownManager(); +}); |