forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			48 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /* Any copyright is dedicated to the Public Domain.
 | |
|    http://creativecommons.org/publicdomain/zero/1.0/ */
 | |
| 
 | |
| "use strict";
 | |
| 
 | |
| /**
 | |
|  * Checks that newtab is updated as its links change.
 | |
|  */
 | |
| add_task(async function() {
 | |
|   // First, start with an empty page.  setLinks will trigger a hidden page
 | |
|   // update because it calls clearHistory.  We need to wait for that update to
 | |
|   // happen so that the next time we wait for a page update below, we catch the
 | |
|   // right update and not the one triggered by setLinks.
 | |
|   let updatedPromise = whenPagesUpdated();
 | |
|   let setLinksPromise = setLinks([]);
 | |
|   await Promise.all([updatedPromise, setLinksPromise]);
 | |
| 
 | |
|   // Strategy: Add some visits, open a new page, check the grid, repeat.
 | |
|   await fillHistoryAndWaitForPageUpdate([1]);
 | |
|   await addNewTabPageTab();
 | |
|   await checkGrid("1,,,,,,,,");
 | |
| 
 | |
|   await fillHistoryAndWaitForPageUpdate([2]);
 | |
|   await addNewTabPageTab();
 | |
|   await checkGrid("2,1,,,,,,,");
 | |
| 
 | |
|   await fillHistoryAndWaitForPageUpdate([1]);
 | |
|   await addNewTabPageTab();
 | |
|   await checkGrid("1,2,,,,,,,");
 | |
| 
 | |
|   await fillHistoryAndWaitForPageUpdate([2, 3, 4]);
 | |
|   await addNewTabPageTab();
 | |
|   await checkGrid("2,1,3,4,,,,,");
 | |
| 
 | |
|   // Make sure these added links have the right type
 | |
|   let type = await performOnCell(1, cell => { return cell.site.link.type });
 | |
|   is(type, "history", "added link is history");
 | |
| });
 | |
| 
 | |
| function fillHistoryAndWaitForPageUpdate(links) {
 | |
|   let updatedPromise = whenPagesUpdated;
 | |
|   let fillHistoryPromise = fillHistory(links.map(link));
 | |
|   return Promise.all([updatedPromise, fillHistoryPromise]);
 | |
| }
 | |
| 
 | |
| function link(id) {
 | |
|   return { url: "http://example" + id + ".com/", title: "site#" + id };
 | |
| }
 | 
