michael@0: // -*- Mode: js2; tab-width: 2; indent-tabs-mode: nil; js2-basic-offset: 2; js2-skip-preprocessor-directives: t; -*- michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: "use strict"; michael@0: michael@0: function test() { michael@0: runTests(); michael@0: } michael@0: michael@0: function getTelemetryPayload() { michael@0: return Cu.import("resource://gre/modules/TelemetryPing.jsm", {}). michael@0: TelemetryPing.getPayload(); michael@0: } michael@0: michael@0: gTests.push({ michael@0: desc: "Test browser-ui telemetry", michael@0: run: function testBrowserUITelemetry() { michael@0: // startup should have registered simple measures function michael@0: is(getTelemetryPayload().info.appName, "MetroFirefox"); michael@0: michael@0: let simpleMeasurements = getTelemetryPayload().simpleMeasurements; michael@0: ok(simpleMeasurements, "simpleMeasurements are truthy"); michael@0: ok(simpleMeasurements.UITelemetry["metro-ui"]["window-width"], "window-width measurement was captured"); michael@0: ok(simpleMeasurements.UITelemetry["metro-ui"]["window-height"], "window-height measurement was captured"); michael@0: } michael@0: }); michael@0: michael@0: gTests.push({ michael@0: desc: "Test tab count telemetry", michael@0: run: function() { michael@0: // Wait for Session Manager to be initialized. michael@0: yield waitForCondition(() => window.__SSID); michael@0: michael@0: Services.obs.notifyObservers(null, "reset-telemetry-vars", null); michael@0: yield waitForCondition(function () { michael@0: let simpleMeasurements = getTelemetryPayload().simpleMeasurements; michael@0: return simpleMeasurements.UITelemetry["metro-tabs"]["currTabCount"] == 1; michael@0: }); michael@0: michael@0: let simpleMeasurements = getTelemetryPayload().simpleMeasurements; michael@0: is(simpleMeasurements.UITelemetry["metro-tabs"]["currTabCount"], 1); michael@0: is(simpleMeasurements.UITelemetry["metro-tabs"]["maxTabCount"], 1); michael@0: michael@0: let tab2 = Browser.addTab("about:mozilla"); michael@0: simpleMeasurements = getTelemetryPayload().simpleMeasurements; michael@0: is(simpleMeasurements.UITelemetry["metro-tabs"]["currTabCount"], 2); michael@0: is(simpleMeasurements.UITelemetry["metro-tabs"]["maxTabCount"], 2); michael@0: michael@0: let tab3 = Browser.addTab("about:config"); michael@0: simpleMeasurements = getTelemetryPayload().simpleMeasurements; michael@0: is(simpleMeasurements.UITelemetry["metro-tabs"]["currTabCount"], 3); michael@0: is(simpleMeasurements.UITelemetry["metro-tabs"]["maxTabCount"], 3); michael@0: michael@0: Browser.closeTab(tab2, { forceClose: true } ); michael@0: simpleMeasurements = getTelemetryPayload().simpleMeasurements; michael@0: is(simpleMeasurements.UITelemetry["metro-tabs"]["currTabCount"], 2); michael@0: is(simpleMeasurements.UITelemetry["metro-tabs"]["maxTabCount"], 3); michael@0: michael@0: Browser.closeTab(tab3, { forceClose: true } ); michael@0: simpleMeasurements = getTelemetryPayload().simpleMeasurements; michael@0: is(simpleMeasurements.UITelemetry["metro-tabs"]["currTabCount"], 1); michael@0: is(simpleMeasurements.UITelemetry["metro-tabs"]["maxTabCount"], 3); michael@0: } michael@0: });