summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/tabs/browser_open_newtab_start_observer_notification.js
blob: cb9fc3c6d78d14c35e37a0cf2fa2b58bbf64f218 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
"use strict";

add_task(async function test_browser_open_newtab_start_observer_notification() {
  let observerFiredPromise = new Promise(resolve => {
    function observe(subject) {
      Services.obs.removeObserver(observe, "browser-open-newtab-start");
      resolve(subject.wrappedJSObject);
    }
    Services.obs.addObserver(observe, "browser-open-newtab-start");
  });

  // We're calling BrowserOpenTab() (rather the using BrowserTestUtils
  // because we want to be sure that it triggers the event to fire, since
  // it's very close to where various user-actions are triggered.
  BrowserOpenTab();
  const newTabCreatedPromise = await observerFiredPromise;
  const browser = await newTabCreatedPromise;
  const tab = gBrowser.selectedTab;

  ok(true, "browser-open-newtab-start observer not called");
  Assert.deepEqual(
    browser,
    tab.linkedBrowser,
    "browser-open-newtab-start notified with the created browser"
  );

  BrowserTestUtils.removeTab(tab);
});