browser_page_title.js (1300B)
1 "use strict"; 2 3 const URL = "data:text/html,<title>initial title</title>"; 4 5 add_task(async function () { 6 // Create a new tab. 7 let tab = BrowserTestUtils.addTab(gBrowser, URL); 8 await promiseBrowserLoaded(tab.linkedBrowser); 9 10 // Remove the tab. 11 await promiseRemoveTabAndSessionState(tab); 12 13 // Check the title. 14 let [ 15 { 16 state: { entries }, 17 }, 18 ] = ss.getClosedTabDataForWindow(window); 19 is(entries[0].title, "initial title", "correct title"); 20 }); 21 22 add_task(async function () { 23 // Create a new tab. 24 let tab = BrowserTestUtils.addTab(gBrowser, URL); 25 let browser = tab.linkedBrowser; 26 await promiseBrowserLoaded(browser); 27 28 // Flush to ensure we collected the initial title. 29 await TabStateFlusher.flush(browser); 30 31 // Set a new title. 32 await SpecialPowers.spawn(browser, [], async function () { 33 return new Promise(resolve => { 34 docShell.chromeEventHandler.addEventListener( 35 "DOMTitleChanged", 36 () => resolve(), 37 { once: true } 38 ); 39 40 content.document.title = "new title"; 41 }); 42 }); 43 44 // Remove the tab. 45 await promiseRemoveTabAndSessionState(tab); 46 47 // Check the title. 48 let [ 49 { 50 state: { entries }, 51 }, 52 ] = ss.getClosedTabDataForWindow(window); 53 is(entries[0].title, "new title", "correct title"); 54 });