forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			89 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
"use strict";
 | 
						|
 | 
						|
/**
 | 
						|
 * Check that customize mode doesn't break when its tab is reloaded.
 | 
						|
 */
 | 
						|
add_task(async function reload_tab() {
 | 
						|
  let initialTab = gBrowser.selectedTab;
 | 
						|
  let customizeTab = BrowserTestUtils.addTab(gBrowser, "about:blank");
 | 
						|
  gCustomizeMode.setTab(customizeTab);
 | 
						|
  let customizationContainer = document.getElementById(
 | 
						|
    "customization-container"
 | 
						|
  );
 | 
						|
 | 
						|
  is(
 | 
						|
    customizationContainer.clientWidth,
 | 
						|
    0,
 | 
						|
    "Customization container shouldn't be visible (X)"
 | 
						|
  );
 | 
						|
  is(
 | 
						|
    customizationContainer.clientHeight,
 | 
						|
    0,
 | 
						|
    "Customization container shouldn't be visible (Y)"
 | 
						|
  );
 | 
						|
 | 
						|
  let customizePromise = BrowserTestUtils.waitForEvent(
 | 
						|
    gNavToolbox,
 | 
						|
    "customizationready"
 | 
						|
  );
 | 
						|
  gCustomizeMode.enter();
 | 
						|
  await customizePromise;
 | 
						|
 | 
						|
  let tabReloaded = new Promise(resolve => {
 | 
						|
    gBrowser.addTabsProgressListener({
 | 
						|
      async onLocationChange(aBrowser) {
 | 
						|
        if (customizeTab.linkedBrowser == aBrowser) {
 | 
						|
          gBrowser.removeTabsProgressListener(this);
 | 
						|
          await Promise.resolve();
 | 
						|
          resolve();
 | 
						|
        }
 | 
						|
      },
 | 
						|
    });
 | 
						|
  });
 | 
						|
  gBrowser.reloadTab(customizeTab);
 | 
						|
  await tabReloaded;
 | 
						|
 | 
						|
  is(
 | 
						|
    customizeTab.getAttribute("customizemode"),
 | 
						|
    "true",
 | 
						|
    "Tab should be in customize mode"
 | 
						|
  );
 | 
						|
  ok(
 | 
						|
    customizationContainer.clientWidth > 0,
 | 
						|
    "Customization container should be visible (X)"
 | 
						|
  );
 | 
						|
  ok(
 | 
						|
    customizationContainer.clientHeight > 0,
 | 
						|
    "Customization container should be visible (Y)"
 | 
						|
  );
 | 
						|
 | 
						|
  customizePromise = BrowserTestUtils.waitForEvent(
 | 
						|
    gNavToolbox,
 | 
						|
    "aftercustomization"
 | 
						|
  );
 | 
						|
  await BrowserTestUtils.switchTab(gBrowser, initialTab);
 | 
						|
  await customizePromise;
 | 
						|
 | 
						|
  customizePromise = BrowserTestUtils.waitForEvent(
 | 
						|
    gNavToolbox,
 | 
						|
    "customizationready"
 | 
						|
  );
 | 
						|
  await BrowserTestUtils.switchTab(gBrowser, customizeTab);
 | 
						|
  await customizePromise;
 | 
						|
 | 
						|
  is(
 | 
						|
    customizeTab.getAttribute("customizemode"),
 | 
						|
    "true",
 | 
						|
    "Tab should still be in customize mode"
 | 
						|
  );
 | 
						|
  ok(
 | 
						|
    customizationContainer.clientWidth > 0,
 | 
						|
    "Customization container should still be visible (X)"
 | 
						|
  );
 | 
						|
  ok(
 | 
						|
    customizationContainer.clientHeight > 0,
 | 
						|
    "Customization container should still be visible (Y)"
 | 
						|
  );
 | 
						|
 | 
						|
  await endCustomizing();
 | 
						|
});
 |