summaryrefslogtreecommitdiffstats
path: root/testing/marionette/harness/marionette_harness/tests/unit/test_set_permission.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:13:27 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:13:27 +0000
commit40a355a42d4a9444dc753c04c6608dade2f06a23 (patch)
tree871fc667d2de662f171103ce5ec067014ef85e61 /testing/marionette/harness/marionette_harness/tests/unit/test_set_permission.py
parentAdding upstream version 124.0.1. (diff)
downloadfirefox-40a355a42d4a9444dc753c04c6608dade2f06a23.tar.xz
firefox-40a355a42d4a9444dc753c04c6608dade2f06a23.zip
Adding upstream version 125.0.1.upstream/125.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/marionette/harness/marionette_harness/tests/unit/test_set_permission.py')
-rw-r--r--testing/marionette/harness/marionette_harness/tests/unit/test_set_permission.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/testing/marionette/harness/marionette_harness/tests/unit/test_set_permission.py b/testing/marionette/harness/marionette_harness/tests/unit/test_set_permission.py
new file mode 100644
index 0000000000..476d9c5729
--- /dev/null
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_set_permission.py
@@ -0,0 +1,50 @@
+# 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 import errors
+from marionette_harness import MarionetteTestCase
+
+
+class TestSetPermission(MarionetteTestCase):
+ def setUp(self):
+ super().setUp()
+ test_empty = self.marionette.absolute_url("empty.html")
+ self.marionette.set_pref("marionette.setpermission.enabled", True)
+ self.marionette.navigate(test_empty)
+
+ def query_permission(self, descriptor):
+ return self.marionette.execute_script(
+ """
+ return navigator.permissions.query(arguments[0]).then(status => status.state)
+ """,
+ script_args=(descriptor,),
+ )
+
+ def test_granted(self):
+ self.marionette.set_permission({"name": "midi"}, "granted")
+ self.assertEqual(self.query_permission({"name": "midi"}), "granted")
+
+ def test_denied(self):
+ self.marionette.set_permission({"name": "midi"}, "denied")
+ self.assertEqual(self.query_permission({"name": "midi"}), "denied")
+
+ def test_prompt(self):
+ self.marionette.set_permission({"name": "midi"}, "prompt")
+ self.assertEqual(self.query_permission({"name": "midi"}), "prompt")
+
+ def test_invalid_name(self):
+ with self.assertRaises(errors.InvalidArgumentException):
+ self.marionette.set_permission({"name": "firefox"}, "granted")
+
+ def test_invalid_state(self):
+ with self.assertRaises(errors.InvalidArgumentException):
+ self.marionette.set_permission({"name": "midi"}, "default")
+
+ def test_extra_flags(self):
+ self.marionette.set_permission({"name": "midi"}, "granted")
+ self.marionette.set_permission({"name": "midi", "sysex": True}, "prompt")
+ self.assertEqual(self.query_permission({"name": "midi"}), "granted")
+ self.assertEqual(
+ self.query_permission({"name": "midi", "sysex": True}), "prompt"
+ )