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 --- .../tabs/browser_multiselect_tabs_using_Shift.js | 159 +++++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 browser/base/content/test/tabs/browser_multiselect_tabs_using_Shift.js (limited to 'browser/base/content/test/tabs/browser_multiselect_tabs_using_Shift.js') diff --git a/browser/base/content/test/tabs/browser_multiselect_tabs_using_Shift.js b/browser/base/content/test/tabs/browser_multiselect_tabs_using_Shift.js new file mode 100644 index 0000000000..ac647bae3c --- /dev/null +++ b/browser/base/content/test/tabs/browser_multiselect_tabs_using_Shift.js @@ -0,0 +1,159 @@ +add_task(async function noItemsInTheCollectionBeforeShiftClicking() { + let tab1 = await addTab(); + let tab2 = await addTab(); + let tab3 = await addTab(); + let tab4 = await addTab(); + let tab5 = await addTab(); + + await BrowserTestUtils.switchTab(gBrowser, tab1); + + is(gBrowser.selectedTab, tab1, "Tab1 has focus now"); + is(gBrowser.multiSelectedTabsCount, 0, "No tab is multi-selected"); + + gBrowser.hideTab(tab3); + ok(tab3.hidden, "Tab3 is hidden"); + + info("Click on tab4 while holding shift key"); + await triggerClickOn(tab4, { shiftKey: true }); + + ok( + tab1.multiselected && gBrowser._multiSelectedTabsSet.has(tab1), + "Tab1 is multi-selected" + ); + ok( + tab2.multiselected && gBrowser._multiSelectedTabsSet.has(tab2), + "Tab2 is multi-selected" + ); + ok( + !tab3.multiselected && !gBrowser._multiSelectedTabsSet.has(tab3), + "Hidden tab3 is not multi-selected" + ); + ok( + tab4.multiselected && gBrowser._multiSelectedTabsSet.has(tab4), + "Tab4 is multi-selected" + ); + ok( + !tab5.multiselected && !gBrowser._multiSelectedTabsSet.has(tab5), + "Tab5 is not multi-selected" + ); + is(gBrowser.multiSelectedTabsCount, 3, "three multi-selected tabs"); + is(gBrowser.selectedTab, tab1, "Tab1 still has focus"); + + BrowserTestUtils.removeTab(tab1); + BrowserTestUtils.removeTab(tab2); + BrowserTestUtils.removeTab(tab3); + BrowserTestUtils.removeTab(tab4); + BrowserTestUtils.removeTab(tab5); +}); + +add_task(async function itemsInTheCollectionBeforeShiftClicking() { + let tab1 = await addTab(); + let tab2 = await addTab(); + let tab3 = await addTab(); + let tab4 = await addTab(); + let tab5 = await addTab(); + + await BrowserTestUtils.switchTab(gBrowser, () => triggerClickOn(tab1, {})); + + is(gBrowser.selectedTab, tab1, "Tab1 has focus now"); + is(gBrowser.multiSelectedTabsCount, 0, "No tab is multi-selected"); + + await triggerClickOn(tab3, { ctrlKey: true }); + is(gBrowser.selectedTab, tab1, "Tab1 still has focus"); + is(gBrowser.multiSelectedTabsCount, 2, "Two tabs are multi-selected"); + ok( + tab1.multiselected && gBrowser._multiSelectedTabsSet.has(tab1), + "Tab1 is multi-selected" + ); + ok( + tab3.multiselected && gBrowser._multiSelectedTabsSet.has(tab3), + "Tab3 is multi-selected" + ); + + info("Click on tab5 while holding Shift key"); + await BrowserTestUtils.switchTab( + gBrowser, + triggerClickOn(tab5, { shiftKey: true }) + ); + + is(gBrowser.selectedTab, tab3, "Tab3 has focus"); + ok( + !tab1.multiselected && !gBrowser._multiSelectedTabsSet.has(tab1), + "Tab1 is not multi-selected" + ); + ok( + !tab2.multiselected && !gBrowser._multiSelectedTabsSet.has(tab2), + "Tab2 is not multi-selected " + ); + ok( + tab3.multiselected && gBrowser._multiSelectedTabsSet.has(tab3), + "Tab3 is multi-selected" + ); + ok( + tab4.multiselected && gBrowser._multiSelectedTabsSet.has(tab4), + "Tab4 is multi-selected" + ); + ok( + tab5.multiselected && gBrowser._multiSelectedTabsSet.has(tab5), + "Tab5 is multi-selected" + ); + is(gBrowser.multiSelectedTabsCount, 3, "Three tabs are multi-selected"); + + info("Click on tab4 while holding Shift key"); + await triggerClickOn(tab4, { shiftKey: true }); + + is(gBrowser.selectedTab, tab3, "Tab3 has focus"); + ok( + !tab1.multiselected && !gBrowser._multiSelectedTabsSet.has(tab1), + "Tab1 is not multi-selected" + ); + ok( + !tab2.multiselected && !gBrowser._multiSelectedTabsSet.has(tab2), + "Tab2 is not multi-selected " + ); + ok( + tab3.multiselected && gBrowser._multiSelectedTabsSet.has(tab3), + "Tab3 is multi-selected" + ); + ok( + tab4.multiselected && gBrowser._multiSelectedTabsSet.has(tab4), + "Tab4 is multi-selected" + ); + ok( + !tab5.multiselected && !gBrowser._multiSelectedTabsSet.has(tab5), + "Tab5 is not multi-selected" + ); + is(gBrowser.multiSelectedTabsCount, 2, "Two tabs are multi-selected"); + + info("Click on tab1 while holding Shift key"); + await triggerClickOn(tab1, { shiftKey: true }); + + is(gBrowser.selectedTab, tab3, "Tab3 has focus"); + ok( + tab1.multiselected && gBrowser._multiSelectedTabsSet.has(tab1), + "Tab1 is multi-selected" + ); + ok( + tab2.multiselected && gBrowser._multiSelectedTabsSet.has(tab2), + "Tab2 is multi-selected " + ); + ok( + tab3.multiselected && gBrowser._multiSelectedTabsSet.has(tab3), + "Tab3 is multi-selected" + ); + ok( + !tab4.multiselected && !gBrowser._multiSelectedTabsSet.has(tab4), + "Tab4 is not multi-selected" + ); + ok( + !tab5.multiselected && !gBrowser._multiSelectedTabsSet.has(tab5), + "Tab5 is not multi-selected" + ); + is(gBrowser.multiSelectedTabsCount, 3, "Three tabs are multi-selected"); + + BrowserTestUtils.removeTab(tab1); + BrowserTestUtils.removeTab(tab2); + BrowserTestUtils.removeTab(tab3); + BrowserTestUtils.removeTab(tab4); + BrowserTestUtils.removeTab(tab5); +}); -- cgit v1.2.3