commit e3bf3f8589cbee795930a4fcaed0a590dddc4f15
parent ed27593a9e9a2f5a29d091dfb016ca1204075c6f
Author: Jonathan Sudiaman <jsudiaman@mozilla.com>
Date: Wed, 1 Oct 2025 17:59:45 +0000
Bug 1991535 - Wait until tabs are closed to remove MozTabSplitViewWrapper. r=tabbrowser-reviewers,dao
Differential Revision: https://phabricator.services.mozilla.com/D266808
Diffstat:
1 file changed, 36 insertions(+), 0 deletions(-)
diff --git a/browser/components/tabbrowser/test/browser/tabs/browser_tab_splitview.js b/browser/components/tabbrowser/test/browser/tabs/browser_tab_splitview.js
@@ -141,3 +141,39 @@ add_task(async function test_split_view_panels() {
BrowserTestUtils.removeTab(tab1);
BrowserTestUtils.removeTab(tab2);
});
+
+add_task(async function test_split_view_preserves_multiple_pairings() {
+ info("Create four tabs for two split view pairings.");
+ const tab1 = await addTabAndLoadBrowser();
+ const tab2 = await addTabAndLoadBrowser();
+ const tab3 = await addTabAndLoadBrowser();
+ const tab4 = await addTabAndLoadBrowser();
+
+ info("Create two split views (Tab 1 + Tab 2) & (Tab 3 + Tab 4).");
+ const splitView1 = gBrowser.addTabSplitView([tab1, tab2]);
+ const splitView2 = gBrowser.addTabSplitView([tab3, tab4]);
+
+ info("Switch to Tab 1 to activate the first split view.");
+ await BrowserTestUtils.switchTab(gBrowser, tab1);
+ await checkSplitViewPanelVisible(tab1, true);
+ await checkSplitViewPanelVisible(tab2, true);
+ await checkSplitViewPanelVisible(tab3, false);
+ await checkSplitViewPanelVisible(tab4, false);
+
+ info("Switch to Tab 3 to activate the second split view.");
+ await BrowserTestUtils.switchTab(gBrowser, tab3);
+ await checkSplitViewPanelVisible(tab1, false);
+ await checkSplitViewPanelVisible(tab2, false);
+ await checkSplitViewPanelVisible(tab3, true);
+ await checkSplitViewPanelVisible(tab4, true);
+
+ info("Switch back to the first split view.");
+ await BrowserTestUtils.switchTab(gBrowser, tab1);
+ await checkSplitViewPanelVisible(tab1, true);
+ await checkSplitViewPanelVisible(tab2, true);
+ await checkSplitViewPanelVisible(tab3, false);
+ await checkSplitViewPanelVisible(tab4, false);
+
+ splitView1.close();
+ splitView2.close();
+});