1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/browser/metro/base/tests/mochitest/browser_ui_telemetry.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,66 @@ 1.4 +// -*- Mode: js2; tab-width: 2; indent-tabs-mode: nil; js2-basic-offset: 2; js2-skip-preprocessor-directives: t; -*- 1.5 +/* This Source Code Form is subject to the terms of the Mozilla Public 1.6 + * License, v. 2.0. If a copy of the MPL was not distributed with this 1.7 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 1.8 + 1.9 +"use strict"; 1.10 + 1.11 +function test() { 1.12 + runTests(); 1.13 +} 1.14 + 1.15 +function getTelemetryPayload() { 1.16 + return Cu.import("resource://gre/modules/TelemetryPing.jsm", {}). 1.17 + TelemetryPing.getPayload(); 1.18 +} 1.19 + 1.20 +gTests.push({ 1.21 + desc: "Test browser-ui telemetry", 1.22 + run: function testBrowserUITelemetry() { 1.23 + // startup should have registered simple measures function 1.24 + is(getTelemetryPayload().info.appName, "MetroFirefox"); 1.25 + 1.26 + let simpleMeasurements = getTelemetryPayload().simpleMeasurements; 1.27 + ok(simpleMeasurements, "simpleMeasurements are truthy"); 1.28 + ok(simpleMeasurements.UITelemetry["metro-ui"]["window-width"], "window-width measurement was captured"); 1.29 + ok(simpleMeasurements.UITelemetry["metro-ui"]["window-height"], "window-height measurement was captured"); 1.30 + } 1.31 +}); 1.32 + 1.33 +gTests.push({ 1.34 + desc: "Test tab count telemetry", 1.35 + run: function() { 1.36 + // Wait for Session Manager to be initialized. 1.37 + yield waitForCondition(() => window.__SSID); 1.38 + 1.39 + Services.obs.notifyObservers(null, "reset-telemetry-vars", null); 1.40 + yield waitForCondition(function () { 1.41 + let simpleMeasurements = getTelemetryPayload().simpleMeasurements; 1.42 + return simpleMeasurements.UITelemetry["metro-tabs"]["currTabCount"] == 1; 1.43 + }); 1.44 + 1.45 + let simpleMeasurements = getTelemetryPayload().simpleMeasurements; 1.46 + is(simpleMeasurements.UITelemetry["metro-tabs"]["currTabCount"], 1); 1.47 + is(simpleMeasurements.UITelemetry["metro-tabs"]["maxTabCount"], 1); 1.48 + 1.49 + let tab2 = Browser.addTab("about:mozilla"); 1.50 + simpleMeasurements = getTelemetryPayload().simpleMeasurements; 1.51 + is(simpleMeasurements.UITelemetry["metro-tabs"]["currTabCount"], 2); 1.52 + is(simpleMeasurements.UITelemetry["metro-tabs"]["maxTabCount"], 2); 1.53 + 1.54 + let tab3 = Browser.addTab("about:config"); 1.55 + simpleMeasurements = getTelemetryPayload().simpleMeasurements; 1.56 + is(simpleMeasurements.UITelemetry["metro-tabs"]["currTabCount"], 3); 1.57 + is(simpleMeasurements.UITelemetry["metro-tabs"]["maxTabCount"], 3); 1.58 + 1.59 + Browser.closeTab(tab2, { forceClose: true } ); 1.60 + simpleMeasurements = getTelemetryPayload().simpleMeasurements; 1.61 + is(simpleMeasurements.UITelemetry["metro-tabs"]["currTabCount"], 2); 1.62 + is(simpleMeasurements.UITelemetry["metro-tabs"]["maxTabCount"], 3); 1.63 + 1.64 + Browser.closeTab(tab3, { forceClose: true } ); 1.65 + simpleMeasurements = getTelemetryPayload().simpleMeasurements; 1.66 + is(simpleMeasurements.UITelemetry["metro-tabs"]["currTabCount"], 1); 1.67 + is(simpleMeasurements.UITelemetry["metro-tabs"]["maxTabCount"], 3); 1.68 + } 1.69 +}); 1.70 \ No newline at end of file