tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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")