forked from mirrors/gecko-dev
285 lines
16 KiB
JavaScript
285 lines
16 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");
|
|
});
|