test_set_permission.py (2188B)
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 5 from marionette_driver import errors 6 from marionette_harness import MarionetteTestCase 7 8 9 class TestSetPermission(MarionetteTestCase): 10 def setUp(self): 11 super().setUp() 12 test_empty = self.marionette.absolute_url("empty.html") 13 self.marionette.navigate(test_empty) 14 15 def query_permission(self, descriptor): 16 return self.marionette.execute_script( 17 """ 18 return navigator.permissions.query(arguments[0]).then(status => status.state) 19 """, 20 script_args=(descriptor,), 21 ) 22 23 def test_granted(self): 24 self.marionette.set_permission({"name": "midi"}, "granted") 25 self.assertEqual(self.query_permission({"name": "midi"}), "granted") 26 27 def test_denied(self): 28 self.marionette.set_permission({"name": "midi"}, "denied") 29 self.assertEqual(self.query_permission({"name": "midi"}), "denied") 30 31 def test_prompt(self): 32 self.marionette.set_permission({"name": "midi"}, "prompt") 33 self.assertEqual(self.query_permission({"name": "midi"}), "prompt") 34 35 def test_invalid_name(self): 36 with self.assertRaises(errors.InvalidArgumentException): 37 self.marionette.set_permission({"name": "firefox"}, "granted") 38 39 def test_invalid_state(self): 40 with self.assertRaises(errors.InvalidArgumentException): 41 self.marionette.set_permission({"name": "midi"}, "default") 42 43 def test_extra_flags(self): 44 self.marionette.set_permission({"name": "midi"}, "granted") 45 self.marionette.set_permission({"name": "midi", "sysex": True}, "prompt") 46 self.assertEqual(self.query_permission({"name": "midi"}), "granted") 47 self.assertEqual( 48 self.query_permission({"name": "midi", "sysex": True}), "prompt" 49 ) 50 51 def test_storage_access(self): 52 self.marionette.set_permission({"name": "storage-access"}, "granted") 53 self.assertEqual(self.query_permission({"name": "storage-access"}), "granted")