mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-24 02:35:41 +00:00
Bug 1530816 support RTA IDs in AddonRepository r=aswan
AddonRepository validates IDs that are returned from AMO. We need to handle the case where we are using rta prefix for ReturnToAMO. Differential Revision: https://phabricator.services.mozilla.com/D21389 --HG-- extra : moz-landing-system : lando
This commit is contained in:
parent
109f80ff56
commit
b9e3808121
@ -444,6 +444,12 @@ var AddonRepository = {
|
||||
_fetchPaged(ids, pref, handler) {
|
||||
let startURL = this._formatURLPref(pref, {IDS: ids.join(",")});
|
||||
let results = [];
|
||||
let idCheck = ids.map(id => {
|
||||
if (id.startsWith("rta:")) {
|
||||
return atob(id.split(":")[1]);
|
||||
}
|
||||
return id;
|
||||
});
|
||||
|
||||
const fetchNextPage = (url) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
@ -466,7 +472,7 @@ var AddonRepository = {
|
||||
}
|
||||
|
||||
try {
|
||||
let newResults = handler(response.results).filter(e => ids.includes(e.id));
|
||||
let newResults = handler(response.results).filter(e => idCheck.includes(e.id));
|
||||
results.push(...newResults);
|
||||
} catch (err) {
|
||||
reject(err);
|
||||
|
@ -118,6 +118,10 @@ var GET_TEST = {
|
||||
"test2%40tests.mozilla.org%2C" +
|
||||
"%7B00000000-1111-2222-3333-444444444444%7D%2C" +
|
||||
"test_AddonRepository_1%40tests.mozilla.org",
|
||||
successfulRTAURL: "/XPCShell/1/rta%3AdGVzdDFAdGVzdHMubW96aWxsYS5vcmc%2C" +
|
||||
"test2%40tests.mozilla.org%2C" +
|
||||
"%7B00000000-1111-2222-3333-444444444444%7D%2C" +
|
||||
"test_AddonRepository_1%40tests.mozilla.org",
|
||||
};
|
||||
|
||||
// Test that actual results and expected results are equal
|
||||
@ -151,6 +155,9 @@ add_task(async function setup() {
|
||||
// Register files used to test search success
|
||||
gServer.registerFile(GET_TEST.successfulURL,
|
||||
do_get_file("data/test_AddonRepository_getAddonsByIDs.json"));
|
||||
// Register file for RTA test
|
||||
gServer.registerFile(GET_TEST.successfulRTAURL,
|
||||
do_get_file("data/test_AddonRepository_getAddonsByIDs.json"));
|
||||
|
||||
await promiseStartupManager();
|
||||
|
||||
@ -243,3 +250,12 @@ add_task(async function test_getAddonsByID_succeeds() {
|
||||
|
||||
check_results(result, GET_RESULTS);
|
||||
});
|
||||
|
||||
// Tests success of AddonRepository.getAddonsByIDs() with rta ID.
|
||||
add_task(async function test_getAddonsByID_rta() {
|
||||
let id = `rta:${btoa(GET_TEST.successfulIDs[0])}`.slice(0, -1);
|
||||
GET_TEST.successfulIDs[0] = id;
|
||||
let result = await AddonRepository.getAddonsByIDs(GET_TEST.successfulIDs);
|
||||
|
||||
check_results(result, GET_RESULTS);
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user