diff -r 000000000000 -r 6474c204b198 browser/components/sessionstore/test/browser_491168.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/browser/components/sessionstore/test/browser_491168.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,42 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +function test() { + /** Test for Bug 491168 **/ + + waitForExplicitFinish(); + + const REFERRER1 = "http://example.org/?" + Date.now(); + const REFERRER2 = "http://example.org/?" + Math.random(); + + let tab = gBrowser.addTab(); + gBrowser.selectedTab = tab; + + let browser = tab.linkedBrowser; + whenBrowserLoaded(browser, function() { + let tabState = JSON.parse(ss.getTabState(tab)); + is(tabState.entries[0].referrer, REFERRER1, + "Referrer retrieved via getTabState matches referrer set via loadURI."); + + tabState.entries[0].referrer = REFERRER2; + ss.setTabState(tab, JSON.stringify(tabState)); + + whenTabRestored(tab, function(e) { + is(window.content.document.referrer, REFERRER2, "document.referrer matches referrer set via setTabState."); + + gBrowser.removeTab(tab); + + let newTab = ss.undoCloseTab(window, 0); + whenTabRestored(newTab, function() { + is(window.content.document.referrer, REFERRER2, "document.referrer is still correct after closing and reopening the tab."); + gBrowser.removeTab(newTab); + + finish(); + }); + }); + }); + + let referrerURI = Services.io.newURI(REFERRER1, null, null); + browser.loadURI("http://example.org", referrerURI, null); +}