forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			119 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			119 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| "use strict";
 | |
| 
 | |
| // Test selecting and removing partial sites
 | |
| add_task(async function() {
 | |
|   await SiteDataTestUtils.clear();
 | |
| 
 | |
|   let hosts = await addTestData([
 | |
|     {
 | |
|       usage: 1024,
 | |
|       origin: "https://127.0.0.1",
 | |
|       persisted: false,
 | |
|     },
 | |
|     {
 | |
|       usage: 1024 * 4,
 | |
|       origin: "http://cinema.bar.com",
 | |
|       persisted: true,
 | |
|     },
 | |
|     {
 | |
|       usage: 1024 * 3,
 | |
|       origin: "http://email.bar.com",
 | |
|       persisted: false,
 | |
|     },
 | |
|     {
 | |
|       usage: 1024 * 2,
 | |
|       origin: "https://s3-us-west-2.amazonaws.com",
 | |
|       persisted: true,
 | |
|     },
 | |
|     {
 | |
|       usage: 1024 * 6,
 | |
|       origin: "https://account.xyz.com",
 | |
|       persisted: true,
 | |
|     },
 | |
|     {
 | |
|       usage: 1024 * 5,
 | |
|       origin: "https://shopping.xyz.com",
 | |
|       persisted: false,
 | |
|     },
 | |
|     {
 | |
|       usage: 1024 * 5,
 | |
|       origin: "https://example.com",
 | |
|       persisted: false,
 | |
|     },
 | |
|     {
 | |
|       usage: 1024 * 5,
 | |
|       origin: "https://example.net",
 | |
|       persisted: false,
 | |
|     },
 | |
|   ]);
 | |
| 
 | |
|   // Align the order of test hosts with the order of the site data table.
 | |
|   hosts.sort();
 | |
| 
 | |
|   let updatePromise = promiseSiteDataManagerSitesUpdated();
 | |
|   await openPreferencesViaOpenPreferencesAPI("privacy", { leaveOpen: true });
 | |
|   await updatePromise;
 | |
|   await openSiteDataSettingsDialog();
 | |
| 
 | |
|   let doc = gBrowser.selectedBrowser.contentDocument;
 | |
| 
 | |
|   // Test the initial state
 | |
|   assertSitesListed(doc, hosts);
 | |
|   let win = gBrowser.selectedBrowser.contentWindow;
 | |
|   let frameDoc = win.gSubDialog._topDialog._frame.contentDocument;
 | |
|   let removeBtn = frameDoc.getElementById("removeSelected");
 | |
|   is(
 | |
|     removeBtn.disabled,
 | |
|     true,
 | |
|     "Should start with disabled removeSelected button"
 | |
|   );
 | |
| 
 | |
|   let hostCol = frameDoc.getElementById("hostCol");
 | |
|   hostCol.click();
 | |
| 
 | |
|   let removeDialogOpenPromise = BrowserTestUtils.promiseAlertDialogOpen(
 | |
|     "accept",
 | |
|     REMOVE_DIALOG_URL
 | |
|   );
 | |
|   let settingsDialogClosePromise = promiseSettingsDialogClose();
 | |
| 
 | |
|   // Select some sites to remove.
 | |
|   let sitesList = frameDoc.getElementById("sitesList");
 | |
|   hosts.slice(0, 2).forEach(host => {
 | |
|     let site = sitesList.querySelector(`richlistitem[host="${host}"]`);
 | |
|     sitesList.addItemToSelection(site);
 | |
|   });
 | |
| 
 | |
|   is(removeBtn.disabled, false, "Should enable the removeSelected button");
 | |
|   removeBtn.doCommand();
 | |
|   is(sitesList.selectedIndex, 0, "Should select next item");
 | |
|   assertSitesListed(doc, hosts.slice(2));
 | |
| 
 | |
|   // Select some other sites to remove with Delete.
 | |
|   hosts.slice(2, 4).forEach(host => {
 | |
|     let site = sitesList.querySelector(`richlistitem[host="${host}"]`);
 | |
|     sitesList.addItemToSelection(site);
 | |
|   });
 | |
| 
 | |
|   is(removeBtn.disabled, false, "Should enable the removeSelected button");
 | |
|   // Move the focus from the search box to the list
 | |
|   sitesList.focus();
 | |
|   EventUtils.synthesizeKey("VK_DELETE");
 | |
|   is(sitesList.selectedIndex, 0, "Should select next item");
 | |
|   assertSitesListed(doc, hosts.slice(4));
 | |
| 
 | |
|   updatePromise = promiseSiteDataManagerSitesUpdated();
 | |
|   let saveBtn = frameDoc.querySelector("dialog").getButton("accept");
 | |
|   saveBtn.doCommand();
 | |
| 
 | |
|   await removeDialogOpenPromise;
 | |
|   await settingsDialogClosePromise;
 | |
| 
 | |
|   await updatePromise;
 | |
|   await openSiteDataSettingsDialog();
 | |
| 
 | |
|   assertSitesListed(doc, hosts.slice(4));
 | |
| 
 | |
|   await SiteDataTestUtils.clear();
 | |
|   BrowserTestUtils.removeTab(gBrowser.selectedTab);
 | |
| });
 | 
