summaryrefslogtreecommitdiffstats
path: root/mobile/android/tests/browser/robocop/testUITelemetry.js
diff options
context:
space:
mode:
Diffstat (limited to 'mobile/android/tests/browser/robocop/testUITelemetry.js')
-rw-r--r--mobile/android/tests/browser/robocop/testUITelemetry.js154
1 files changed, 0 insertions, 154 deletions
diff --git a/mobile/android/tests/browser/robocop/testUITelemetry.js b/mobile/android/tests/browser/robocop/testUITelemetry.js
deleted file mode 100644
index 5edf06f19..000000000
--- a/mobile/android/tests/browser/robocop/testUITelemetry.js
+++ /dev/null
@@ -1,154 +0,0 @@
-// -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this file,
- * You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-var Cc = Components.classes;
-var Ci = Components.interfaces;
-var Cu = Components.utils;
-
-Cu.import("resource://gre/modules/Services.jsm");
-
-const EVENT_TEST1 = "_test_event_1.1";
-const EVENT_TEST2 = "_test_event_2.1";
-const EVENT_TEST3 = "_test_event_3.1";
-const EVENT_TEST4 = "_test_event_4.1";
-
-const METHOD_TEST1 = "_test_method_1";
-const METHOD_TEST2 = "_test_method_2";
-
-const METHOD_NONE = null;
-
-const REASON_TEST1 = "_test_reason_1";
-const REASON_TEST2 = "_test_reason_2";
-
-const SESSION_STARTED_TWICE = "_test_session_started_twice.1";
-const SESSION_STOPPED_TWICE = "_test_session_stopped_twice.1";
-
-function do_check_array_eq(a1, a2) {
- do_check_eq(a1.length, a2.length);
- for (let i = 0; i < a1.length; ++i) {
- do_check_eq(a1[i], a2[i]);
- }
-}
-
-/**
- * Asserts that the given measurements are equal. Assumes that measurements
- * of type "event" have their sessions arrays sorted.
- */
-function do_check_measurement_eq(m1, m2) {
- do_check_eq(m1.type, m2.type);
-
- switch (m1.type) {
- case "event":
- do_check_eq(m1.action, m2.action);
- do_check_eq(m1.method, m2.method);
- do_check_array_eq(m1.sessions, m2.sessions);
- do_check_eq(m1.extras, m2.extras);
- break;
-
- case "session":
- do_check_eq(m1.name, m2.name);
- do_check_eq(m1.reason, m2.reason);
- break;
-
- default:
- do_throw("Unknown event type: " + m1.type);
- }
-}
-
-function getObserver() {
- let bridge = Cc["@mozilla.org/android/bridge;1"]
- .getService(Ci.nsIAndroidBridge);
- let obsXPCOM = bridge.browserApp.getUITelemetryObserver();
- do_check_true(!!obsXPCOM);
- return obsXPCOM.wrappedJSObject;
-}
-
-/**
- * The following event test will fail if telemetry isn't enabled. The Java-side
- * part of this test should have turned it on; fail if it didn't work.
- */
-add_test(function test_enabled() {
- let obs = getObserver();
- do_check_true(!!obs);
- do_check_true(obs.enabled);
- run_next_test();
-});
-
-add_test(function test_telemetry_events() {
- let expected = expectedArraysToObjs([
- ["event", EVENT_TEST1, METHOD_TEST1, [], undefined],
- ["event", EVENT_TEST2, METHOD_TEST1, [SESSION_STARTED_TWICE], undefined],
- ["event", EVENT_TEST2, METHOD_TEST2, [SESSION_STARTED_TWICE], undefined],
- ["event", EVENT_TEST3, METHOD_TEST1, [SESSION_STARTED_TWICE, SESSION_STOPPED_TWICE], "foobarextras"],
- ["session", SESSION_STARTED_TWICE, REASON_TEST1],
- ["event", EVENT_TEST4, METHOD_TEST1, [SESSION_STOPPED_TWICE], "barextras"],
- ["session", SESSION_STOPPED_TWICE, REASON_TEST2],
- ["event", EVENT_TEST1, METHOD_NONE, [], undefined],
- ]);
-
- let clearMeasurements = false;
- let obs = getObserver();
- let measurements = removeNonTestMeasurements(obs.getUIMeasurements(clearMeasurements));
-
- measurements.forEach(function (m, i) {
- if (m.type === "event") {
- m.sessions = removeNonTestSessions(m.sessions);
- m.sessions.sort(); // Mutates.
- }
-
- do_check_measurement_eq(expected[i], m);
- });
-
- expected.forEach(function (m, i) {
- do_check_measurement_eq(m, measurements[i]);
- });
-
- run_next_test();
-});
-
-/**
- * Converts the expected value arrays to objects,
- * for less typing when initializing the expected arrays.
- */
-function expectedArraysToObjs(expectedArrays) {
- return expectedArrays.map(function (arr) {
- let type = arr[0];
- if (type === "event") {
- return {
- type: type,
- action: arr[1],
- method: arr[2],
- sessions: arr[3].sort(), // Sort, just in case it's not sorted by hand!
- extras: arr[4],
- };
-
- } else if (type === "session") {
- return {
- type: type,
- name: arr[1],
- reason: arr[2],
- };
- }
- });
-}
-
-function removeNonTestMeasurements(measurements) {
- return measurements.filter(function (measurement) {
- if (measurement.type === "event") {
- return measurement.action.startsWith("_test_event_");
- } else if (measurement.type === "session") {
- return measurement.name.startsWith("_test_session_");
- }
- return false;
- });
-}
-
-function removeNonTestSessions(sessions) {
- return sessions.filter(function (sessionName) {
- return sessionName.startsWith("_test_session_");
- });
-}
-
-run_next_test();