Bug 1319237 - Correct window size- and position test; r=automatedtester,jgraham draft
authorAndreas Tolfsen <ato@mozilla.com>
Mon, 21 Nov 2016 23:30:23 +0100
changeset 482809 53eec809d697e7d6783079a93871685ab4b5e68d
parent 482778 3c300355a94d24e0c1c156f9de4a6e9c60beaa28
child 482810 bf61c18b9a3ab7865cdc3aa063875313823ff295
push id45172
push userbmo:ato@mozilla.com
push dateMon, 13 Feb 2017 14:08:30 +0000
reviewersautomatedtester, jgraham
bugs1319237
milestone54.0a1
Bug 1319237 - Correct window size- and position test; r=automatedtester,jgraham MozReview-Commit-ID: Fajaksg2DhG
testing/web-platform/tests/webdriver/contexts.py
--- a/testing/web-platform/tests/webdriver/contexts.py
+++ b/testing/web-platform/tests/webdriver/contexts.py
@@ -1,32 +1,50 @@
 import json
 import pytest
 import webdriver
 
+def window_size_supported(session):
+    try:
+        session.window.size = ("a", "b")
+    except webdriver.UnsupportedOperationException:
+        return False
+    except webdriver.InvalidArgumentException:
+        return True
 
-@pytest.mark.xfail(raises=webdriver.UnsupportedOperationException)
+def window_position_supported(session):
+    try:
+        session.window.position = ("a", "b")
+    except webdriver.UnsupportedOperationException:
+        return False
+    except webdriver.InvalidArgumentException:
+        return True
+
 def test_window_size_types(http, session):
-    session.start()
+    if not window_size_supported(session):
+        pytest.skip()
+
     with http.get("/session/%s/window/size" % session.session_id) as resp:
         assert resp.status == 200
         body = json.load(resp)
     assert "width" in body
     assert "height" in body
     assert isinstance(body["width"], int)
     assert isinstance(body["height"], int)
 
     size = session.window.size
     assert isinstance(size, tuple)
     assert isinstance(size[0], int)
     assert isinstance(size[1], int)
 
 
-@pytest.mark.xfail(raises=webdriver.UnsupportedOperationException)
 def test_window_resize(session):
+    if not window_size_supported(session):
+        pytest.skip()
+
     # setting the window size by webdriver is synchronous
     # so we should see the results immediately
 
     session.window.size = (400, 500)
     assert session.window.size == (400, 500)
 
     session.window.size = (500, 600)
     assert session.window.size == (500, 600)
@@ -53,23 +71,24 @@ def test_window_resize_by_script(session
     session.execute_script("window.resizeTo(800, 900)")
     size2 = session.window.size
     while size1 == size2:
         size2 = session.window.size
         assert size2 == (800, 900)
     assert size2 == {"width": 200, "height": 100}
 """
 
-@pytest.mark.xfail(raises=webdriver.UnsupportedOperationException)
 def test_window_position_types(http, session):
-    session.start()
+    if not window_position_supported(session):
+        pytest.skip()
+
     with http.get("/session/%s/window/position" % session.session_id) as resp:
         assert resp.status == 200
         body = json.load(resp)
     assert "x" in body
     assert "y" in body
     assert isinstance(body["x"], int)
     assert isinstance(body["y"], int)
 
-    size = session.window.position
-    assert isinstance(size, tuple)
-    assert isinstance(size[0], int)
-    assert isinstance(size[1], int)
+    pos = session.window.position
+    assert isinstance(pos, tuple)
+    assert isinstance(pos[0], int)
+    assert isinstance(pos[1], int)