fune/netwerk/test/unit/test_trr_telemetry.js

60 lines
1.4 KiB
JavaScript

"use strict";
/* import-globals-from trr_common.js */
// Allow telemetry probes which may otherwise be disabled for some
// applications (e.g. Thunderbird).
Services.prefs.setBoolPref(
"toolkit.telemetry.testing.overrideProductsCheck",
true
);
const { TelemetryTestUtils } = ChromeUtils.importESModule(
"resource://testing-common/TelemetryTestUtils.sys.mjs"
);
function setup() {
h2Port = trr_test_setup();
runningODoHTests = false;
}
let TRR_OK = 1;
setup();
registerCleanupFunction(async () => {
trr_clear_prefs();
});
async function trrLookup(mode, rolloutMode) {
let hist = TelemetryTestUtils.getAndClearKeyedHistogram(
"TRR_SKIP_REASON_TRR_FIRST2"
);
if (rolloutMode) {
info("Testing doh-rollout.mode");
setModeAndURI(0, "doh?responseIP=2.2.2.2");
Services.prefs.setIntPref("doh-rollout.mode", rolloutMode);
} else {
setModeAndURI(mode, "doh?responseIP=2.2.2.2");
}
Services.dns.clearCache(true);
await new TRRDNSListener("test.example.com", "2.2.2.2");
let expectedKey = `(other)_${mode}`;
if (mode == 0) {
expectedKey = "(other)";
}
TelemetryTestUtils.assertKeyedHistogramValue(hist, expectedKey, TRR_OK, 1);
}
add_task(async function test_trr_lookup_mode_2() {
await trrLookup(2);
});
add_task(async function test_trr_lookup_mode_3() {
await trrLookup(3);
});
add_task(async function test_trr_lookup_mode_0() {
await trrLookup(0, 2);
});