summaryrefslogtreecommitdiffstats
path: root/testing/marionette/harness/marionette_harness/tests/unit/test_screen_orientation.py
diff options
context:
space:
mode:
Diffstat (limited to 'testing/marionette/harness/marionette_harness/tests/unit/test_screen_orientation.py')
-rw-r--r--testing/marionette/harness/marionette_harness/tests/unit/test_screen_orientation.py86
1 files changed, 86 insertions, 0 deletions
diff --git a/testing/marionette/harness/marionette_harness/tests/unit/test_screen_orientation.py b/testing/marionette/harness/marionette_harness/tests/unit/test_screen_orientation.py
new file mode 100644
index 000000000..830795a1e
--- /dev/null
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_screen_orientation.py
@@ -0,0 +1,86 @@
+# 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 mozrunner.devices.emulator_screen import EmulatorScreen
+
+from marionette_harness import MarionetteTestCase, skip_if_desktop, skip_if_mobile
+
+
+default_orientation = "portrait-primary"
+unknown_orientation = "Unknown screen orientation: {}"
+
+
+class TestScreenOrientation(MarionetteTestCase):
+ def setUp(self):
+ MarionetteTestCase.setUp(self)
+ self.is_mobile = self.marionette.session_capabilities.get("rotatable", False)
+
+ def tearDown(self):
+ if self.is_mobile:
+ self.marionette.set_orientation(default_orientation)
+ self.assertEqual(self.marionette.orientation, default_orientation, "invalid state")
+ MarionetteTestCase.tearDown(self)
+
+ @skip_if_desktop("Not supported in Firefox")
+ def test_set_orientation_to_portrait_primary(self):
+ self.marionette.set_orientation("portrait-primary")
+ new_orientation = self.marionette.orientation
+ self.assertEqual(new_orientation, "portrait-primary")
+
+ @skip_if_desktop("Not supported in Firefox")
+ def test_set_orientation_to_landscape_primary(self):
+ self.marionette.set_orientation("landscape-primary")
+ new_orientation = self.marionette.orientation
+ self.assertEqual(new_orientation, "landscape-primary")
+
+ @skip_if_desktop("Not supported in Firefox")
+ def test_set_orientation_to_portrait_secondary(self):
+ self.marionette.set_orientation("portrait-secondary")
+ new_orientation = self.marionette.orientation
+ self.assertEqual(new_orientation, "portrait-secondary")
+
+ @skip_if_desktop("Not supported in Firefox")
+ def test_set_orientation_to_landscape_secondary(self):
+ self.marionette.set_orientation("landscape-secondary")
+ new_orientation = self.marionette.orientation
+ self.assertEqual(new_orientation, "landscape-secondary")
+
+ @skip_if_desktop("Not supported in Firefox")
+ def test_set_orientation_to_shorthand_portrait(self):
+ # Set orientation to something other than portrait-primary first, since the default is
+ # portrait-primary.
+ self.marionette.set_orientation("landscape-primary")
+ self.assertEqual(self.marionette.orientation, "landscape-primary", "invalid state")
+
+ self.marionette.set_orientation("portrait")
+ new_orientation = self.marionette.orientation
+ self.assertEqual(new_orientation, "portrait-primary")
+
+ @skip_if_desktop("Not supported in Firefox")
+ def test_set_orientation_to_shorthand_landscape(self):
+ self.marionette.set_orientation("landscape")
+ new_orientation = self.marionette.orientation
+ self.assertEqual(new_orientation, "landscape-primary")
+
+ @skip_if_desktop("Not supported in Firefox")
+ def test_set_orientation_with_mixed_casing(self):
+ self.marionette.set_orientation("lAnDsCaPe")
+ new_orientation = self.marionette.orientation
+ self.assertEqual(new_orientation, "landscape-primary")
+
+ @skip_if_desktop("Not supported in Firefox")
+ def test_set_invalid_orientation(self):
+ with self.assertRaisesRegexp(errors.MarionetteException, unknown_orientation.format("cheese")):
+ self.marionette.set_orientation("cheese")
+
+ @skip_if_desktop("Not supported in Firefox")
+ def test_set_null_orientation(self):
+ with self.assertRaisesRegexp(errors.MarionetteException, unknown_orientation.format("null")):
+ self.marionette.set_orientation(None)
+
+ @skip_if_mobile("Specific test for Firefox")
+ def test_unsupported_operation_on_desktop(self):
+ with self.assertRaises(errors.UnsupportedOperationException):
+ self.marionette.set_orientation("landscape-primary")