|
1 const Cc = Components.classes; |
|
2 const Ci = Components.interfaces; |
|
3 const Cu = Components.utils; |
|
4 |
|
5 Cu.import("resource://gre/modules/TelemetryLog.jsm", this); |
|
6 Cu.import("resource://gre/modules/TelemetryPing.jsm", this); |
|
7 |
|
8 const TEST_PREFIX = "TEST-"; |
|
9 const TEST_REGEX = new RegExp("^" + TEST_PREFIX); |
|
10 |
|
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); |
|
16 |
|
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 } |
|
27 |
|
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"); |
|
33 |
|
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 }); |
|
38 |
|
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 } |