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
This commit is contained in:
Luca Greco 2019-11-13 18:02:22 +00:00
Родитель eb45d1ab90
Коммит fe059baf92
2 изменённых файлов: 21 добавлений и 1 удалений

Просмотреть файл

@ -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),

Просмотреть файл

@ -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();
});