michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: function test() { michael@0: TestRunner.run(); michael@0: } michael@0: michael@0: function runTests() { michael@0: function assertNumberOfTabs(num, msg) { michael@0: is(gBrowser.tabs.length, num, msg); michael@0: } michael@0: michael@0: function assertNumberOfPinnedTabs(num, msg) { michael@0: is(gBrowser._numPinnedTabs, num, msg); michael@0: } michael@0: michael@0: // check prerequisites michael@0: assertNumberOfTabs(1, "we start off with one tab"); michael@0: assertNumberOfPinnedTabs(0, "no pinned tabs so far"); michael@0: michael@0: // setup michael@0: gBrowser.addTab("about:blank"); michael@0: assertNumberOfTabs(2, "there are two tabs, now"); michael@0: michael@0: let [tab1, tab2] = gBrowser.tabs; michael@0: let linkedBrowser = tab1.linkedBrowser; michael@0: gBrowser.pinTab(tab1); michael@0: gBrowser.pinTab(tab2); michael@0: assertNumberOfPinnedTabs(2, "both tabs are now pinned"); michael@0: michael@0: // run the test michael@0: yield waitForBrowserState( michael@0: { windows: [{ tabs: [{ url: "about:blank" }] }] }, michael@0: function () { michael@0: assertNumberOfTabs(1, "one tab left after setBrowserState()"); michael@0: assertNumberOfPinnedTabs(0, "there are no pinned tabs"); michael@0: is(gBrowser.tabs[0].linkedBrowser, linkedBrowser, "first tab's browser got re-used"); michael@0: next(); michael@0: } michael@0: ); michael@0: }