forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			235 lines
		
	
	
	
		
			7.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			235 lines
		
	
	
	
		
			7.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
"use strict";
 | 
						|
 | 
						|
var gTestTab;
 | 
						|
var gContentAPI;
 | 
						|
 | 
						|
add_task(setup_UITourTest);
 | 
						|
 | 
						|
add_UITour_task(
 | 
						|
  async function test_highligh_between_buttonOnAppMenu_and_buttonOnPageActionPanel() {
 | 
						|
    let highlight = document.getElementById("UITourHighlight");
 | 
						|
    is_element_hidden(highlight, "Highlight should initially be hidden");
 | 
						|
 | 
						|
    let appMenu = window.PanelUI.panel;
 | 
						|
    let pageActionPanel = BrowserPageActions.panelNode;
 | 
						|
 | 
						|
    // Test highlighting the addons button on the app menu
 | 
						|
    let appMenuShownPromise = promisePanelElementShown(window, appMenu);
 | 
						|
    let highlightVisiblePromise = elementVisiblePromise(
 | 
						|
      highlight,
 | 
						|
      "Should show highlight"
 | 
						|
    );
 | 
						|
    gContentAPI.showHighlight("addons");
 | 
						|
    await appMenuShownPromise;
 | 
						|
    await highlightVisiblePromise;
 | 
						|
    is(
 | 
						|
      appMenu.state,
 | 
						|
      "open",
 | 
						|
      "Should open the app menu to highlight the addons button"
 | 
						|
    );
 | 
						|
    is(pageActionPanel.state, "closed", "Shouldn't open the page action panel");
 | 
						|
    is(
 | 
						|
      getShowHighlightTargetName(),
 | 
						|
      "addons",
 | 
						|
      "Should highlight the addons button on the app menu"
 | 
						|
    );
 | 
						|
  }
 | 
						|
);
 | 
						|
 | 
						|
add_UITour_task(
 | 
						|
  async function test_showInfo_between_buttonOnPageActionPanel_and_buttonOnAppMenu() {
 | 
						|
    let tooltip = document.getElementById("UITourTooltip");
 | 
						|
    is_element_hidden(tooltip, "Tooltip should initially be hidden");
 | 
						|
 | 
						|
    let appMenu = window.PanelUI.panel;
 | 
						|
    let pageActionPanel = BrowserPageActions.panelNode;
 | 
						|
    let tooltipVisiblePromise = elementVisiblePromise(
 | 
						|
      tooltip,
 | 
						|
      "Should show info tooltip"
 | 
						|
    );
 | 
						|
 | 
						|
    let appMenuShownPromise = promisePanelElementShown(window, appMenu);
 | 
						|
    await showInfoPromise("addons", "title", "text");
 | 
						|
    await appMenuShownPromise;
 | 
						|
    await tooltipVisiblePromise;
 | 
						|
    is(
 | 
						|
      appMenu.state,
 | 
						|
      "open",
 | 
						|
      "Should open the app menu to show info on the addons button"
 | 
						|
    );
 | 
						|
    is(
 | 
						|
      pageActionPanel.state,
 | 
						|
      "closed",
 | 
						|
      "Should close the page action panel after no more show info for the copyURL button"
 | 
						|
    );
 | 
						|
    is(
 | 
						|
      getShowInfoTargetName(),
 | 
						|
      "addons",
 | 
						|
      "Should show info tooltip on the addons button on the app menu"
 | 
						|
    );
 | 
						|
 | 
						|
    // Test hiding info tooltip
 | 
						|
    let appMenuHiddenPromise = promisePanelElementHidden(window, appMenu);
 | 
						|
    let tooltipHiddenPromise = elementHiddenPromise(
 | 
						|
      tooltip,
 | 
						|
      "Should hide info"
 | 
						|
    );
 | 
						|
    gContentAPI.hideInfo();
 | 
						|
    await appMenuHiddenPromise;
 | 
						|
    await tooltipHiddenPromise;
 | 
						|
    is(appMenu.state, "closed", "Should close the app menu after hiding info");
 | 
						|
    is(
 | 
						|
      pageActionPanel.state,
 | 
						|
      "closed",
 | 
						|
      "Shouldn't open the page action panel after hiding info"
 | 
						|
    );
 | 
						|
  }
 | 
						|
);
 | 
						|
 | 
						|
add_UITour_task(
 | 
						|
  async function test_highlight_buttonOnPageActionPanel_and_showInfo_buttonOnAppMenu() {
 | 
						|
    let highlight = document.getElementById("UITourHighlight");
 | 
						|
    is_element_hidden(highlight, "Highlight should initially be hidden");
 | 
						|
    let tooltip = document.getElementById("UITourTooltip");
 | 
						|
    is_element_hidden(tooltip, "Tooltip should initially be hidden");
 | 
						|
 | 
						|
    let appMenu = window.PanelUI.panel;
 | 
						|
    let pageActionPanel = BrowserPageActions.panelNode;
 | 
						|
    let pageActionPanelHiddenPromise = Promise.resolve();
 | 
						|
 | 
						|
    // Test showing info tooltip on the privateWindow button on the app menu
 | 
						|
    let appMenuShownPromise = promisePanelElementShown(window, appMenu);
 | 
						|
    let tooltipVisiblePromise = elementVisiblePromise(
 | 
						|
      tooltip,
 | 
						|
      "Should show info tooltip"
 | 
						|
    );
 | 
						|
    let highlightHiddenPromise = elementHiddenPromise(
 | 
						|
      highlight,
 | 
						|
      "Should hide highlight"
 | 
						|
    );
 | 
						|
    await showInfoPromise("privateWindow", "title", "text");
 | 
						|
    await appMenuShownPromise;
 | 
						|
    await tooltipVisiblePromise;
 | 
						|
    await pageActionPanelHiddenPromise;
 | 
						|
    await highlightHiddenPromise;
 | 
						|
    is(
 | 
						|
      appMenu.state,
 | 
						|
      "open",
 | 
						|
      "Should open the app menu to show info on the privateWindow button"
 | 
						|
    );
 | 
						|
    is(pageActionPanel.state, "closed", "Should close the page action panel");
 | 
						|
    is(
 | 
						|
      getShowInfoTargetName(),
 | 
						|
      "privateWindow",
 | 
						|
      "Should show info tooltip on the privateWindow button on the app menu"
 | 
						|
    );
 | 
						|
 | 
						|
    // Test hiding info tooltip
 | 
						|
    let appMenuHiddenPromise = promisePanelElementHidden(window, appMenu);
 | 
						|
    let tooltipHiddenPromise = elementHiddenPromise(
 | 
						|
      tooltip,
 | 
						|
      "Should hide info"
 | 
						|
    );
 | 
						|
    gContentAPI.hideInfo();
 | 
						|
    await appMenuHiddenPromise;
 | 
						|
    await tooltipHiddenPromise;
 | 
						|
    is(
 | 
						|
      appMenu.state,
 | 
						|
      "closed",
 | 
						|
      "Should close the app menu after hiding info tooltip"
 | 
						|
    );
 | 
						|
  }
 | 
						|
);
 | 
						|
 | 
						|
add_UITour_task(
 | 
						|
  async function test_showInfo_buttonOnAppMenu_and_highlight_buttonOnPageActionPanel() {
 | 
						|
    let highlight = document.getElementById("UITourHighlight");
 | 
						|
    is_element_hidden(highlight, "Highlight should initially be hidden");
 | 
						|
    let tooltip = document.getElementById("UITourTooltip");
 | 
						|
    is_element_hidden(tooltip, "Tooltip should initially be hidden");
 | 
						|
 | 
						|
    let appMenu = window.PanelUI.panel;
 | 
						|
    let pageActionPanel = BrowserPageActions.panelNode;
 | 
						|
 | 
						|
    // Test showing info tooltip on the privateWindow button on the app menu
 | 
						|
    let appMenuShownPromise = promisePanelElementShown(window, appMenu);
 | 
						|
    let tooltipVisiblePromise = elementVisiblePromise(
 | 
						|
      tooltip,
 | 
						|
      "Should show info tooltip"
 | 
						|
    );
 | 
						|
    await showInfoPromise("privateWindow", "title", "text");
 | 
						|
    await appMenuShownPromise;
 | 
						|
    await tooltipVisiblePromise;
 | 
						|
    is(
 | 
						|
      appMenu.state,
 | 
						|
      "open",
 | 
						|
      "Should open the app menu to show info on the privateWindow button"
 | 
						|
    );
 | 
						|
    is(pageActionPanel.state, "closed", "Shouldn't open the page action panel");
 | 
						|
    is(
 | 
						|
      getShowInfoTargetName(),
 | 
						|
      "privateWindow",
 | 
						|
      "Should show info tooltip on the privateWindow button on the app menu"
 | 
						|
    );
 | 
						|
  }
 | 
						|
);
 | 
						|
 | 
						|
add_UITour_task(
 | 
						|
  async function test_show_pageActionPanel_and_showInfo_buttonOnAppMenu() {
 | 
						|
    let tooltip = document.getElementById("UITourTooltip");
 | 
						|
    is_element_hidden(tooltip, "Tooltip should initially be hidden");
 | 
						|
 | 
						|
    let appMenu = window.PanelUI.panel;
 | 
						|
    let pageActionPanel = BrowserPageActions.panelNode;
 | 
						|
 | 
						|
    // Test showing info tooltip on the privateWindow button on the app menu
 | 
						|
    let appMenuShownPromise = promisePanelElementShown(window, appMenu);
 | 
						|
    let tooltipVisiblePromise = elementVisiblePromise(
 | 
						|
      tooltip,
 | 
						|
      "Should show info tooltip"
 | 
						|
    );
 | 
						|
    await showInfoPromise("privateWindow", "title", "text");
 | 
						|
    await appMenuShownPromise;
 | 
						|
    await tooltipVisiblePromise;
 | 
						|
    is(
 | 
						|
      appMenu.state,
 | 
						|
      "open",
 | 
						|
      "Should open the app menu to show info on the privateWindow button"
 | 
						|
    );
 | 
						|
    is(
 | 
						|
      pageActionPanel.state,
 | 
						|
      "closed",
 | 
						|
      "Check state of the page action panel if it was opened explictly by api user."
 | 
						|
    );
 | 
						|
    is(
 | 
						|
      getShowInfoTargetName(),
 | 
						|
      "privateWindow",
 | 
						|
      "Should show info tooltip on the privateWindow button on the app menu"
 | 
						|
    );
 | 
						|
 | 
						|
    is_element_visible(tooltip, "Tooltip should still be visible");
 | 
						|
    is(appMenu.state, "open", "Shouldn't close the app menu");
 | 
						|
    is(
 | 
						|
      pageActionPanel.state,
 | 
						|
      "closed",
 | 
						|
      "Should close the page action panel after hideMenu"
 | 
						|
    );
 | 
						|
    is(
 | 
						|
      getShowInfoTargetName(),
 | 
						|
      "privateWindow",
 | 
						|
      "Should still show info tooltip on the privateWindow button on the app menu"
 | 
						|
    );
 | 
						|
 | 
						|
    // Test hiding info tooltip
 | 
						|
    let appMenuHiddenPromise = promisePanelElementHidden(window, appMenu);
 | 
						|
    let tooltipHiddenPromise = elementHiddenPromise(
 | 
						|
      tooltip,
 | 
						|
      "Should hide info"
 | 
						|
    );
 | 
						|
    gContentAPI.hideInfo();
 | 
						|
    await appMenuHiddenPromise;
 | 
						|
    await tooltipHiddenPromise;
 | 
						|
    is(appMenu.state, "closed", "Should close the app menu after hideInfo");
 | 
						|
    is(pageActionPanel.state, "closed", "Shouldn't open the page action panel");
 | 
						|
  }
 | 
						|
);
 |