зеркало из https://github.com/mozilla/gecko-dev.git
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:
Родитель
941ac88426
Коммит
045726bf55
|
@ -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();
|
||||
}
|
||||
);
|
||||
},
|
||||
};
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче