summaryrefslogtreecommitdiffstats
path: root/toolkit/components/thumbnails/test/browser_thumbnails_bg_topsites.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/thumbnails/test/browser_thumbnails_bg_topsites.js')
-rw-r--r--toolkit/components/thumbnails/test/browser_thumbnails_bg_topsites.js76
1 files changed, 76 insertions, 0 deletions
diff --git a/toolkit/components/thumbnails/test/browser_thumbnails_bg_topsites.js b/toolkit/components/thumbnails/test/browser_thumbnails_bg_topsites.js
new file mode 100644
index 0000000000..fac37aff4a
--- /dev/null
+++ b/toolkit/components/thumbnails/test/browser_thumbnails_bg_topsites.js
@@ -0,0 +1,76 @@
+/* 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();
+});