browser/metro/base/tests/mochitest/browser_ui_telemetry.js

Wed, 31 Dec 2014 06:55:50 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:55:50 +0100
changeset 2
7e26c7da4463
permissions
-rw-r--r--

Added tag UPSTREAM_283F7C6 for changeset ca08bd8f51b2

     1 // -*- Mode: js2; tab-width: 2; indent-tabs-mode: nil; js2-basic-offset: 2; js2-skip-preprocessor-directives: t; -*-
     2 /* This Source Code Form is subject to the terms of the Mozilla Public
     3  * License, v. 2.0. If a copy of the MPL was not distributed with this
     4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     6 "use strict";
     8 function test() {
     9   runTests();
    10 }
    12 function getTelemetryPayload() {
    13   return Cu.import("resource://gre/modules/TelemetryPing.jsm", {}).
    14     TelemetryPing.getPayload();
    15 }
    17 gTests.push({
    18   desc: "Test browser-ui telemetry",
    19   run: function testBrowserUITelemetry() {
    20     // startup should have registered simple measures function
    21     is(getTelemetryPayload().info.appName, "MetroFirefox");
    23     let simpleMeasurements = getTelemetryPayload().simpleMeasurements;
    24     ok(simpleMeasurements, "simpleMeasurements are truthy");
    25     ok(simpleMeasurements.UITelemetry["metro-ui"]["window-width"], "window-width measurement was captured");
    26     ok(simpleMeasurements.UITelemetry["metro-ui"]["window-height"], "window-height measurement was captured");
    27   }
    28 });
    30 gTests.push({
    31   desc: "Test tab count telemetry",
    32   run: function() {
    33     // Wait for Session Manager to be initialized.
    34     yield waitForCondition(() => window.__SSID);
    36     Services.obs.notifyObservers(null, "reset-telemetry-vars", null);
    37     yield waitForCondition(function () {
    38       let simpleMeasurements = getTelemetryPayload().simpleMeasurements;
    39       return simpleMeasurements.UITelemetry["metro-tabs"]["currTabCount"] == 1;
    40     });
    42     let simpleMeasurements = getTelemetryPayload().simpleMeasurements;
    43     is(simpleMeasurements.UITelemetry["metro-tabs"]["currTabCount"], 1);
    44     is(simpleMeasurements.UITelemetry["metro-tabs"]["maxTabCount"], 1);
    46     let tab2 = Browser.addTab("about:mozilla");
    47     simpleMeasurements = getTelemetryPayload().simpleMeasurements;
    48     is(simpleMeasurements.UITelemetry["metro-tabs"]["currTabCount"], 2);
    49     is(simpleMeasurements.UITelemetry["metro-tabs"]["maxTabCount"], 2);
    51     let tab3 = Browser.addTab("about:config");
    52     simpleMeasurements = getTelemetryPayload().simpleMeasurements;
    53     is(simpleMeasurements.UITelemetry["metro-tabs"]["currTabCount"], 3);
    54     is(simpleMeasurements.UITelemetry["metro-tabs"]["maxTabCount"], 3);
    56     Browser.closeTab(tab2, { forceClose: true } );
    57     simpleMeasurements = getTelemetryPayload().simpleMeasurements;
    58     is(simpleMeasurements.UITelemetry["metro-tabs"]["currTabCount"], 2);
    59     is(simpleMeasurements.UITelemetry["metro-tabs"]["maxTabCount"], 3);
    61     Browser.closeTab(tab3, { forceClose: true } );
    62     simpleMeasurements = getTelemetryPayload().simpleMeasurements;
    63     is(simpleMeasurements.UITelemetry["metro-tabs"]["currTabCount"], 1);
    64     is(simpleMeasurements.UITelemetry["metro-tabs"]["maxTabCount"], 3);
    65   }
    66 });

mercurial