diff options
Diffstat (limited to 'testing/marionette/harness/marionette_harness/tests/unit/test_using_permissions.py')
-rw-r--r-- | testing/marionette/harness/marionette_harness/tests/unit/test_using_permissions.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/testing/marionette/harness/marionette_harness/tests/unit/test_using_permissions.py b/testing/marionette/harness/marionette_harness/tests/unit/test_using_permissions.py new file mode 100644 index 000000000..71e271dd4 --- /dev/null +++ b/testing/marionette/harness/marionette_harness/tests/unit/test_using_permissions.py @@ -0,0 +1,46 @@ +# 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_driver.errors import JavascriptException + +from marionette_harness import MarionetteTestCase + + +class TestUsingPermssions(MarionetteTestCase): + + def test_using_permissions(self): + # Test that multiple permissions can be set with 'using_permissions', + # and that they are set correctly and unset correctly after leaving + # the context manager. + original_perm = self.marionette.get_permission('systemXHR') + original_alarm = self.marionette.get_permission('alarms') + new_perm = True if original_perm != 1 else False + new_alarm = True if original_alarm != 1 else False + with self.marionette.using_permissions({'systemXHR': new_perm, + 'alarms': new_alarm}): + now_perm = self.marionette.get_permission('systemXHR') + now_alarm = self.marionette.get_permission('alarms') + self.assertEquals(new_perm, now_perm) + self.assertNotEquals(now_perm, original_perm) + self.assertEquals(new_alarm, now_alarm) + self.assertNotEquals(now_alarm, original_alarm) + self.assertEquals(original_perm, + self.marionette.get_permission('systemXHR')) + self.assertEquals(original_alarm, + self.marionette.get_permission('alarms')) + + def test_exception_using_permissions(self): + # Test that throwing an exception inside the context manager doesn't + # prevent the permissions from being restored at context manager exit. + original_perm = self.marionette.get_permission('systemXHR') + new_perm = True if original_perm != 1 else False + with self.marionette.using_permissions({'systemXHR': new_perm}): + now_perm = self.marionette.get_permission('systemXHR') + self.assertEquals(new_perm, now_perm) + self.assertNotEquals(now_perm, original_perm) + self.assertRaises(JavascriptException, + self.marionette.execute_script, + "return foo.bar.baz;") + self.assertEquals(original_perm, + self.marionette.get_permission('systemXHR')) |