summaryrefslogtreecommitdiffstats
path: root/testing/marionette/harness/marionette_harness/tests/unit/test_using_permissions.py
diff options
context:
space:
mode:
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.py46
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'))