Fri, 16 Jan 2015 18:13:44 +0100
Integrate suggestion from review to improve consistency with existing code.
1 const Cc = Components.classes;
2 const Ci = Components.interfaces;
3 const Cu = Components.utils;
5 Cu.import("resource://gre/modules/TelemetryLog.jsm", this);
6 Cu.import("resource://gre/modules/TelemetryPing.jsm", this);
8 const TEST_PREFIX = "TEST-";
9 const TEST_REGEX = new RegExp("^" + TEST_PREFIX);
11 function check_event(event, id, data)
12 {
13 do_print("Checking message " + id);
14 do_check_eq(event[0], id);
15 do_check_true(event[1] > 0);
17 if (data === undefined) {
18 do_check_true(event.length == 2);
19 } else {
20 do_check_eq(event.length, data.length + 2);
21 for (var i = 0; i < data.length; ++i) {
22 do_check_eq(typeof(event[i + 2]), "string");
23 do_check_eq(event[i + 2], data[i]);
24 }
25 }
26 }
28 function run_test()
29 {
30 TelemetryLog.log(TEST_PREFIX + "1", ["val", 123, undefined]);
31 TelemetryLog.log(TEST_PREFIX + "2", []);
32 TelemetryLog.log(TEST_PREFIX + "3");
34 var log = TelemetryPing.getPayload().log.filter(function(e) {
35 // Only want events that were generated by the test.
36 return TEST_REGEX.test(e[0]);
37 });
39 do_check_eq(log.length, 3);
40 check_event(log[0], TEST_PREFIX + "1", ["val", "123", "undefined"]);
41 check_event(log[1], TEST_PREFIX + "2", []);
42 check_event(log[2], TEST_PREFIX + "3", undefined);
43 do_check_true(log[0][1] <= log[1][1]);
44 do_check_true(log[1][1] <= log[2][1]);
45 }