summaryrefslogtreecommitdiffstats
path: root/testing/marionette/harness/marionette_harness/tests/unit/test_marionette.py
diff options
context:
space:
mode:
Diffstat (limited to 'testing/marionette/harness/marionette_harness/tests/unit/test_marionette.py')
-rw-r--r--testing/marionette/harness/marionette_harness/tests/unit/test_marionette.py67
1 files changed, 67 insertions, 0 deletions
diff --git a/testing/marionette/harness/marionette_harness/tests/unit/test_marionette.py b/testing/marionette/harness/marionette_harness/tests/unit/test_marionette.py
new file mode 100644
index 000000000..e68312872
--- /dev/null
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_marionette.py
@@ -0,0 +1,67 @@
+# 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/.
+
+import itertools
+import time
+
+from marionette_driver import errors
+
+from marionette_harness import MarionetteTestCase, run_if_manage_instance, skip_if_mobile
+
+
+class TestMarionette(MarionetteTestCase):
+
+ def test_correct_test_name(self):
+ """Test that the correct test name gets set."""
+ expected_test_name = '{module}.py {cls}.{func}'.format(
+ module=__name__,
+ cls=self.__class__.__name__,
+ func=self.test_correct_test_name.__name__,
+ )
+
+ self.assertEqual(self.marionette.test_name, expected_test_name)
+
+ @run_if_manage_instance("Only runnable if Marionette manages the instance")
+ @skip_if_mobile("Bug 1322993 - Missing temporary folder")
+ def test_wait_for_port_non_existing_process(self):
+ """Test that wait_for_port doesn't run into a timeout if instance is not running."""
+ self.marionette.quit()
+ self.assertIsNotNone(self.marionette.instance.runner.returncode)
+ start_time = time.time()
+ self.assertFalse(self.marionette.wait_for_port(timeout=5))
+ self.assertLess(time.time() - start_time, 5)
+
+
+class TestProtocol2Errors(MarionetteTestCase):
+ def setUp(self):
+ MarionetteTestCase.setUp(self)
+ self.op = self.marionette.protocol
+ self.marionette.protocol = 2
+
+ def tearDown(self):
+ self.marionette.protocol = self.op
+ MarionetteTestCase.tearDown(self)
+
+ def test_malformed_packet(self):
+ req = ["error", "message", "stacktrace"]
+ ps = []
+ for p in [p for i in range(0, len(req) + 1) for p in itertools.permutations(req, i)]:
+ ps.append(dict((x, None) for x in p))
+
+ for p in filter(lambda p: len(p) < 3, ps):
+ self.assertRaises(KeyError, self.marionette._handle_error, p)
+
+ def test_known_error_status(self):
+ with self.assertRaises(errors.NoSuchElementException):
+ self.marionette._handle_error(
+ {"error": errors.NoSuchElementException.status,
+ "message": None,
+ "stacktrace": None})
+
+ def test_unknown_error_status(self):
+ with self.assertRaises(errors.MarionetteException):
+ self.marionette._handle_error(
+ {"error": "barbera",
+ "message": None,
+ "stacktrace": None})