diff options
Diffstat (limited to 'netwerk/test/unit/test_trr_telemetry.js')
-rw-r--r-- | netwerk/test/unit/test_trr_telemetry.js | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/netwerk/test/unit/test_trr_telemetry.js b/netwerk/test/unit/test_trr_telemetry.js new file mode 100644 index 0000000000..69f5d59201 --- /dev/null +++ b/netwerk/test/unit/test_trr_telemetry.js @@ -0,0 +1,59 @@ +"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(); +} + +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); +}); |