diff options
Diffstat (limited to 'browser/components/sessionstore/test/browser_491168.js')
-rw-r--r-- | browser/components/sessionstore/test/browser_491168.js | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/browser/components/sessionstore/test/browser_491168.js b/browser/components/sessionstore/test/browser_491168.js new file mode 100644 index 000000000..ae66afe77 --- /dev/null +++ b/browser/components/sessionstore/test/browser_491168.js @@ -0,0 +1,42 @@ +"use strict"; + +const REFERRER1 = "http://example.org/?" + Date.now(); +const REFERRER2 = "http://example.org/?" + Math.random(); + +add_task(function* () { + function* checkDocumentReferrer(referrer, msg) { + yield ContentTask.spawn(gBrowser.selectedBrowser, { referrer, msg }, function* (args) { + Assert.equal(content.document.referrer, args.referrer, args.msg); + }); + } + + // Add a new tab. + let tab = gBrowser.selectedTab = gBrowser.addTab("about:blank"); + let browser = tab.linkedBrowser; + yield promiseBrowserLoaded(browser); + + // Load a new URI with a specific referrer. + let referrerURI = Services.io.newURI(REFERRER1, null, null); + browser.loadURI("http://example.org", referrerURI, null); + yield promiseBrowserLoaded(browser); + + yield TabStateFlusher.flush(browser); + 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; + yield promiseTabState(tab, tabState); + + yield checkDocumentReferrer(REFERRER2, + "document.referrer matches referrer set via setTabState."); + gBrowser.removeCurrentTab(); + + // Restore the closed tab. + tab = ss.undoCloseTab(window, 0); + yield promiseTabRestored(tab); + + yield checkDocumentReferrer(REFERRER2, + "document.referrer is still correct after closing and reopening the tab."); + gBrowser.removeCurrentTab(); +}); |