diff options
Diffstat (limited to 'toolkit/modules/tests/xpcshell/test_firstStartup.js')
-rw-r--r-- | toolkit/modules/tests/xpcshell/test_firstStartup.js | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/toolkit/modules/tests/xpcshell/test_firstStartup.js b/toolkit/modules/tests/xpcshell/test_firstStartup.js new file mode 100644 index 0000000000..a5fce5b563 --- /dev/null +++ b/toolkit/modules/tests/xpcshell/test_firstStartup.js @@ -0,0 +1,55 @@ +"use strict"; + +const { AppConstants } = ChromeUtils.import( + "resource://gre/modules/AppConstants.jsm" +); +const { FirstStartup } = ChromeUtils.import( + "resource://gre/modules/FirstStartup.jsm" +); +const { updateAppInfo } = ChromeUtils.import( + "resource://testing-common/AppInfo.jsm" +); + +const PREF_TIMEOUT = "first-startup.timeout"; +const PROBE_NAME = "firstStartup.statusCode"; + +add_task(async function test_success() { + updateAppInfo(); + FirstStartup.init(); + if (AppConstants.MOZ_NORMANDY) { + equal(FirstStartup.state, FirstStartup.SUCCESS); + } else { + equal(FirstStartup.state, FirstStartup.UNSUPPORTED); + } + + const scalars = Services.telemetry.getSnapshotForScalars("main", false) + .parent; + ok(PROBE_NAME in scalars); + + if (AppConstants.MOZ_NORMANDY) { + equal(scalars[PROBE_NAME], FirstStartup.SUCCESS); + } else { + equal(scalars[PROBE_NAME], FirstStartup.UNSUPPORTED); + } +}); + +add_task(async function test_timeout() { + updateAppInfo(); + Services.prefs.setIntPref(PREF_TIMEOUT, 0); + FirstStartup.init(); + + if (AppConstants.MOZ_NORMANDY) { + equal(FirstStartup.state, FirstStartup.TIMED_OUT); + } else { + equal(FirstStartup.state, FirstStartup.UNSUPPORTED); + } + + const scalars = Services.telemetry.getSnapshotForScalars("main", false) + .parent; + ok(PROBE_NAME in scalars); + if (AppConstants.MOZ_NORMANDY) { + equal(scalars[PROBE_NAME], FirstStartup.TIMED_OUT); + } else { + equal(scalars[PROBE_NAME], FirstStartup.UNSUPPORTED); + } +}); |