diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /toolkit/modules/tests/xpcshell/test_firstStartup.js | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'toolkit/modules/tests/xpcshell/test_firstStartup.js')
-rw-r--r-- | toolkit/modules/tests/xpcshell/test_firstStartup.js | 100 |
1 files changed, 100 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..02f126d66f --- /dev/null +++ b/toolkit/modules/tests/xpcshell/test_firstStartup.js @@ -0,0 +1,100 @@ +"use strict"; + +const { AppConstants } = ChromeUtils.importESModule( + "resource://gre/modules/AppConstants.sys.mjs" +); +const { FirstStartup } = ChromeUtils.importESModule( + "resource://gre/modules/FirstStartup.sys.mjs" +); +const { updateAppInfo } = ChromeUtils.importESModule( + "resource://testing-common/AppInfo.sys.mjs" +); + +const PREF_TIMEOUT = "first-startup.timeout"; + +add_setup(function test_setup() { + // FOG needs a profile directory to put its data in. + do_get_profile(); + + // FOG needs to be initialized in order for data to flow. + Services.fog.initializeFOG(); +}); + +add_task(async function test_success() { + updateAppInfo(); + + let submissionPromise; + + if (AppConstants.MOZ_NORMANDY || AppConstants.MOZ_UPDATE_AGENT) { + submissionPromise = new Promise(resolve => { + GleanPings.firstStartup.testBeforeNextSubmit(() => { + Assert.equal(FirstStartup.state, FirstStartup.SUCCESS); + Assert.equal( + Glean.firstStartup.statusCode.testGetValue(), + FirstStartup.SUCCESS + ); + + if (AppConstants.MOZ_NORMANDY) { + Assert.ok(Glean.firstStartup.normandyInitTime.testGetValue() > 0); + } + + if (AppConstants.MOZ_UPDATE_AGENT) { + Assert.ok(Glean.firstStartup.deleteTasksTime.testGetValue() > 0); + } + + resolve(); + }); + }); + } else { + submissionPromise = new Promise(resolve => { + GleanPings.firstStartup.testBeforeNextSubmit(() => { + Assert.equal(FirstStartup.state, FirstStartup.UNSUPPORTED); + Assert.equal( + Glean.firstStartup.statusCode.testGetValue(), + FirstStartup.UNSUPPORTED + ); + resolve(); + }); + }); + } + + FirstStartup.init(); + await submissionPromise; +}); + +add_task(async function test_timeout() { + updateAppInfo(); + Services.prefs.setIntPref(PREF_TIMEOUT, 0); + + let submissionPromise; + + if (AppConstants.MOZ_NORMANDY || AppConstants.MOZ_UPDATE_AGENT) { + submissionPromise = new Promise(resolve => { + GleanPings.firstStartup.testBeforeNextSubmit(() => { + Assert.equal(FirstStartup.state, FirstStartup.TIMED_OUT); + Assert.ok(Glean.firstStartup.elapsed.testGetValue() > 0); + + if (AppConstants.MOZ_NORMANDY) { + Assert.ok(Glean.firstStartup.normandyInitTime.testGetValue() > 0); + } + + if (AppConstants.MOZ_UPDATE_AGENT) { + Assert.ok(Glean.firstStartup.deleteTasksTime.testGetValue() > 0); + } + + resolve(); + }); + }); + } else { + submissionPromise = new Promise(resolve => { + GleanPings.firstStartup.testBeforeNextSubmit(() => { + Assert.equal(FirstStartup.state, FirstStartup.UNSUPPORTED); + Assert.equal(Glean.firstStartup.elapsed.testGetValue(), 0); + resolve(); + }); + }); + } + + FirstStartup.init(); + await submissionPromise; +}); |