diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:14:29 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:14:29 +0000 |
commit | fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8 (patch) | |
tree | 4c1ccaf5486d4f2009f9a338a98a83e886e29c97 /browser/components/search/test/unit/test_search_telemetry_categorization_logic.js | |
parent | Releasing progress-linux version 124.0.1-1~progress7.99u1. (diff) | |
download | firefox-fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8.tar.xz firefox-fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8.zip |
Merging upstream version 125.0.1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'browser/components/search/test/unit/test_search_telemetry_categorization_logic.js')
-rw-r--r-- | browser/components/search/test/unit/test_search_telemetry_categorization_logic.js | 225 |
1 files changed, 127 insertions, 98 deletions
diff --git a/browser/components/search/test/unit/test_search_telemetry_categorization_logic.js b/browser/components/search/test/unit/test_search_telemetry_categorization_logic.js index 947a7aae46..44b9147c50 100644 --- a/browser/components/search/test/unit/test_search_telemetry_categorization_logic.js +++ b/browser/components/search/test/unit/test_search_telemetry_categorization_logic.js @@ -15,90 +15,111 @@ ChromeUtils.defineESModuleGetters(this, { SearchSERPTelemetryUtils: "resource:///modules/SearchSERPTelemetry.sys.mjs", }); -const TEST_DOMAIN_TO_CATEGORIES_MAP_SIMPLE = { - "byVQ4ej7T7s2xf/cPqgMyw==": [2, 90], - "1TEnSjgNCuobI6olZinMiQ==": [2, 95], - "/Bnju09b9iBPjg7K+5ENIw==": [2, 78, 4, 10], - "Ja6RJq5LQftdl7NQrX1avQ==": [2, 56, 4, 24], - "Jy26Qt99JrUderAcURtQ5A==": [2, 89], - "sZnJyyzY9QcN810Q6jfbvw==": [2, 43], - "QhmteGKeYk0okuB/bXzwRw==": [2, 65], - "CKQZZ1IJjzjjE4LUV8vUSg==": [2, 67], - "FK7mL5E1JaE6VzOiGMmlZg==": [2, 89], - "mzcR/nhDcrs0ed4kTf+ZFg==": [2, 99], -}; - -const TEST_DOMAIN_TO_CATEGORIES_MAP_INCONCLUSIVE = { - "IkOfhoSlHTMIZzWXkYf7fg==": [0, 0], - "PIAHxeaBOeDNY2tvZKqQuw==": [0, 0], - "DKx2mqmFtEvxrHAqpwSevA==": [0, 0], - "DlZKnz9ryYqbxJq9wodzlA==": [0, 0], - "n3NWT4N9JlKX0I7MUtAsYg==": [0, 0], - "A6KyupOlu5zXt8loti90qw==": [0, 0], - "gf5rpseruOaq8nXOSJPG3Q==": [0, 0], - "vlQYOvbcbAp6sMx54OwqCQ==": [0, 0], - "8PcaPATLgmHD9SR0/961Sw==": [0, 0], - "l+hLycEAW2v/OPE/XFpNwQ==": [0, 0], -}; - -const TEST_DOMAIN_TO_CATEGORIES_MAP_UNKNOWN_AND_INCONCLUSIVE = { - "CEA642T3hV+Fdi2PaRH9BQ==": [0, 0], - "cVqopYLASYxcWdDW4F+w2w==": [0, 0], - "X61OdTU20n8pxZ76K2eAHg==": [0, 0], - "/srrOggOAwgaBGCsPdC4bA==": [0, 0], - "onnMGn+MmaCQx3RNLBzGOQ==": [0, 0], -}; - -const TEST_DOMAIN_TO_CATEGORIES_MAP_ALL_TYPES = { - "VSXaqgDKYWrJ/yjsFomUdg==": [3, 90], - "6re74Kk34n2V6VCdLmCD5w==": [3, 88], - "s8gOGIaFnly5hHX7nPncnw==": [3, 90, 6, 2], - "zfRJyKV+2jd1RKNsSHm9pw==": [3, 78, 6, 7], - "zcW+KbRfLRO6Dljf5qnuwQ==": [3, 97], - "Rau9mfbBcIRiRQIliUxkow==": [0, 0], - "4AFhUOmLQ8804doOsI4jBA==": [0, 0], -}; - -const TEST_DOMAIN_TO_CATEGORIES_MAP_TIE = { - "fmEqRSc+pBr9noi0l99nGw==": [1, 50, 2, 50], - "cms8ipz0JQ3WS9o48RtvnQ==": [1, 50, 2, 50], - "y8Haj7Qdmx+k762RaxCPvA==": [1, 50, 2, 50], - "tCbLmi5xJ/OrF8tbRm8PrA==": [1, 50, 2, 50], - "uYNQECmDShqI409HrSTdLQ==": [1, 50, 2, 50], - "D88hdsmzLWIXYhkrDal33w==": [3, 50, 4, 50], - "1mhx0I0B4cEaI91x8zor7Q==": [5, 50, 6, 50], - "dVZYATQixuBHmalCFR9+Lw==": [7, 50, 8, 50], - "pdOFJG49D7hE/+FtsWDihQ==": [9, 50, 10, 50], - "+gl+dBhWE0nx0AM69m2g5w==": [11, 50, 12, 50], -}; - -const TEST_DOMAIN_TO_CATEGORIES_MAP_RANK_PENALIZATION_1 = { - "VSXaqgDKYWrJ/yjsFomUdg==": [1, 45], - "6re74Kk34n2V6VCdLmCD5w==": [2, 45], - "s8gOGIaFnly5hHX7nPncnw==": [3, 45], - "zfRJyKV+2jd1RKNsSHm9pw==": [4, 45], - "zcW+KbRfLRO6Dljf5qnuwQ==": [5, 45], - "Rau9mfbBcIRiRQIliUxkow==": [6, 45], - "4AFhUOmLQ8804doOsI4jBA==": [7, 45], - "YZ3aEL73MR+Cjog0D7A24w==": [8, 45], - "crMclD9rwInEQ30DpZLg+g==": [9, 45], - "/r7oPRoE6LJAE95nuwmu7w==": [10, 45], -}; - -const TEST_DOMAIN_TO_CATEGORIES_MAP_RANK_PENALIZATION_2 = { - "sHWSmFwSYL3snycBZCY8Kg==": [1, 35, 2, 4], - "FZ5zPYh6ByI0KGWKkmpDoA==": [1, 5, 2, 94], -}; +ChromeUtils.defineLazyGetter(this, "gCryptoHash", () => { + return Cc["@mozilla.org/security/hash;1"].createInstance(Ci.nsICryptoHash); +}); + +function convertDomainsToHashes(domainsToCategories) { + let newObj = {}; + for (let [key, value] of Object.entries(domainsToCategories)) { + gCryptoHash.init(gCryptoHash.SHA256); + let bytes = new TextEncoder().encode(key); + gCryptoHash.update(bytes, key.length); + let hash = gCryptoHash.finish(true); + newObj[hash] = value; + } + return newObj; +} + +const TEST_DOMAIN_TO_CATEGORIES_MAP_SIMPLE = convertDomainsToHashes({ + "test1.com": [2, 90], + "test2.com": [2, 95], + "test3.com": [2, 78, 4, 10], + "test4.com": [2, 56, 4, 24], + "test5.com": [2, 89], + "test6.com": [2, 43], + "test7.com": [2, 65], + "test8.com": [2, 67], + "test9.com": [2, 89], + "test10.com": [2, 99], +}); + +const TEST_DOMAIN_TO_CATEGORIES_MAP_INCONCLUSIVE = convertDomainsToHashes({ + "test11.com": [0, 0], + "test12.com": [0, 0], + "test13.com": [0, 0], + "test14.com": [0, 0], + "test15.com": [0, 0], + "test16.com": [0, 0], + "test17.com": [0, 0], + "test18.com": [0, 0], + "test19.com": [0, 0], + "test20.com": [0, 0], +}); + +const TEST_DOMAIN_TO_CATEGORIES_MAP_UNKNOWN_AND_INCONCLUSIVE = + convertDomainsToHashes({ + "test31.com": [0, 0], + "test32.com": [0, 0], + "test33.com": [0, 0], + "test34.com": [0, 0], + "test35.com": [0, 0], + }); + +const TEST_DOMAIN_TO_CATEGORIES_MAP_ALL_TYPES = convertDomainsToHashes({ + "test51.com": [3, 90], + "test52.com": [3, 88], + "test53.com": [3, 90, 6, 2], + "test54.com": [3, 78, 6, 7], + "test55.com": [3, 97], + "test56.com": [0, 0], + "test57.com": [0, 0], +}); + +const TEST_DOMAIN_TO_CATEGORIES_MAP_TIE = convertDomainsToHashes({ + "test41.com": [1, 50, 2, 50], + "test42.com": [1, 50, 2, 50], + "test43.com": [1, 50, 2, 50], + "test44.com": [1, 50, 2, 50], + "test45.com": [1, 50, 2, 50], + "test46.com": [3, 50, 4, 50], + "test47.com": [5, 50, 6, 50], + "test48.com": [7, 50, 8, 50], + "test49.com": [9, 50, 10, 50], + "test50.com": [11, 50, 12, 50], +}); + +const TEST_DOMAIN_TO_CATEGORIES_MAP_RANK_PENALIZATION_1 = + convertDomainsToHashes({ + "test51.com": [1, 45], + "test52.com": [2, 45], + "test53.com": [3, 45], + "test54.com": [4, 45], + "test55.com": [5, 45], + "test56.com": [6, 45], + "test57.com": [7, 45], + "test58.com": [8, 45], + "test59.com": [9, 45], + "test60.com": [10, 45], + }); + +const TEST_DOMAIN_TO_CATEGORIES_MAP_RANK_PENALIZATION_2 = + convertDomainsToHashes({ + "test61.com": [1, 35, 2, 4], + "test62.com": [1, 5, 2, 94], + }); add_setup(async () => { + do_get_profile(); Services.prefs.setBoolPref( "browser.search.serpEventTelemetryCategorization.enabled", true ); + await SearchSERPDomainToCategoriesMap.init(); }); add_task(async function test_categorization_simple() { - SearchSERPDomainToCategoriesMap.overrideMapForTests( + await SearchSERPDomainToCategoriesMap.overrideMapForTests( TEST_DOMAIN_TO_CATEGORIES_MAP_SIMPLE ); @@ -115,8 +136,9 @@ add_task(async function test_categorization_simple() { "test10.com", ]); - let resultsToReport = - SearchSERPCategorization.applyCategorizationLogic(domains); + let resultsToReport = await SearchSERPCategorization.applyCategorizationLogic( + domains + ); Assert.deepEqual( resultsToReport, @@ -126,7 +148,7 @@ add_task(async function test_categorization_simple() { }); add_task(async function test_categorization_inconclusive() { - SearchSERPDomainToCategoriesMap.overrideMapForTests( + await SearchSERPDomainToCategoriesMap.overrideMapForTests( TEST_DOMAIN_TO_CATEGORIES_MAP_INCONCLUSIVE ); @@ -143,8 +165,9 @@ add_task(async function test_categorization_inconclusive() { "test20.com", ]); - let resultsToReport = - SearchSERPCategorization.applyCategorizationLogic(domains); + let resultsToReport = await SearchSERPCategorization.applyCategorizationLogic( + domains + ); Assert.deepEqual( resultsToReport, @@ -161,7 +184,7 @@ add_task(async function test_categorization_inconclusive() { add_task(async function test_categorization_unknown() { // Reusing TEST_DOMAIN_TO_CATEGORIES_MAP_SIMPLE since none of this task's // domains will be keys within it. - SearchSERPDomainToCategoriesMap.overrideMapForTests( + await SearchSERPDomainToCategoriesMap.overrideMapForTests( TEST_DOMAIN_TO_CATEGORIES_MAP_SIMPLE ); @@ -178,8 +201,9 @@ add_task(async function test_categorization_unknown() { "test30.com", ]); - let resultsToReport = - SearchSERPCategorization.applyCategorizationLogic(domains); + let resultsToReport = await SearchSERPCategorization.applyCategorizationLogic( + domains + ); Assert.deepEqual( resultsToReport, @@ -194,7 +218,7 @@ add_task(async function test_categorization_unknown() { }); add_task(async function test_categorization_unknown_and_inconclusive() { - SearchSERPDomainToCategoriesMap.overrideMapForTests( + await SearchSERPDomainToCategoriesMap.overrideMapForTests( TEST_DOMAIN_TO_CATEGORIES_MAP_UNKNOWN_AND_INCONCLUSIVE ); @@ -211,8 +235,9 @@ add_task(async function test_categorization_unknown_and_inconclusive() { "test40.com", ]); - let resultsToReport = - SearchSERPCategorization.applyCategorizationLogic(domains); + let resultsToReport = await SearchSERPCategorization.applyCategorizationLogic( + domains + ); Assert.deepEqual( resultsToReport, @@ -228,7 +253,7 @@ add_task(async function test_categorization_unknown_and_inconclusive() { // Tests a mixture of categorized, inconclusive and unknown domains. add_task(async function test_categorization_all_types() { - SearchSERPDomainToCategoriesMap.overrideMapForTests( + await SearchSERPDomainToCategoriesMap.overrideMapForTests( TEST_DOMAIN_TO_CATEGORIES_MAP_ALL_TYPES ); @@ -247,8 +272,9 @@ add_task(async function test_categorization_all_types() { "test60.com", ]); - let resultsToReport = - SearchSERPCategorization.applyCategorizationLogic(domains); + let resultsToReport = await SearchSERPCategorization.applyCategorizationLogic( + domains + ); Assert.deepEqual( resultsToReport, @@ -263,7 +289,7 @@ add_task(async function test_categorization_all_types() { }); add_task(async function test_categorization_tie() { - SearchSERPDomainToCategoriesMap.overrideMapForTests( + await SearchSERPDomainToCategoriesMap.overrideMapForTests( TEST_DOMAIN_TO_CATEGORIES_MAP_TIE ); @@ -280,8 +306,9 @@ add_task(async function test_categorization_tie() { "test50.com", ]); - let resultsToReport = - SearchSERPCategorization.applyCategorizationLogic(domains); + let resultsToReport = await SearchSERPCategorization.applyCategorizationLogic( + domains + ); Assert.equal( [1, 2].includes(resultsToReport.category), @@ -301,7 +328,7 @@ add_task(async function test_categorization_tie() { }); add_task(async function test_rank_penalization_equal_scores() { - SearchSERPDomainToCategoriesMap.overrideMapForTests( + await SearchSERPDomainToCategoriesMap.overrideMapForTests( TEST_DOMAIN_TO_CATEGORIES_MAP_RANK_PENALIZATION_1 ); @@ -318,8 +345,9 @@ add_task(async function test_rank_penalization_equal_scores() { "test60.com", ]); - let resultsToReport = - SearchSERPCategorization.applyCategorizationLogic(domains); + let resultsToReport = await SearchSERPCategorization.applyCategorizationLogic( + domains + ); Assert.deepEqual( resultsToReport, @@ -329,14 +357,15 @@ add_task(async function test_rank_penalization_equal_scores() { }); add_task(async function test_rank_penalization_highest_score_lower_on_page() { - SearchSERPDomainToCategoriesMap.overrideMapForTests( + await SearchSERPDomainToCategoriesMap.overrideMapForTests( TEST_DOMAIN_TO_CATEGORIES_MAP_RANK_PENALIZATION_2 ); let domains = new Set(["test61.com", "test62.com"]); - let resultsToReport = - SearchSERPCategorization.applyCategorizationLogic(domains); + let resultsToReport = await SearchSERPCategorization.applyCategorizationLogic( + domains + ); Assert.deepEqual( resultsToReport, |