forked from mirrors/gecko-dev
		
	Differential Revision: https://phabricator.services.mozilla.com/D53741 --HG-- extra : moz-landing-system : lando
		
			
				
	
	
		
			63 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
add_task(async function() {
 | 
						|
  await BrowserTestUtils.withNewTab(
 | 
						|
    { gBrowser, url: "about:preferences" },
 | 
						|
    async function(browser) {
 | 
						|
      let newTabURL = "http://www.example.com/";
 | 
						|
      await SpecialPowers.spawn(browser, [newTabURL], async function(
 | 
						|
        newTabURL
 | 
						|
      ) {
 | 
						|
        let doc = content.document;
 | 
						|
        let label = doc.createXULElement("label", { is: "text-link" });
 | 
						|
        label.href = newTabURL;
 | 
						|
        label.id = "textlink-test";
 | 
						|
        label.textContent = "click me";
 | 
						|
        doc.body.append(label);
 | 
						|
      });
 | 
						|
 | 
						|
      // Test that click will open tab in foreground.
 | 
						|
      let awaitNewTab = BrowserTestUtils.waitForNewTab(gBrowser, newTabURL);
 | 
						|
      await BrowserTestUtils.synthesizeMouseAtCenter(
 | 
						|
        "#textlink-test",
 | 
						|
        {},
 | 
						|
        browser
 | 
						|
      );
 | 
						|
      let newTab = await awaitNewTab;
 | 
						|
      is(
 | 
						|
        newTab.linkedBrowser,
 | 
						|
        gBrowser.selectedBrowser,
 | 
						|
        "selected tab should be example page"
 | 
						|
      );
 | 
						|
      BrowserTestUtils.removeTab(gBrowser.selectedTab);
 | 
						|
 | 
						|
      // Test that ctrl+shift+click/meta+shift+click will open tab in background.
 | 
						|
      awaitNewTab = BrowserTestUtils.waitForNewTab(gBrowser, newTabURL);
 | 
						|
      await BrowserTestUtils.synthesizeMouseAtCenter(
 | 
						|
        "#textlink-test",
 | 
						|
        { ctrlKey: true, metaKey: true, shiftKey: true },
 | 
						|
        browser
 | 
						|
      );
 | 
						|
      await awaitNewTab;
 | 
						|
      is(
 | 
						|
        gBrowser.selectedBrowser,
 | 
						|
        browser,
 | 
						|
        "selected tab should be original tab"
 | 
						|
      );
 | 
						|
      BrowserTestUtils.removeTab(gBrowser.tabs[gBrowser.tabs.length - 1]);
 | 
						|
 | 
						|
      // Middle-clicking should open tab in foreground.
 | 
						|
      awaitNewTab = BrowserTestUtils.waitForNewTab(gBrowser, newTabURL);
 | 
						|
      await BrowserTestUtils.synthesizeMouseAtCenter(
 | 
						|
        "#textlink-test",
 | 
						|
        { button: 1 },
 | 
						|
        browser
 | 
						|
      );
 | 
						|
      newTab = await awaitNewTab;
 | 
						|
      is(
 | 
						|
        newTab.linkedBrowser,
 | 
						|
        gBrowser.selectedBrowser,
 | 
						|
        "selected tab should be example page"
 | 
						|
      );
 | 
						|
      BrowserTestUtils.removeTab(gBrowser.tabs[gBrowser.tabs.length - 1]);
 | 
						|
    }
 | 
						|
  );
 | 
						|
});
 |