fune/browser/components/uitour/test/browser_UITour4.js
Victor Porof 1f830c96da Bug 1561435 - Format browser/components/, a=automatic-formatting
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D36042

--HG--
extra : source : d3afcafdce650a6f36cebbc126ee93b17f13cf52
2019-07-05 09:53:32 +02:00

550 lines
18 KiB
JavaScript

"use strict";
var gTestTab;
var gContentAPI;
var gContentWindow;
add_task(setup_UITourTest);
add_UITour_task(
async function test_highligh_between_pageActionButtonOnUrlbar_and_buttonOnPageActionPanel() {
let highlight = document.getElementById("UITourHighlight");
is_element_hidden(highlight, "Highlight should initially be hidden");
// Test highlighting the page action button on the urlbar
let pageActionPanel = BrowserPageActions.panelNode;
let highlightVisiblePromise = elementVisiblePromise(
highlight,
"Should show highlight"
);
gContentAPI.showHighlight("pageActionButton");
await highlightVisiblePromise;
is(
pageActionPanel.state,
"closed",
"Shouldn't open the page action panel while highlighting the pageActionButton"
);
is(
getShowHighlightTargetName(),
"pageActionButton",
"Should highlight the pageActionButton"
);
// Test switching the highlight to the copyURL button on the page action panel
let panelShownPromise = promisePanelElementShown(window, pageActionPanel);
highlightVisiblePromise = elementVisiblePromise(
highlight,
"Should show highlight"
);
gContentAPI.showHighlight("pageAction-copyURL");
await highlightVisiblePromise;
await panelShownPromise;
is(
pageActionPanel.state,
"open",
"Should open the page action panel for highlighting the pageAction-copyURL"
);
is(
getShowHighlightTargetName(),
"pageAction-copyURL",
"Should highlight the pageAction-copyURL"
);
// Test hiding highlight
let panelHiddenPromise = promisePanelElementHidden(window, pageActionPanel);
let highlightHiddenPromise = elementHiddenPromise(
highlight,
"Should hide highlight"
);
gContentAPI.hideHighlight();
await highlightHiddenPromise;
await panelHiddenPromise;
is(
pageActionPanel.state,
"closed",
"Should close the page action panel after hiding highlight"
);
}
);
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"
);
// Test switching the highlight to the copyURL button on the page action panel
let appMenuHiddenPromise = promisePanelElementHidden(window, appMenu);
let pageActionPanelShownPromise = promisePanelElementShown(
window,
pageActionPanel
);
highlightVisiblePromise = elementVisiblePromise(
highlight,
"Should show highlight"
);
gContentAPI.showHighlight("pageAction-copyURL");
await appMenuHiddenPromise;
await pageActionPanelShownPromise;
await highlightVisiblePromise;
is(
appMenu.state,
"closed",
"Should close the app menu after no more highlight for the addons button"
);
is(
pageActionPanel.state,
"open",
"Should open the page action panel to highlight the copyURL button"
);
is(
getShowHighlightTargetName(),
"pageAction-copyURL",
"Should highlight the copyURL button on the page action panel"
);
// Test hiding highlight
let pageActionPanelHiddenPromise = promisePanelElementHidden(
window,
pageActionPanel
);
let highlightHiddenPromise = elementHiddenPromise(
highlight,
"Should hide highlight"
);
gContentAPI.hideHighlight();
await pageActionPanelHiddenPromise;
await highlightHiddenPromise;
is(
appMenu.state,
"closed",
"Shouldn't open the app menu after hiding highlight"
);
is(
pageActionPanel.state,
"closed",
"Should close the page action panel after hiding highlight"
);
}
);
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;
// Test showing info tooltip on the emailLink button on the page action panel
let pageActionPanelShownPromise = promisePanelElementShown(
window,
pageActionPanel
);
let tooltipVisiblePromise = elementVisiblePromise(
tooltip,
"Should show info tooltip"
);
await showInfoPromise("pageAction-emailLink", "title", "text");
await pageActionPanelShownPromise;
await tooltipVisiblePromise;
is(appMenu.state, "closed", "Shouldn't open the app menu");
is(
pageActionPanel.state,
"open",
"Should open the page action panel to show info on the copyURL button"
);
is(
getShowInfoTargetName(),
"pageAction-emailLink",
"Should show info tooltip on the emailLink button on the page action panel"
);
// Test switching info tooltip to the customize button on the app menu
let appMenuShownPromise = promisePanelElementShown(window, appMenu);
let pageActionPanelHiddenPromise = promisePanelElementHidden(
window,
pageActionPanel
);
tooltipVisiblePromise = elementVisiblePromise(
tooltip,
"Should show info tooltip"
);
await showInfoPromise("customize", "title", "text");
await appMenuShownPromise;
await pageActionPanelHiddenPromise;
await tooltipVisiblePromise;
is(
appMenu.state,
"open",
"Should open the app menu to show info on the customize button"
);
is(
pageActionPanel.state,
"closed",
"Should close the page action panel after no more show info for the copyURL button"
);
is(
getShowInfoTargetName(),
"customize",
"Should show info tooltip on the customize 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;
// Test highlighting the sendToDevice button on the page action panel
let pageActionPanelShownPromise = promisePanelElementShown(
window,
pageActionPanel
);
let highlightVisiblePromise = elementVisiblePromise(
highlight,
"Should show highlight"
);
gContentAPI.showHighlight("pageAction-sendToDevice");
await pageActionPanelShownPromise;
await highlightVisiblePromise;
is(appMenu.state, "closed", "Shouldn't open the app menu");
is(
pageActionPanel.state,
"open",
"Should open the page action panel to highlight the sendToDevice button"
);
is(
getShowHighlightTargetName(),
"pageAction-sendToDevice",
"Should highlight the sendToDevice button on the page action panel"
);
// 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 pageActionPanelHiddenPromise = promisePanelElementHidden(
window,
pageActionPanel
);
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"
);
// Test highlighting the sendToDevice button on the page action panel
let pageActionPanelShownPromise = promisePanelElementShown(
window,
pageActionPanel
);
let highlightVisiblePromise = elementVisiblePromise(
highlight,
"Should show highlight"
);
let appMenuHiddenPromise = promisePanelElementHidden(window, appMenu);
let tooltipHiddenPromise = elementHiddenPromise(
tooltip,
"Should hide info"
);
gContentAPI.showHighlight("pageAction-sendToDevice");
await pageActionPanelShownPromise;
await highlightVisiblePromise;
await appMenuHiddenPromise;
await tooltipHiddenPromise;
is(appMenu.state, "closed", "Should close the app menu");
is(
pageActionPanel.state,
"open",
"Should open the page action panel to highlight the sendToDevice button"
);
is(
getShowHighlightTargetName(),
"pageAction-sendToDevice",
"Should highlight the sendToDevice button on the page action panel"
);
// Test hiding highlight
let pageActionPanelHiddenPromise = promisePanelElementHidden(
window,
pageActionPanel
);
let highlightHiddenPromise = elementHiddenPromise(
highlight,
"Should hide highlight"
);
gContentAPI.hideHighlight();
await pageActionPanelHiddenPromise;
await highlightHiddenPromise;
is(
pageActionPanel.state,
"closed",
"Should close the page action panel after hiding highlight"
);
}
);
add_UITour_task(
async function test_show_appMenu_and_highligh_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 explicity asking for opening the app menu
let appMenuShownPromise = promisePanelElementShown(window, appMenu);
gContentAPI.showMenu("appMenu");
await appMenuShownPromise;
is(appMenu.state, "open", "Should open the app menu");
is(pageActionPanel.state, "closed", "Shouldn't open the page action panel");
// Test highlighting the sendToDevice button on the page action panel
let pageActionPanelShownPromise = promisePanelElementShown(
window,
pageActionPanel
);
let highlightVisiblePromise = elementVisiblePromise(
highlight,
"Should show highlight"
);
gContentAPI.showHighlight("pageAction-sendToDevice");
await pageActionPanelShownPromise;
await highlightVisiblePromise;
is(
appMenu.state,
"open",
"Shouldn't close the app menu because it is opened explictly by api user."
);
is(
pageActionPanel.state,
"open",
"Should open the page action panel to highlight the sendToDevice button"
);
is(
getShowHighlightTargetName(),
"pageAction-sendToDevice",
"Should highlight the sendToDevice button on the page action panel"
);
// Test hiding the app menu wouldn't affect the highlight on the page action panel
let appMenuHiddenPromise = promisePanelElementHidden(window, appMenu);
gContentAPI.hideMenu("appMenu");
await appMenuHiddenPromise;
is_element_visible(highlight, "Highlight should still be visible");
is(appMenu.state, "closed", "Should close the app menu");
is(pageActionPanel.state, "open", "Shouldn't close the page action panel");
is(
getShowHighlightTargetName(),
"pageAction-sendToDevice",
"Should still highlight the sendToDevice button on the page action panel"
);
// Test hiding highlight
let pageActionPanelHiddenPromise = promisePanelElementHidden(
window,
pageActionPanel
);
let highlightHiddenPromise = elementHiddenPromise(
highlight,
"Should hide highlight"
);
gContentAPI.hideHighlight();
await pageActionPanelHiddenPromise;
await highlightHiddenPromise;
is(appMenu.state, "closed", "Shouldn't open the app menu");
is(
pageActionPanel.state,
"closed",
"Should close the page action panel after hiding highlight"
);
}
);
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 explicity asking for opening the page action panel
let pageActionPanelShownPromise = promisePanelElementShown(
window,
pageActionPanel
);
gContentAPI.showMenu("pageActionPanel");
await pageActionPanelShownPromise;
is(appMenu.state, "closed", "Shouldn't open the app menu");
is(pageActionPanel.state, "open", "Should open the page action panel");
// 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,
"open",
"Shouldn't close the page action panel because it is opened explictly by api user."
);
is(
getShowInfoTargetName(),
"privateWindow",
"Should show info tooltip on the privateWindow button on the app menu"
);
// Test hiding the page action panel wouldn't affect the info tooltip on the app menu
let pageActionPanelHiddenPromise = promisePanelElementHidden(
window,
pageActionPanel
);
gContentAPI.hideMenu("pageActionPanel");
await pageActionPanelHiddenPromise;
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");
}
);