forked from mirrors/gecko-dev
		
	 fac08e5f9c
			
		
	
	
		fac08e5f9c
		
	
	
	
	
		
			
			Depends on D50851 Differential Revision: https://phabricator.services.mozilla.com/D50852 --HG-- extra : moz-landing-system : lando
		
			
				
	
	
		
			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();
 | |
| });
 |