testing/marionette/harness/marionette/tests/unit/test_window_position.py
author Andreas Tolfsen <ato@mozilla.com>
Thu, 06 Oct 2016 13:13:58 +0100
changeset 421553 d2ef531348679e03c77745b0ac8a865cd4b59584
parent 421552 43b28fda88b454f864b67f5f862797d1ee8000f9
permissions -rw-r--r--
Bug 1282833 - Add out of bounds type checks to Set Window Position; r?automatedtester MozReview-Commit-ID: 3nx8qhdBOIZ

#Copyright 2007-2009 WebDriver committers
#
#Licensed under the Apache License, Version 2.0 (the "License");
#you may not use this file except in compliance with the License.
#You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
#Unless required by applicable law or agreed to in writing, software
#distributed under the License is distributed on an "AS IS" BASIS,
#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#See the License for the specific language governing permissions and
#limitations under the License.

from marionette import MarionetteTestCase
from marionette_driver.errors import InvalidArgumentException

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

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

    def test_out_of_bounds_arguments(self):
        with self.assertRaises(InvalidArgumentException):
            self.marionette.set_window_position(-1, 0)
        with self.assertRaises(InvalidArgumentException):
            self.marionette.set_window_position(0, -1)

    def test_move(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"])