testing/marionette/harness/marionette_harness/tests/unit/test_window_position.py
author Andreas Tolfsen <ato@mozilla.com>
Thu, 02 Feb 2017 14:57:19 +0000
changeset 482818 baecae60af14ee4f5a16b553054c1e8c919547ba
parent 482817 194e162cea3a88c9b5b5f3b2f677ac416e1b9784
child 481998 351d2689f3bb71c9616f3eebe7793a0055c05be6
permissions -rw-r--r--
Bug 1319237 - Improve window position test assertions; r=maja_zf MozReview-Commit-ID: qmFS0JEqx3

# 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.errors import InvalidArgumentException

from marionette_harness import MarionetteTestCase


class TestWindowPosition(MarionetteTestCase):
    def test_get_types(self):
        position = self.marionette.get_window_position()
        self.assertIsInstance(position["x"], int)
        self.assertIsInstance(position["y"], int)

    def test_set_types(self):
        for x, y in (["a", "b"], [1.2, 3.4], [True, False], [[], []], [{}, {}]):
            print("testing invalid type position ({},{})".format(x, y))
            with self.assertRaises(InvalidArgumentException):
                self.marionette.set_window_position(x, y)

    def test_out_of_bounds_arguments(self):
        for x, y in [(-1,0), (0,-1), (-1,-1)]:
            print("testing out of bounds position ({},{})".format(x, y))
            with self.assertRaises(InvalidArgumentException):
                self.marionette.set_window_position(x, y)

    def test_move_to_new_position(self):
        old_position = self.marionette.get_window_position()
        new_position = {"x": old_position["x"] + 10, "y": old_position["y"] + 10}
        self.marionette.set_window_position(new_position["x"], new_position["y"])
        self.assertNotEqual(old_position["x"], new_position["x"])
        self.assertNotEqual(old_position["y"], new_position["y"])