forked from mirrors/gecko-dev
		
	This should make a bit clearer that it is only starting the load, not waiting for its completion. Differential Revision: https://phabricator.services.mozilla.com/D188213
		
			
				
	
	
		
			78 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/* Any copyright is dedicated to the Public Domain.
 | 
						|
   http://creativecommons.org/publicdomain/zero/1.0/ */
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
/*
 | 
						|
 * This test creates multiple panels, one that has been tagged as location specific
 | 
						|
 * and one that isn't. When the location changes, the specific panel should close.
 | 
						|
 * The non-specific panel should remain open.
 | 
						|
 *
 | 
						|
 */
 | 
						|
 | 
						|
add_task(async function () {
 | 
						|
  let specificPanel = document.createXULElement("panel");
 | 
						|
  specificPanel.setAttribute("locationspecific", "true");
 | 
						|
  specificPanel.setAttribute("noautohide", "true");
 | 
						|
  specificPanel.style.height = "100px";
 | 
						|
  specificPanel.style.width = "100px";
 | 
						|
 | 
						|
  let generalPanel = document.createXULElement("panel");
 | 
						|
  generalPanel.setAttribute("noautohide", "true");
 | 
						|
  generalPanel.style.height = "100px";
 | 
						|
  generalPanel.style.width = "100px";
 | 
						|
 | 
						|
  let anchor = document.getElementById(CustomizableUI.AREA_NAVBAR);
 | 
						|
 | 
						|
  anchor.appendChild(specificPanel);
 | 
						|
  anchor.appendChild(generalPanel);
 | 
						|
  is(specificPanel.state, "closed", "specificPanel starts as closed");
 | 
						|
  is(generalPanel.state, "closed", "generalPanel starts as closed");
 | 
						|
 | 
						|
  let specificPanelPromise = BrowserTestUtils.waitForEvent(
 | 
						|
    specificPanel,
 | 
						|
    "popupshown"
 | 
						|
  );
 | 
						|
 | 
						|
  specificPanel.openPopupAtScreen(0, 0);
 | 
						|
 | 
						|
  await specificPanelPromise;
 | 
						|
  is(specificPanel.state, "open", "specificPanel has been opened");
 | 
						|
 | 
						|
  let generalPanelPromise = BrowserTestUtils.waitForEvent(
 | 
						|
    generalPanel,
 | 
						|
    "popupshown"
 | 
						|
  );
 | 
						|
 | 
						|
  generalPanel.openPopupAtScreen(100, 0);
 | 
						|
 | 
						|
  await generalPanelPromise;
 | 
						|
  is(generalPanel.state, "open", "generalPanel has been opened");
 | 
						|
 | 
						|
  let specificPanelHiddenPromise = BrowserTestUtils.waitForEvent(
 | 
						|
    specificPanel,
 | 
						|
    "popuphidden"
 | 
						|
  );
 | 
						|
 | 
						|
  // Simulate a location change, and check which panel closes.
 | 
						|
  let browser = gBrowser.selectedBrowser;
 | 
						|
  let loaded = BrowserTestUtils.browserLoaded(browser);
 | 
						|
  BrowserTestUtils.startLoadingURIString(browser, "http://mochi.test:8888/#0");
 | 
						|
  await loaded;
 | 
						|
 | 
						|
  await specificPanelHiddenPromise;
 | 
						|
 | 
						|
  is(
 | 
						|
    specificPanel.state,
 | 
						|
    "closed",
 | 
						|
    "specificPanel panel is closed after location change"
 | 
						|
  );
 | 
						|
  is(
 | 
						|
    generalPanel.state,
 | 
						|
    "open",
 | 
						|
    "generalPanel is still open after location change"
 | 
						|
  );
 | 
						|
 | 
						|
  specificPanel.remove();
 | 
						|
  generalPanel.remove();
 | 
						|
});
 |