/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ "use strict"; const TEST_PATH = getRootDirectory(gTestPath).replace( "chrome://mochitests/content", "http://example.com" ); add_task(async function () { info("Check history button existence and functionality"); // The TabContextMenu initializes its strings only on a focus or mouseover event. // Calls focus event on the TabContextMenu early in the test. gBrowser.selectedTab.focus(); let tab = await BrowserTestUtils.openNewForegroundTab( gBrowser, TEST_PATH + "dummy_history_item.html" ); BrowserTestUtils.removeTab(tab); tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, TEST_PATH); // will 404, but we don't care. CustomizableUI.addWidgetToArea( "history-panelmenu", CustomizableUI.AREA_FIXED_OVERFLOW_PANEL ); registerCleanupFunction(() => CustomizableUI.reset()); await waitForOverflowButtonShown(); await document.getElementById("nav-bar").overflowable.show(); info("Menu panel was opened"); let historyButton = document.getElementById("history-panelmenu"); ok(historyButton, "History button appears in Panel Menu"); historyButton.click(); let historyPanel = document.getElementById("PanelUI-history"); let promise = BrowserTestUtils.waitForEvent(historyPanel, "ViewShown"); await promise; ok(historyPanel.getAttribute("visible"), "History Panel is in view"); let browserLoaded = BrowserTestUtils.browserLoaded(tab.linkedBrowser); let panelHiddenPromise = promiseOverflowHidden(window); let historyItems = document.getElementById("appMenu_historyMenu"); let historyItemForURL = historyItems.querySelector( "toolbarbutton.bookmark-item[label='Happy History Hero']" ); ok( historyItemForURL, "Should have a history item for the history we just made." ); EventUtils.synthesizeMouseAtCenter(historyItemForURL, {}); await browserLoaded; is( gBrowser.currentURI.spec, TEST_PATH + "dummy_history_item.html", "Should have expected page load" ); await panelHiddenPromise; BrowserTestUtils.removeTab(tab); info("Menu panel was closed"); });