Bug 1376003 - Address intermittent browser_ext_pageAction_telemetry.js, r?mixedpuppy draft
authorBob Silverberg <bsilverberg@mozilla.com>
Tue, 27 Jun 2017 12:12:07 -0700
changeset 600708 dc2c2029bed52131916d1c1577ca8c3a7c7bfa32
parent 600616 f4e52135d9bdc6ce98bb37b450021445aed894ce
child 601510 9e1c9f8aa91cdf430c17a51a7bb54d149f4e61d5
push id65850
push userbmo:bob.silverberg@gmail.com
push dateTue, 27 Jun 2017 19:12:31 +0000
reviewersmixedpuppy
bugs1376003
milestone56.0a1
Bug 1376003 - Address intermittent browser_ext_pageAction_telemetry.js, r?mixedpuppy MozReview-Commit-ID: IkBQ7PcSMwC
browser/components/extensions/test/browser/browser_ext_pageAction_telemetry.js
--- a/browser/components/extensions/test/browser/browser_ext_pageAction_telemetry.js
+++ b/browser/components/extensions/test/browser/browser_ext_pageAction_telemetry.js
@@ -1,14 +1,18 @@
 /* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
 /* vim: set sts=2 sw=2 et tw=80: */
 "use strict";
 
 const HISTOGRAM = "WEBEXT_PAGEACTION_POPUP_OPEN_MS";
 
+function histogramCountsSum(histogram) {
+  return histogram.snapshot().counts.reduce((a, b) => a + b, 0);
+}
+
 add_task(async function testPageActionTelemetry() {
   let extensionOptions = {
     manifest: {
       "page_action": {
         "default_popup": "popup.html",
         "browser_style": true,
       },
     },
@@ -26,50 +30,44 @@ add_task(async function testPageActionTe
       "popup.html": `<!DOCTYPE html><html><head><meta charset="utf-8"></head><body><div></div></body></html>`,
     },
   };
   let extension1 = ExtensionTestUtils.loadExtension(extensionOptions);
   let extension2 = ExtensionTestUtils.loadExtension(extensionOptions);
 
   let histogram = Services.telemetry.getHistogramById(HISTOGRAM);
   histogram.clear();
-  is(histogram.snapshot().sum, 0,
-        `No data recorded for histogram: ${HISTOGRAM}.`);
+  is(histogramCountsSum(histogram), 0,
+     `No data recorded for histogram: ${HISTOGRAM}.`);
 
   await extension1.startup();
   await extension1.awaitMessage("action-shown");
   await extension2.startup();
   await extension2.awaitMessage("action-shown");
-  is(histogram.snapshot().sum, 0,
-        `No data recorded for histogram after PageAction shown: ${HISTOGRAM}.`);
+  is(histogramCountsSum(histogram), 0,
+     `No data recorded for histogram after PageAction shown: ${HISTOGRAM}.`);
 
   clickPageAction(extension1, window);
   await awaitExtensionPanel(extension1);
-  let sumOld = histogram.snapshot().sum;
-  ok(sumOld > 0,
+  is(histogramCountsSum(histogram), 1,
      `Data recorded for first extension for histogram: ${HISTOGRAM}.`);
   await closePageAction(extension1, window);
 
   clickPageAction(extension2, window);
   await awaitExtensionPanel(extension2);
-  let sumNew = histogram.snapshot().sum;
-  ok(sumNew > sumOld,
+  is(histogramCountsSum(histogram), 2,
      `Data recorded for second extension for histogram: ${HISTOGRAM}.`);
-  sumOld = sumNew;
   await closePageAction(extension2, window);
 
   clickPageAction(extension2, window);
   await awaitExtensionPanel(extension2);
-  sumNew = histogram.snapshot().sum;
-  ok(sumNew > sumOld,
+  is(histogramCountsSum(histogram), 3,
      `Data recorded for second opening of popup for histogram: ${HISTOGRAM}.`);
-  sumOld = sumNew;
   await closePageAction(extension2, window);
 
   clickPageAction(extension1, window);
   await awaitExtensionPanel(extension1);
-  sumNew = histogram.snapshot().sum;
-  ok(sumNew > sumOld,
+  is(histogramCountsSum(histogram), 4,
      `Data recorded for second opening of popup for histogram: ${HISTOGRAM}.`);
 
   await extension1.unload();
   await extension2.unload();
 });