Bug 1456274 - Rewrite browser_target_events in async style. r=ochameau draft
authorJ. Ryan Stinnett <jryans@gmail.com>
Mon, 23 Apr 2018 19:17:20 -0500
changeset 788114 4036e713829d82493983441b35af76b10d0837bd
parent 788113 1b297758ff835a7378698ab88e1bfec936bf9fdf
child 788115 bac4401b5370865668f268c6b3b8944597520536
push id107908
push userbmo:jryans@gmail.com
push dateWed, 25 Apr 2018 23:00:31 +0000
reviewersochameau
bugs1456274
milestone61.0a1
Bug 1456274 - Rewrite browser_target_events in async style. r=ochameau MozReview-Commit-ID: 8gF9T6qeYR3
devtools/client/framework/test/browser_target_events.js
--- a/devtools/client/framework/test/browser_target_events.js
+++ b/devtools/client/framework/test/browser_target_events.js
@@ -1,56 +1,35 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
 /* Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
-var target;
-
-function test() {
-  waitForExplicitFinish();
-
+add_task(async function() {
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
-  BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then(onLoad);
-}
+  await BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
 
-function onLoad() {
-  target = TargetFactory.forTab(gBrowser.selectedTab);
-
+  let target = TargetFactory.forTab(gBrowser.selectedTab);
   is(target.tab, gBrowser.selectedTab, "Target linked to the right tab.");
 
-  target.once("hidden", onHidden);
+  let hidden = once(target, "hidden");
   gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser);
-}
-
-function onHidden() {
+  await hidden;
   ok(true, "Hidden event received");
-  target.once("visible", onVisible);
-  gBrowser.removeCurrentTab();
-}
 
-function onVisible() {
+  let visible = once(target, "visible");
+  gBrowser.removeCurrentTab();
+  await visible;
   ok(true, "Visible event received");
-  target.once("will-navigate", onWillNavigate);
 
+  let willNavigate = once(target, "will-navigate");
+  let navigate = once(target, "navigate");
   ContentTask.spawn(gBrowser.selectedBrowser, null, () => {
     content.location = "data:text/html,<meta charset='utf8'/>test navigation";
   });
-}
-
-async function onWillNavigate() {
+  await willNavigate;
   ok(true, "will-navigate event received");
-  target.on("navigate", onNavigate);
-}
-
-function onNavigate() {
+  await navigate;
   ok(true, "navigate event received");
-  target.off("navigate", onNavigate);
-  target.once("close", onClose);
+
+  let close = once(target, "close");
   gBrowser.removeCurrentTab();
-}
-
-function onClose() {
+  await close;
   ok(true, "close event received");
-
-  target = null;
-  finish();
-}
+});