From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- .../test/tabs/browser_multiselect_tabs_reload.js | 82 ++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 browser/base/content/test/tabs/browser_multiselect_tabs_reload.js (limited to 'browser/base/content/test/tabs/browser_multiselect_tabs_reload.js') diff --git a/browser/base/content/test/tabs/browser_multiselect_tabs_reload.js b/browser/base/content/test/tabs/browser_multiselect_tabs_reload.js new file mode 100644 index 0000000000..7a68fd66d5 --- /dev/null +++ b/browser/base/content/test/tabs/browser_multiselect_tabs_reload.js @@ -0,0 +1,82 @@ +async function tabLoaded(tab) { + const browser = gBrowser.getBrowserForTab(tab); + await BrowserTestUtils.browserLoaded(browser); + return true; +} + +add_task(async function test_usingTabContextMenu() { + let tab1 = await addTab(); + let tab2 = await addTab(); + let tab3 = await addTab(); + + let menuItemReloadTab = document.getElementById("context_reloadTab"); + let menuItemReloadSelectedTabs = document.getElementById( + "context_reloadSelectedTabs" + ); + + await BrowserTestUtils.switchTab(gBrowser, tab1); + await triggerClickOn(tab2, { ctrlKey: true }); + + ok(tab1.multiselected, "Tab1 is multi-selected"); + ok(tab2.multiselected, "Tab2 is multi-selected"); + ok(!tab3.multiselected, "Tab3 is not multi-selected"); + + updateTabContextMenu(tab3); + is(menuItemReloadTab.hidden, false, "Reload Tab is visible"); + is(menuItemReloadSelectedTabs.hidden, true, "Reload Tabs is hidden"); + + updateTabContextMenu(tab2); + is(menuItemReloadTab.hidden, true, "Reload Tab is hidden"); + is(menuItemReloadSelectedTabs.hidden, false, "Reload Tabs is visible"); + + let tab1Loaded = tabLoaded(tab1); + let tab2Loaded = tabLoaded(tab2); + menuItemReloadSelectedTabs.click(); + await tab1Loaded; + await tab2Loaded; + + // We got here because tab1 and tab2 are reloaded. Otherwise the test would have timed out and failed. + ok(true, "Tab1 and Tab2 are reloaded"); + + BrowserTestUtils.removeTab(tab1); + BrowserTestUtils.removeTab(tab2); + BrowserTestUtils.removeTab(tab3); +}); + +add_task(async function test_usingKeyboardShortcuts() { + let keys = [ + ["R", { accelKey: true }], + ["R", { accelKey: true, shift: true }], + ["VK_F5", {}], + ]; + + if (AppConstants.platform != "macosx") { + keys.push(["VK_F5", { accelKey: true }]); + } + + for (let key of keys) { + let tab1 = await addTab(); + let tab2 = await addTab(); + let tab3 = await addTab(); + + await BrowserTestUtils.switchTab(gBrowser, tab1); + await triggerClickOn(tab2, { ctrlKey: true }); + + ok(tab1.multiselected, "Tab1 is multi-selected"); + ok(tab2.multiselected, "Tab2 is multi-selected"); + ok(!tab3.multiselected, "Tab3 is not multi-selected"); + + let tab1Loaded = tabLoaded(tab1); + let tab2Loaded = tabLoaded(tab2); + EventUtils.synthesizeKey(key[0], key[1]); + await tab1Loaded; + await tab2Loaded; + + // We got here because tab1 and tab2 are reloaded. Otherwise the test would have timed out and failed. + ok(true, "Tab1 and Tab2 are reloaded"); + + BrowserTestUtils.removeTab(tab1); + BrowserTestUtils.removeTab(tab2); + BrowserTestUtils.removeTab(tab3); + } +}); -- cgit v1.2.3