summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/general/browser_tabs_owner.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/base/content/test/general/browser_tabs_owner.js')
-rw-r--r--browser/base/content/test/general/browser_tabs_owner.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/browser/base/content/test/general/browser_tabs_owner.js b/browser/base/content/test/general/browser_tabs_owner.js
new file mode 100644
index 000000000..300d783ba
--- /dev/null
+++ b/browser/base/content/test/general/browser_tabs_owner.js
@@ -0,0 +1,44 @@
+//
+// Whitelisting this test.
+// As part of bug 1077403, the leaking uncaught rejection should be fixed.
+//
+thisTestLeaksUncaughtRejectionsAndShouldBeFixed("TypeError: gBrowser._finalizeTabSwitch is not a function");
+
+//
+// Whitelisting this test.
+// As part of bug 1077403, the leaking uncaught rejection should be fixed.
+//
+thisTestLeaksUncaughtRejectionsAndShouldBeFixed("TypeError: gBrowser._finalizeTabSwitch is not a function");
+
+function test() {
+ gBrowser.addTab();
+ gBrowser.addTab();
+ gBrowser.addTab();
+
+ var tabs = gBrowser.tabs;
+ var owner;
+
+ is(tabs.length, 4, "4 tabs are open");
+
+ owner = gBrowser.selectedTab = tabs[2];
+ BrowserOpenTab();
+ is(gBrowser.selectedTab, tabs[4], "newly opened tab is selected");
+ gBrowser.removeCurrentTab();
+ is(gBrowser.selectedTab, owner, "owner is selected");
+
+ owner = gBrowser.selectedTab;
+ BrowserOpenTab();
+ gBrowser.selectedTab = tabs[1];
+ gBrowser.selectedTab = tabs[4];
+ gBrowser.removeCurrentTab();
+ isnot(gBrowser.selectedTab, owner, "selecting a different tab clears the owner relation");
+
+ owner = gBrowser.selectedTab;
+ BrowserOpenTab();
+ gBrowser.moveTabTo(gBrowser.selectedTab, 0);
+ gBrowser.removeCurrentTab();
+ is(gBrowser.selectedTab, owner, "owner relatitionship persists when tab is moved");
+
+ while (tabs.length > 1)
+ gBrowser.removeCurrentTab();
+}