forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			90 lines
		
	
	
	
		
			4.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
	
		
			4.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
async function waitForNoAnimation(elt) {
 | 
						|
  return BrowserTestUtils.waitForCondition(() => !elt.hasAttribute("animate"));
 | 
						|
}
 | 
						|
 | 
						|
async function getAnimatePromise(elt) {
 | 
						|
  return BrowserTestUtils.waitForAttribute("animate", elt)
 | 
						|
    .then(() => Assert.ok(true, `${elt.id} should animate`));
 | 
						|
}
 | 
						|
 | 
						|
function stopReloadMutationCallback() {
 | 
						|
  Assert.ok(false, "stop-reload's animate attribute should not have been mutated");
 | 
						|
}
 | 
						|
 | 
						|
add_task(async function checkDontShowStopOnNewTab() {
 | 
						|
  let stopReloadContainer = document.getElementById("stop-reload-button");
 | 
						|
  let stopReloadContainerObserver = new MutationObserver(stopReloadMutationCallback);
 | 
						|
 | 
						|
  await waitForNoAnimation(stopReloadContainer);
 | 
						|
  stopReloadContainerObserver.observe(stopReloadContainer, { attributeFilter: ["animate"]});
 | 
						|
  let tab = await BrowserTestUtils.openNewForegroundTab({gBrowser,
 | 
						|
                                                        opening: "about:home",
 | 
						|
                                                        waitForStateStop: true});
 | 
						|
  await BrowserTestUtils.removeTab(tab);
 | 
						|
 | 
						|
  Assert.ok(true, "Test finished: stop-reload does not animate when navigating to local URI on new tab");
 | 
						|
  stopReloadContainerObserver.disconnect();
 | 
						|
});
 | 
						|
 | 
						|
add_task(async function checkDontShowStopFromLocalURI() {
 | 
						|
  let stopReloadContainer = document.getElementById("stop-reload-button");
 | 
						|
  let stopReloadContainerObserver = new MutationObserver(stopReloadMutationCallback);
 | 
						|
 | 
						|
  let tab = await BrowserTestUtils.openNewForegroundTab({gBrowser,
 | 
						|
                                                        opening: "about:home",
 | 
						|
                                                        waitForStateStop: true});
 | 
						|
  await waitForNoAnimation(stopReloadContainer);
 | 
						|
  stopReloadContainerObserver.observe(stopReloadContainer, { attributeFilter: ["animate"]});
 | 
						|
  await BrowserTestUtils.loadURI(tab.linkedBrowser, "about:mozilla");
 | 
						|
  await BrowserTestUtils.removeTab(tab);
 | 
						|
 | 
						|
  Assert.ok(true, "Test finished: stop-reload does not animate when navigating between local URIs");
 | 
						|
  stopReloadContainerObserver.disconnect();
 | 
						|
});
 | 
						|
 | 
						|
add_task(async function checkDontShowStopFromNonLocalURI() {
 | 
						|
  let stopReloadContainer = document.getElementById("stop-reload-button");
 | 
						|
  let stopReloadContainerObserver = new MutationObserver(stopReloadMutationCallback);
 | 
						|
 | 
						|
  let tab = await BrowserTestUtils.openNewForegroundTab({gBrowser,
 | 
						|
                                                        opening: "https://example.com",
 | 
						|
                                                        waitForStateStop: true});
 | 
						|
  await waitForNoAnimation(stopReloadContainer);
 | 
						|
  stopReloadContainerObserver.observe(stopReloadContainer, { attributeFilter: ["animate"]});
 | 
						|
  await BrowserTestUtils.loadURI(tab.linkedBrowser, "about:mozilla");
 | 
						|
  await BrowserTestUtils.removeTab(tab);
 | 
						|
 | 
						|
  Assert.ok(true, "Test finished: stop-reload does not animate when navigating to local URI from non-local URI");
 | 
						|
  stopReloadContainerObserver.disconnect();
 | 
						|
});
 | 
						|
 | 
						|
add_task(async function checkDoShowStopOnNewTab() {
 | 
						|
  let stopReloadContainer = document.getElementById("stop-reload-button");
 | 
						|
  let animatePromise = getAnimatePromise(stopReloadContainer);
 | 
						|
 | 
						|
  await waitForNoAnimation(stopReloadContainer);
 | 
						|
  let tab = await BrowserTestUtils.openNewForegroundTab({gBrowser,
 | 
						|
                                                        opening: "https://example.com",
 | 
						|
                                                        waitForStateStop: true});
 | 
						|
  await animatePromise;
 | 
						|
  await waitForNoAnimation(stopReloadContainer);
 | 
						|
  await BrowserTestUtils.removeTab(tab);
 | 
						|
 | 
						|
  info("Test finished: stop-reload animates when navigating to non-local URI on new tab");
 | 
						|
});
 | 
						|
 | 
						|
add_task(async function checkDoShowStopFromLocalURI() {
 | 
						|
  let stopReloadContainer = document.getElementById("stop-reload-button");
 | 
						|
 | 
						|
  await waitForNoAnimation(stopReloadContainer);
 | 
						|
  let tab = await BrowserTestUtils.openNewForegroundTab({gBrowser,
 | 
						|
                                                        opening: "about:home",
 | 
						|
                                                        waitForStateStop: true});
 | 
						|
  let animatePromise = getAnimatePromise(stopReloadContainer);
 | 
						|
  BrowserTestUtils.loadURI(tab.linkedBrowser, "https://example.com");
 | 
						|
  await animatePromise;
 | 
						|
  await waitForNoAnimation(stopReloadContainer);
 | 
						|
  await BrowserTestUtils.removeTab(tab);
 | 
						|
 | 
						|
  info("Test finished: stop-reload animates when navigating local URI from non-local URI");
 | 
						|
});
 |