Bug 1580561 - Part 1a: Add test case for the AMO details used by the abuse report panel. r=mixedpuppy

Depends on D46021

Differential Revision: https://phabricator.services.mozilla.com/D46023

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Luca Greco 2019-10-10 23:06:34 +00:00
Родитель 941ac88426
Коммит 045726bf55
2 изменённых файлов: 82 добавлений и 0 удалений

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

@ -98,3 +98,62 @@ add_task(async function test_report_dialog_window_closed_by_user() {
await extension.unload();
});
add_task(async function test_amo_details_for_not_installed_addon() {
const addonId = "not-installed-addon@mochi.test";
const fakeAMODetails = {
name: "fake name",
current_version: { version: "1.0" },
type: "extension",
icon_url: "http://test.addons.org/asserts/fake-icon-url.png",
homepage: "http://fake.url/homepage",
support_url: "http://fake.url/support",
authors: [
{ name: "author1", url: "http://fake.url/author1" },
{ name: "author2", url: "http://fake.url/author2" },
],
is_recommended: true,
};
AbuseReportTestUtils.amoAddonDetailsMap.set(addonId, fakeAMODetails);
registerCleanupFunction(() =>
AbuseReportTestUtils.amoAddonDetailsMap.clear()
);
const reportDialog = await AbuseReporter.openDialog(
addonId,
"menu",
gBrowser.selectedBrowser
);
const reportEl = await reportDialog.promiseReportPanel;
// Assert that the panel has been able to retrieve from AMO
// all the addon details needed to render the panel correctly.
is(reportEl.addonId, addonId, "Got the expected addonId");
is(reportEl.addonName, fakeAMODetails.name, "Got the expected addon name");
is(reportEl.addonType, fakeAMODetails.type, "Got the expected addon type");
is(
reportEl.authorName,
fakeAMODetails.authors[0].name,
"Got the first author name as expected"
);
is(
reportEl.authorURL,
fakeAMODetails.authors[0].url,
"Got the first author url as expected"
);
is(reportEl.iconURL, fakeAMODetails.icon_url, "Got the expected icon url");
is(
reportEl.supportURL,
fakeAMODetails.support_url,
"Got the expected support url"
);
is(
reportEl.homepageURL,
fakeAMODetails.homepage,
"Got the expected homepage url"
);
reportDialog.close();
});

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

@ -131,6 +131,10 @@ const AbuseReportTestUtils = {
set: [
["extensions.abuseReport.enabled", true],
["extensions.abuseReport.url", "http://test.addons.org/api/report/"],
[
"extensions.abuseReport.amoDetailsURL",
"http://test.addons.org/api/addons/addon/",
],
],
});
@ -566,6 +570,25 @@ const AbuseReportTestUtils = {
ok(false, `Unexpected request: ${request.path} ${data}`);
}
});
server.registerPrefixHandler("/api/addons/addon/", (request, response) => {
const addonId = request.path.split("/").pop();
if (!this.amoAddonDetailsMap.has(addonId)) {
response.setStatusLine(request.httpVersion, 404, "Not Found");
response.write(JSON.stringify({ detail: "Not found." }));
} else {
response.setStatusLine(request.httpVersion, 200, "Success");
response.write(JSON.stringify(this.amoAddonDetailsMap.get(addonId)));
}
});
server.registerPathHandler(
"/assets/fake-icon-url.png",
(request, response) => {
response.setStatusLine(request.httpVersion, 200, "Success");
response.write("");
response.finish();
}
);
},
};