test_telemetry.js (1723B)
1 /* Any copyright is dedicated to the Public Domain. 2 * http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 const { getFxAccountsSingleton } = ChromeUtils.importESModule( 7 "resource://gre/modules/FxAccounts.sys.mjs" 8 ); 9 const fxAccounts = getFxAccountsSingleton(); 10 11 _("Misc tests for FxAccounts.telemetry"); 12 13 const MOCK_HASHED_UID = "00112233445566778899aabbccddeeff"; 14 const MOCK_DEVICE_ID = "ffeeddccbbaa99887766554433221100"; 15 16 add_task(function test_sanitized_uid() { 17 Services.prefs.deleteBranch( 18 "identity.fxaccounts.account.telemetry.sanitized_uid" 19 ); 20 21 // Returns `null` by default. 22 Assert.equal(fxAccounts.telemetry.getSanitizedUID(), null); 23 24 // Returns provided value if set. 25 fxAccounts.telemetry._setHashedUID(MOCK_HASHED_UID); 26 Assert.equal(fxAccounts.telemetry.getSanitizedUID(), MOCK_HASHED_UID); 27 28 // Reverts to unset for falsey values. 29 fxAccounts.telemetry._setHashedUID(""); 30 Assert.equal(fxAccounts.telemetry.getSanitizedUID(), null); 31 }); 32 33 add_task(function test_sanitize_device_id() { 34 Services.prefs.deleteBranch( 35 "identity.fxaccounts.account.telemetry.sanitized_uid" 36 ); 37 38 // Returns `null` by default. 39 Assert.equal(fxAccounts.telemetry.sanitizeDeviceId(MOCK_DEVICE_ID), null); 40 41 // Hashes with the sanitized UID if set. 42 // (test value here is SHA256(MOCK_DEVICE_ID + MOCK_HASHED_UID)) 43 fxAccounts.telemetry._setHashedUID(MOCK_HASHED_UID); 44 Assert.equal( 45 fxAccounts.telemetry.sanitizeDeviceId(MOCK_DEVICE_ID), 46 "dd7c845006df9baa1c6d756926519c8ce12f91230e11b6057bf8ec65f9b55c1a" 47 ); 48 49 // Reverts to unset for falsey values. 50 fxAccounts.telemetry._setHashedUID(""); 51 Assert.equal(fxAccounts.telemetry.sanitizeDeviceId(MOCK_DEVICE_ID), null); 52 });