summaryrefslogtreecommitdiffstats
path: root/browser/base/content/test/tabs/browser_open_newtab_start_observer_notification.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/base/content/test/tabs/browser_open_newtab_start_observer_notification.js')
-rw-r--r--browser/base/content/test/tabs/browser_open_newtab_start_observer_notification.js28
1 files changed, 28 insertions, 0 deletions
diff --git a/browser/base/content/test/tabs/browser_open_newtab_start_observer_notification.js b/browser/base/content/test/tabs/browser_open_newtab_start_observer_notification.js
new file mode 100644
index 0000000000..cb9fc3c6d7
--- /dev/null
+++ b/browser/base/content/test/tabs/browser_open_newtab_start_observer_notification.js
@@ -0,0 +1,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);
+});