michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: function test() { michael@0: /** Test for Bug 491168 **/ michael@0: michael@0: waitForExplicitFinish(); michael@0: michael@0: const REFERRER1 = "http://example.org/?" + Date.now(); michael@0: const REFERRER2 = "http://example.org/?" + Math.random(); michael@0: michael@0: let tab = gBrowser.addTab(); michael@0: gBrowser.selectedTab = tab; michael@0: michael@0: let browser = tab.linkedBrowser; michael@0: whenBrowserLoaded(browser, function() { michael@0: let tabState = JSON.parse(ss.getTabState(tab)); michael@0: is(tabState.entries[0].referrer, REFERRER1, michael@0: "Referrer retrieved via getTabState matches referrer set via loadURI."); michael@0: michael@0: tabState.entries[0].referrer = REFERRER2; michael@0: ss.setTabState(tab, JSON.stringify(tabState)); michael@0: michael@0: whenTabRestored(tab, function(e) { michael@0: is(window.content.document.referrer, REFERRER2, "document.referrer matches referrer set via setTabState."); michael@0: michael@0: gBrowser.removeTab(tab); michael@0: michael@0: let newTab = ss.undoCloseTab(window, 0); michael@0: whenTabRestored(newTab, function() { michael@0: is(window.content.document.referrer, REFERRER2, "document.referrer is still correct after closing and reopening the tab."); michael@0: gBrowser.removeTab(newTab); michael@0: michael@0: finish(); michael@0: }); michael@0: }); michael@0: }); michael@0: michael@0: let referrerURI = Services.io.newURI(REFERRER1, null, null); michael@0: browser.loadURI("http://example.org", referrerURI, null); michael@0: }