76 lines
2.5 KiB
JavaScript
76 lines
2.5 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
const image1x1 =
|
|
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAAAAAA6fptVAAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==";
|
|
const image96x96 =
|
|
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAJCAYAAADNYymqAAAAKklEQVR42u3RMQEAAAjDMFCO9CGDg1RC00lN6awGAACADQAACAAAAXjXApPGFm+IdJG9AAAAAElFTkSuQmCC";
|
|
const baseURL = "http://mozilla${i}.com/";
|
|
|
|
add_task(async function thumbnails_bg_topsites() {
|
|
await SpecialPowers.pushPrefEnv({
|
|
set: [
|
|
[
|
|
"browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts",
|
|
false,
|
|
],
|
|
],
|
|
});
|
|
// Add 3 top sites - 2 visits each so it can pass frecency threshold of the top sites query
|
|
for (let i = 1; i <= 3; i++) {
|
|
await PlacesTestUtils.addVisits(baseURL.replace("${i}", i));
|
|
await PlacesTestUtils.addVisits(baseURL.replace("${i}", i));
|
|
}
|
|
|
|
// Add favicon data for 2 of the top sites
|
|
let faviconData = new Map();
|
|
faviconData.set("http://mozilla1.com/", image1x1);
|
|
faviconData.set("http://mozilla2.com/", image96x96);
|
|
await PlacesTestUtils.addFavicons(faviconData);
|
|
|
|
// Sanity check that we've successfully added all 3 urls to top sites
|
|
let links = await NewTabUtils.activityStreamLinks.getTopSites();
|
|
is(
|
|
links[0].url,
|
|
baseURL.replace("${i}", 3),
|
|
"Top site has been successfully added"
|
|
);
|
|
is(
|
|
links[1].url,
|
|
baseURL.replace("${i}", 2),
|
|
"Top site has been successfully added"
|
|
);
|
|
is(
|
|
links[2].url,
|
|
baseURL.replace("${i}", 1),
|
|
"Top site has been successfully added"
|
|
);
|
|
|
|
// Now, add a pinned site so we can also fetch a screenshot for that
|
|
const pinnedSite = { url: baseURL.replace("${i}", 4) };
|
|
NewTabUtils.pinnedLinks.pin(pinnedSite, 0);
|
|
|
|
// Check that the correct sites will capture screenshots
|
|
gBrowserThumbnails.clearTopSiteURLCache();
|
|
let topSites = await gBrowserThumbnails._topSiteURLs;
|
|
ok(
|
|
topSites.includes("http://mozilla1.com/"),
|
|
"Top site did not have a rich icon - get a screenshot"
|
|
);
|
|
ok(
|
|
topSites.includes("http://mozilla3.com/"),
|
|
"Top site did not have an icon - get a screenshot"
|
|
);
|
|
ok(
|
|
topSites.includes("http://mozilla4.com/"),
|
|
"Site is pinned - get a screenshot"
|
|
);
|
|
ok(
|
|
!topSites.includes("http://mozilla2.com/"),
|
|
"Top site had a rich icon - do not get a screenshot"
|
|
);
|
|
|
|
// Clean up
|
|
NewTabUtils.pinnedLinks.unpin(pinnedSite);
|
|
await PlacesUtils.history.clear();
|
|
});
|