summaryrefslogtreecommitdiffstats
path: root/toolkit/modules/tests/marionette/test_first_startup.py
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/modules/tests/marionette/test_first_startup.py')
-rw-r--r--toolkit/modules/tests/marionette/test_first_startup.py54
1 files changed, 54 insertions, 0 deletions
diff --git a/toolkit/modules/tests/marionette/test_first_startup.py b/toolkit/modules/tests/marionette/test_first_startup.py
new file mode 100644
index 0000000000..6d8bbce02d
--- /dev/null
+++ b/toolkit/modules/tests/marionette/test_first_startup.py
@@ -0,0 +1,54 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+from marionette_harness import MarionetteTestCase
+
+
+class TestFirstStartup(MarionetteTestCase):
+ def setUp(self):
+ MarionetteTestCase.setUp(self)
+ self.marionette.quit()
+ self.marionette.instance.prefs = {
+ "browser.startup.homepage_override.mstone": ""
+ }
+ self.marionette.instance.app_args = ["-first-startup"]
+
+ def test_new_profile(self):
+ """Test launching with --first-startup when a new profile was created.
+
+ Launches the browser with --first-startup on a freshly created profile
+ and then ensures that FirstStartup.init ran successfully.
+ """
+
+ self.marionette.instance.switch_profile()
+ self.marionette.start_session()
+ self.marionette.set_context("chrome")
+ firstStartupInittedSuccessfully = self.marionette.execute_script(
+ """
+ const { FirstStartup } = ChromeUtils.importESModule("resource://gre/modules/FirstStartup.sys.mjs");
+ return FirstStartup.state == FirstStartup.SUCCESS
+ """
+ )
+
+ self.assertTrue(
+ firstStartupInittedSuccessfully, "FirstStartup initted successfully"
+ )
+
+ def test_existing_profile(self):
+ """Test launching with --first-startup with a pre-existing profile.
+
+ Launches the browser with --first-startup on a profile that has been
+ run before. Ensures that FirstStartup.init was never run.
+ """
+
+ self.marionette.start_session()
+ self.marionette.set_context("chrome")
+ firstStartupSkipped = self.marionette.execute_script(
+ """
+ const { FirstStartup } = ChromeUtils.importESModule("resource://gre/modules/FirstStartup.sys.mjs");
+ return FirstStartup.state == FirstStartup.NOT_STARTED
+ """
+ )
+
+ self.assertTrue(firstStartupSkipped, "FirstStartup init skipped")