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

branch
TOR_BUG_9701
changeset 15
b8a032363ba2
equal deleted inserted replaced
-1:000000000000 0:81d05acade80
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/. */
5
6 "use strict";
7
8 function test() {
9 runTests();
10 }
11
12 function getTelemetryPayload() {
13 return Cu.import("resource://gre/modules/TelemetryPing.jsm", {}).
14 TelemetryPing.getPayload();
15 }
16
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");
22
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 });
29
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);
35
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 });
41
42 let simpleMeasurements = getTelemetryPayload().simpleMeasurements;
43 is(simpleMeasurements.UITelemetry["metro-tabs"]["currTabCount"], 1);
44 is(simpleMeasurements.UITelemetry["metro-tabs"]["maxTabCount"], 1);
45
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);
50
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);
55
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);
60
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