forked from mirrors/gecko-dev
		
	This method only is async in order to allow callers to wait for a process switch triggered by the call to `loadURI` to be finished before resolving. With DocumentChannel, we should never trigger a process switch eagerly like this again, so we don't need any of the async behaviour here anymore. This part is largely mechanical changes to tests, removing the `await` calls on `loadURI`, and a follow-up part will remove the actual async logic from `BrowserTestUtils.loadURI`. Differential Revision: https://phabricator.services.mozilla.com/D94641
		
			
				
	
	
		
			53 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/* Any copyright is dedicated to the Public Domain.
 | 
						|
 * http://creativecommons.org/publicdomain/zero/1.0/ */
 | 
						|
 | 
						|
const { TabStateFlusher } = ChromeUtils.import(
 | 
						|
  "resource:///modules/sessionstore/TabStateFlusher.jsm"
 | 
						|
);
 | 
						|
 | 
						|
add_task(async function test_blank() {
 | 
						|
  await BrowserTestUtils.withNewTab(
 | 
						|
    { gBrowser, url: "about:blank" },
 | 
						|
    async function(browser) {
 | 
						|
      BrowserTestUtils.loadURI(browser, "http://example.com");
 | 
						|
      await BrowserTestUtils.browserLoaded(browser);
 | 
						|
      ok(!gBrowser.canGoBack, "about:blank wasn't added to session history");
 | 
						|
    }
 | 
						|
  );
 | 
						|
});
 | 
						|
 | 
						|
add_task(async function test_newtab() {
 | 
						|
  await BrowserTestUtils.withNewTab(
 | 
						|
    { gBrowser, url: "about:blank" },
 | 
						|
    async function(browser) {
 | 
						|
      // Can't load it directly because that'll use a preloaded tab if present.
 | 
						|
      let stopped = BrowserTestUtils.browserStopped(browser, "about:newtab");
 | 
						|
      BrowserTestUtils.loadURI(browser, "about:newtab");
 | 
						|
      await stopped;
 | 
						|
 | 
						|
      stopped = BrowserTestUtils.browserStopped(browser, "http://example.com/");
 | 
						|
      BrowserTestUtils.loadURI(browser, "http://example.com/");
 | 
						|
      await stopped;
 | 
						|
 | 
						|
      // This makes sure the parent process has the most up-to-date notion
 | 
						|
      // of the tab's session history.
 | 
						|
      await TabStateFlusher.flush(browser);
 | 
						|
 | 
						|
      let tab = gBrowser.getTabForBrowser(browser);
 | 
						|
      let tabState = JSON.parse(SessionStore.getTabState(tab));
 | 
						|
      Assert.equal(
 | 
						|
        tabState.entries.length,
 | 
						|
        2,
 | 
						|
        "We should have 2 entries in the session history."
 | 
						|
      );
 | 
						|
 | 
						|
      Assert.equal(
 | 
						|
        tabState.entries[0].url,
 | 
						|
        "about:newtab",
 | 
						|
        "about:newtab should be the first entry."
 | 
						|
      );
 | 
						|
 | 
						|
      Assert.ok(gBrowser.canGoBack, "Should be able to browse back.");
 | 
						|
    }
 | 
						|
  );
 | 
						|
});
 |