1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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'))
|