1# This Source Code Form is subject to the terms of the Mozilla Public
2# License, v. 2.0. If a copy of the MPL was not distributed with this
3# file, You can obtain one at http://mozilla.org/MPL/2.0/.
4
5from marionette_harness import MarionetteTestCase
6
7
8class TestProfileManagement(MarionetteTestCase):
9
10    def setUp(self):
11        MarionetteTestCase.setUp(self)
12        self.marionette.enforce_gecko_prefs(
13            {"marionette.test.bool": True,
14             "marionette.test.string": "testing",
15             "marionette.test.int": 3
16             })
17        self.marionette.set_context("chrome")
18
19    def test_preferences_are_set(self):
20        self.assertTrue(self.marionette.get_pref("marionette.test.bool"))
21        self.assertEqual(self.marionette.get_pref("marionette.test.string"), "testing")
22        self.assertEqual(self.marionette.get_pref("marionette.test.int"), 3)
23
24    def test_change_preference(self):
25        self.assertTrue(self.marionette.get_pref("marionette.test.bool"))
26
27        self.marionette.enforce_gecko_prefs({"marionette.test.bool": False})
28
29        self.assertFalse(self.marionette.get_pref("marionette.test.bool"))
30
31    def test_clean_profile(self):
32        self.marionette.restart(clean=True)
33
34        self.assertEqual(self.marionette.get_pref("marionette.test.bool"), None)
35