From fe059baf923d856f1db57e0595f01226110ff64c Mon Sep 17 00:00:00 2001 From: Luca Greco Date: Wed, 13 Nov 2019 18:02:22 +0000 Subject: [PATCH] Bug 1596133 - AbuseReporter.queryAMOAddonDetails should normalize type 'statictheme' into type 'theme'. r=mixedpuppy The addon details returned from the AMO API endpoint for webextensions static themes is type "statictheme", but for an installed WebExtension static theme we expect addon.type to be "theme", and so AbuseReporter.queryAMOAddonDetails should normalize the type received to ensure it matches what Firefox expects. This fix is needed to ensure that reporting a "not installed" theme from AMO works as expected (see https://github.com/mozilla/addons-frontend/issues/8762#issuecomment-553430081). Differential Revision: https://phabricator.services.mozilla.com/D52853 --HG-- extra : moz-landing-system : lando --- toolkit/mozapps/extensions/AbuseReporter.jsm | 7 ++++++- .../test/xpcshell/test_AbuseReporter.js | 15 +++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/toolkit/mozapps/extensions/AbuseReporter.jsm b/toolkit/mozapps/extensions/AbuseReporter.jsm index 509cc336ab24..907786443010 100644 --- a/toolkit/mozapps/extensions/AbuseReporter.jsm +++ b/toolkit/mozapps/extensions/AbuseReporter.jsm @@ -253,12 +253,17 @@ const AbuseReporter = { const getAuthorField = fieldName => details.authors && details.authors[0] && details.authors[0][fieldName]; + // Normalize type "statictheme" (which is the type used on the AMO API side) + // into "theme" (because it is the type we use and expect on the Firefox side + // for this addon type). + const addonType = details.type === "statictheme" ? "theme" : details.type; + return { id: addonId, name: getTranslatedValue(details.name), version: details.current_version.version, description: getTranslatedValue(details.summary), - type: details.type, + type: addonType, iconURL: details.icon_url, homepageURL: getTranslatedValue(details.homepage), supportURL: getTranslatedValue(details.support_url), diff --git a/toolkit/mozapps/extensions/test/xpcshell/test_AbuseReporter.js b/toolkit/mozapps/extensions/test/xpcshell/test_AbuseReporter.js index 3045b89c89f0..522d59ce25e9 100644 --- a/toolkit/mozapps/extensions/test/xpcshell/test_AbuseReporter.js +++ b/toolkit/mozapps/extensions/test/xpcshell/test_AbuseReporter.js @@ -863,3 +863,18 @@ add_task(async function test_query_amo_details() { amoAddonDetailsMap.clear(); }); + +add_task(async function test_statictheme_normalized_into_type_theme() { + const themeId = "not-installed-statictheme@mochi.test"; + amoAddonDetailsMap.set(themeId, { + ...FAKE_AMO_DETAILS, + type: "statictheme", + }); + + const report = await AbuseReporter.createAbuseReport(themeId, REPORT_OPTIONS); + + equal(report.addon.id, themeId, "Got a report for the expected theme id"); + equal(report.addon.type, "theme", "Got the expected addon type"); + + amoAddonDetailsMap.clear(); +});