forked from mirrors/gecko-dev
		
	This returns a Set of all registered toolbar areas that are collapsed by default. Differential Revision: https://phabricator.services.mozilla.com/D163021
		
			
				
	
	
		
			112 lines
		
	
	
	
		
			3.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			112 lines
		
	
	
	
		
			3.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/* Any copyright is dedicated to the Public Domain.
 | 
						|
   http://creativecommons.org/publicdomain/zero/1.0/ */
 | 
						|
 | 
						|
"use strict";
 | 
						|
 | 
						|
/**
 | 
						|
 * Checks that CustomizableUI reports the expected collapsed toolbar IDs.
 | 
						|
 *
 | 
						|
 * Note: on macOS, expectations for CustomizableUI.AREA_MENUBAR are
 | 
						|
 * automatically skipped since that area isn't available on that platform.
 | 
						|
 *
 | 
						|
 * @param {string[]} The IDs of the expected collapsed toolbars.
 | 
						|
 */
 | 
						|
function assertCollapsedToolbarIds(expected) {
 | 
						|
  if (AppConstants.platform == "macosx") {
 | 
						|
    let menubarIndex = expected.indexOf(CustomizableUI.AREA_MENUBAR);
 | 
						|
    if (menubarIndex != -1) {
 | 
						|
      expected.splice(menubarIndex, 1);
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  let collapsedIds = CustomizableUI.getCollapsedToolbarIds(window);
 | 
						|
  Assert.equal(collapsedIds.size, expected.length);
 | 
						|
  for (let expectedId of expected) {
 | 
						|
    Assert.ok(
 | 
						|
      collapsedIds.has(expectedId),
 | 
						|
      `${expectedId} should be collapsed`
 | 
						|
    );
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
registerCleanupFunction(async () => {
 | 
						|
  await CustomizableUI.reset();
 | 
						|
});
 | 
						|
 | 
						|
/**
 | 
						|
 * Tests that CustomizableUI.getCollapsedToolbarIds will return the IDs of
 | 
						|
 * toolbars that are collapsed, or menubars that are autohidden.
 | 
						|
 */
 | 
						|
add_task(async function test_toolbar_collapsed_states() {
 | 
						|
  // By default, we expect the menubar and the bookmarks toolbar to be
 | 
						|
  // collapsed.
 | 
						|
  assertCollapsedToolbarIds([
 | 
						|
    CustomizableUI.AREA_BOOKMARKS,
 | 
						|
    CustomizableUI.AREA_MENUBAR,
 | 
						|
  ]);
 | 
						|
 | 
						|
  let bookmarksToolbar = document.getElementById(CustomizableUI.AREA_BOOKMARKS);
 | 
						|
  // Make sure we're configured to show the bookmarks toolbar on about:newtab.
 | 
						|
  setToolbarVisibility(bookmarksToolbar, "newtab");
 | 
						|
 | 
						|
  let newTab = await BrowserTestUtils.openNewForegroundTab({
 | 
						|
    gBrowser,
 | 
						|
    opening: "about:newtab",
 | 
						|
    waitForLoad: false,
 | 
						|
  });
 | 
						|
  // Now that we've opened about:newtab, the bookmarks toolbar should now
 | 
						|
  // be visible.
 | 
						|
  assertCollapsedToolbarIds([CustomizableUI.AREA_MENUBAR]);
 | 
						|
  await BrowserTestUtils.removeTab(newTab);
 | 
						|
 | 
						|
  // And with about:newtab closed again, the bookmarks toolbar should be
 | 
						|
  // reported as collapsed.
 | 
						|
  assertCollapsedToolbarIds([
 | 
						|
    CustomizableUI.AREA_BOOKMARKS,
 | 
						|
    CustomizableUI.AREA_MENUBAR,
 | 
						|
  ]);
 | 
						|
 | 
						|
  // Make sure we're configured to show the bookmarks toolbar on about:newtab.
 | 
						|
  setToolbarVisibility(bookmarksToolbar, "always");
 | 
						|
  assertCollapsedToolbarIds([CustomizableUI.AREA_MENUBAR]);
 | 
						|
 | 
						|
  setToolbarVisibility(bookmarksToolbar, "never");
 | 
						|
  assertCollapsedToolbarIds([
 | 
						|
    CustomizableUI.AREA_BOOKMARKS,
 | 
						|
    CustomizableUI.AREA_MENUBAR,
 | 
						|
  ]);
 | 
						|
 | 
						|
  if (AppConstants.platform != "macosx") {
 | 
						|
    // We'll still consider the menubar collapsed by default, even if it's being temporarily
 | 
						|
    // shown via the alt key.
 | 
						|
    let menubarActive = BrowserTestUtils.waitForEvent(
 | 
						|
      window,
 | 
						|
      "DOMMenuBarActive"
 | 
						|
    );
 | 
						|
    EventUtils.synthesizeKey("VK_ALT", {});
 | 
						|
    await menubarActive;
 | 
						|
    assertCollapsedToolbarIds([
 | 
						|
      CustomizableUI.AREA_BOOKMARKS,
 | 
						|
      CustomizableUI.AREA_MENUBAR,
 | 
						|
    ]);
 | 
						|
    let menubarInactive = BrowserTestUtils.waitForEvent(
 | 
						|
      window,
 | 
						|
      "DOMMenuBarInactive"
 | 
						|
    );
 | 
						|
    EventUtils.synthesizeKey("VK_ESCAPE", {});
 | 
						|
    await menubarInactive;
 | 
						|
    assertCollapsedToolbarIds([
 | 
						|
      CustomizableUI.AREA_BOOKMARKS,
 | 
						|
      CustomizableUI.AREA_MENUBAR,
 | 
						|
    ]);
 | 
						|
 | 
						|
    let menubar = document.getElementById(CustomizableUI.AREA_MENUBAR);
 | 
						|
    setToolbarVisibility(menubar, true);
 | 
						|
    assertCollapsedToolbarIds([CustomizableUI.AREA_BOOKMARKS]);
 | 
						|
    setToolbarVisibility(menubar, false);
 | 
						|
    assertCollapsedToolbarIds([
 | 
						|
      CustomizableUI.AREA_BOOKMARKS,
 | 
						|
      CustomizableUI.AREA_MENUBAR,
 | 
						|
    ]);
 | 
						|
  }
 | 
						|
});
 |