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");
|
|
}
|
|
);
|