diff options
Diffstat (limited to 'browser/components/sessionstore/test/browser_page_title.js')
-rw-r--r-- | browser/components/sessionstore/test/browser_page_title.js | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/browser/components/sessionstore/test/browser_page_title.js b/browser/components/sessionstore/test/browser_page_title.js new file mode 100644 index 000000000..9bbb1ca76 --- /dev/null +++ b/browser/components/sessionstore/test/browser_page_title.js @@ -0,0 +1,45 @@ +"use strict"; + +const URL = "data:text/html,<title>initial title</title>"; + +add_task(function* () { + // Create a new tab. + let tab = gBrowser.addTab(URL); + yield promiseBrowserLoaded(tab.linkedBrowser); + + // Remove the tab. + yield promiseRemoveTab(tab); + + // Check the title. + let [{state: {entries}}] = JSON.parse(ss.getClosedTabData(window)); + is(entries[0].title, "initial title", "correct title"); +}); + +add_task(function* () { + // Create a new tab. + let tab = gBrowser.addTab(URL); + let browser = tab.linkedBrowser; + yield promiseBrowserLoaded(browser); + + // Flush to ensure we collected the initial title. + yield TabStateFlusher.flush(browser); + + // Set a new title. + yield ContentTask.spawn(browser, null, function* () { + return new Promise(resolve => { + addEventListener("DOMTitleChanged", function onTitleChanged() { + removeEventListener("DOMTitleChanged", onTitleChanged); + resolve(); + }); + + content.document.title = "new title"; + }); + }); + + // Remove the tab. + yield promiseRemoveTab(tab); + + // Check the title. + let [{state: {entries}}] = JSON.parse(ss.getClosedTabData(window)); + is(entries[0].title, "new title", "correct title"); +}); |