Bug 1410891 - Use a command helper function. r?maja_zf draft
authorAndreas Tolfsen <ato@sny.no>
Mon, 23 Oct 2017 15:06:19 +0100
changeset 685990 6aa806f563790d30452859104f2e1645d3d1c373
parent 685989 f3c71fec75ee35de728625b23521e9e875a08e9d
child 685991 05df017de34b89b655d3c531fc7735819214af61
push id86059
push userbmo:ato@sny.no
push dateWed, 25 Oct 2017 07:55:16 +0000
reviewersmaja_zf
bugs1410891
milestone58.0a1
Bug 1410891 - Use a command helper function. r?maja_zf Instead of making repeated calls to session.transport.send we can use a helper function like most of the other tests do. This makes the test more succinct and easier on the eye. MozReview-Commit-ID: 689rticvu2d
testing/web-platform/tests/webdriver/tests/element_retrieval/get_active_element.py
--- a/testing/web-platform/tests/webdriver/tests/element_retrieval/get_active_element.py
+++ b/testing/web-platform/tests/webdriver/tests/element_retrieval/get_active_element.py
@@ -1,13 +1,17 @@
 from tests.support.asserts import assert_error, assert_dialog_handled, assert_same_element
 from tests.support.fixtures import create_dialog
 from tests.support.inline import inline
 
 
+def get_active_element(session):
+    return session.transport.send("GET", "session/%s/element/active" % session.session_id)
+
+
 def assert_is_active_element(session, response):
     """Ensure that the provided object is a successful WebDriver
     response describing an element reference and that the referenced
     element matches the element returned by the `activeElement`
     attribute of the current browsing context's active document.
 
     """
     assert response.status == 200
@@ -22,20 +26,19 @@ def assert_is_active_element(session, re
 
 # > 1. If the current browsing context is no longer open, return error with
 # >    error code no such window.
 def test_closed_context(session, create_window):
     new_window = create_window()
     session.window_handle = new_window
     session.close()
 
-    response = session.transport.send("GET",
-                                    "session/%s/element/active" % session.session_id)
+    response = get_active_element(session)
+    assert_error(response, "no such window")
 
-    assert_error(response, "no such window")
 
 # [...]
 # 2. Handle any user prompts and return its value if it is an error.
 # [...]
 # In order to handle any user prompts a remote end must take the following
 # steps:
 # 2. Run the substeps of the first matching user prompt handler:
 #
@@ -46,38 +49,36 @@ def test_closed_context(session, create_
 #
 # 3. Return success.
 def test_handle_prompt_dismiss(new_session):
     _, session = new_session({"alwaysMatch": {"unhandledPromptBehavior": "dismiss"}})
     session.url = inline("<body><p>Hello, World!</p></body>")
 
     create_dialog(session)("alert", text="dismiss #1", result_var="dismiss1")
 
-    response = session.transport.send("GET", "session/%s/element/active" % session.session_id)
-
+    response = get_active_element(session)
     assert_is_active_element(session, response)
     assert_dialog_handled(session, "dismiss #1")
     assert session.execute_script("return dismiss1") is None
 
     create_dialog(session)("confirm", text="dismiss #2", result_var="dismiss2")
 
-    response = session.transport.send("GET", "session/%s/element/active" % session.session_id)
-
+    response = get_active_element(session)
     assert_is_active_element(session, response)
     assert_dialog_handled(session, "dismiss #2")
     assert read_global(session, "dismiss2") is None
 
     create_dialog(session)("prompt", text="dismiss #3", result_var="dismiss3")
 
-    response = session.transport.send("GET", "session/%s/element/active" % session.session_id)
-
+    response = get_active_element(session)
     assert_is_active_element(session, response)
     assert_dialog_handled(session, "dismiss #3")
     assert read_global(session, "dismiss3") is None
 
+
 # [...]
 # 2. Handle any user prompts and return its value if it is an error.
 # [...]
 # In order to handle any user prompts a remote end must take the following
 # steps:
 # 2. Run the substeps of the first matching user prompt handler:
 #
 #    [...]
@@ -86,38 +87,36 @@ def test_handle_prompt_dismiss(new_sessi
 #    [...]
 #
 # 3. Return success.
 def test_handle_prompt_accept(new_session):
     _, session = new_session({"alwaysMatch": {"unhandledPromptBehavior": "accept"}})
     session.url = inline("<body><p>Hello, World!</p></body>")
     create_dialog(session)("alert", text="accept #1", result_var="accept1")
 
-    response = session.transport.send("GET", "session/%s/element/active" % session.session_id)
-
+    response = get_active_element(session)
     assert_is_active_element(session, response)
     assert_dialog_handled(session, "accept #1")
     assert read_global(session, "accept1") is None
 
     create_dialog(session)("confirm", text="accept #2", result_var="accept2")
 
-    response = session.transport.send("GET", "session/%s/element/active" % session.session_id)
-
+    response = get_active_element(session)
     assert_is_active_element(session, response)
     assert_dialog_handled(session, "accept #2")
     assert read_global(session, "accept2") is True
 
     create_dialog(session)("prompt", text="accept #3", result_var="accept3")
 
-    response = session.transport.send("GET", "session/%s/element/active" % session.session_id)
-
+    response = get_active_element(session)
     assert_is_active_element(session, response)
     assert_dialog_handled(session, "accept #3")
     assert read_global(session, "accept3") == ""
 
+
 # [...]
 # 2. Handle any user prompts and return its value if it is an error.
 # [...]
 # In order to handle any user prompts a remote end must take the following
 # steps:
 # 2. Run the substeps of the first matching user prompt handler:
 #
 #    [...]
@@ -125,121 +124,120 @@ def test_handle_prompt_accept(new_sessio
 #    - not in the table of simple dialogs
 #      1. Dismiss the current user prompt.
 #      2. Return error with error code unexpected alert open.
 def test_handle_prompt_missing_value(session, create_dialog):
     session.url = inline("<body><p>Hello, World!</p></body>")
 
     create_dialog("alert", text="dismiss #1", result_var="dismiss1")
 
-    response = session.transport.send("GET", "session/%s/element/active" % session.session_id)
-
+    response = get_active_element(session)
     assert_error(response, "unexpected alert open")
     assert_dialog_handled(session, "dismiss #1")
     assert session.execute_script("return accept1") is None
 
     create_dialog("confirm", text="dismiss #2", result_var="dismiss2")
 
-    response = session.transport.send("GET", "session/%s/element/active" % session.session_id)
-
+    response = get_active_element(session)
     assert_error(response, "unexpected alert open")
     assert_dialog_handled(session, "dismiss #2")
     assert session.execute_script("return dismiss2") is False
 
     create_dialog("prompt", text="dismiss #3", result_var="dismiss3")
 
-    response = session.transport.send("GET", "session/%s/element/active" % session.session_id)
-
+    response = get_active_element(session)
     assert_error(response, "unexpected alert open")
     assert_dialog_handled(session, "dismiss #3")
     assert session.execute_script("return dismiss3") is None
 
+
 # > [...]
 # > 3. Let active element be the active element of the current browsing
 # >    context's document element.
 # > 4. Let active web element be the JSON Serialization of active element.
 # > 5. Return success with data active web element.
 def test_success_document(session):
     session.url = inline("""
         <body>
             <h1>Heading</h1>
             <input />
             <input />
-            <input style="opacity: 0;" />
+            <input style="opacity: 0" />
             <p>Another element</p>
         </body>""")
-    response = session.transport.send("GET", "session/%s/element/active" % session.session_id)
+    response = get_active_element(session)
+    assert_is_active_element(session, response)
 
-    assert_is_active_element(session, response)
 
 def test_sucess_input(session):
     session.url = inline("""
         <body>
             <h1>Heading</h1>
             <input autofocus />
-            <input style="opacity: 0;" />
+            <input style="opacity: 0" />
             <p>Another element</p>
         </body>""")
-    response = session.transport.send("GET", "session/%s/element/active" % session.session_id)
+    response = get_active_element(session)
+    assert_is_active_element(session, response)
 
-    assert_is_active_element(session, response)
 
 def test_sucess_input_non_interactable(session):
     session.url = inline("""
         <body>
             <h1>Heading</h1>
             <input />
-            <input style="opacity: 0;" autofocus />
+            <input style="opacity: 0" autofocus />
             <p>Another element</p>
         </body>""")
-    response = session.transport.send("GET", "session/%s/element/active" % session.session_id)
+    response = get_active_element(session)
+    assert_is_active_element(session, response)
 
-    assert_is_active_element(session, response)
 
 def test_success_explicit_focus(session):
     session.url = inline("""
         <body>
             <h1>Heading</h1>
             <input />
             <iframe></iframe>
         </body>""")
 
-    session.execute_script("document.body.getElementsByTagName('h1')[0].focus();")
-    response = session.transport.send("GET", "session/%s/element/active" % session.session_id)
+    session.execute_script("document.body.getElementsByTagName('h1')[0].focus()")
+    response = get_active_element(session)
     assert_is_active_element(session, response)
 
-    session.execute_script("document.body.getElementsByTagName('input')[0].focus();")
-    response = session.transport.send("GET", "session/%s/element/active" % session.session_id)
+    session.execute_script("document.body.getElementsByTagName('input')[0].focus()")
+    response = get_active_element(session)
     assert_is_active_element(session, response)
 
-    session.execute_script("document.body.getElementsByTagName('iframe')[0].focus();")
-    response = session.transport.send("GET", "session/%s/element/active" % session.session_id)
+    session.execute_script("document.body.getElementsByTagName('iframe')[0].focus()")
+    response = get_active_element(session)
     assert_is_active_element(session, response)
 
-    session.execute_script("document.body.getElementsByTagName('iframe')[0].focus();")
-    session.execute_script("document.body.getElementsByTagName('iframe')[0].remove();")
-    response = session.transport.send("GET", "session/%s/element/active" % session.session_id)
+    session.execute_script("document.body.getElementsByTagName('iframe')[0].focus()")
+    session.execute_script("document.body.getElementsByTagName('iframe')[0].remove()")
+    response = get_active_element(session)
     assert_is_active_element(session, response)
 
-    session.execute_script("document.body.appendChild(document.createElement('textarea'));")
-    response = session.transport.send("GET", "session/%s/element/active" % session.session_id)
+    session.execute_script("document.body.appendChild(document.createElement('textarea'))")
+    response = get_active_element(session)
     assert_is_active_element(session, response)
 
+
 def test_success_iframe_content(session):
     session.url = inline("<body></body>")
     session.execute_script("""
-        var iframe = document.createElement('iframe');
+        let iframe = document.createElement('iframe');
         document.body.appendChild(iframe);
-        var input = iframe.contentDocument.createElement('input');
+        let input = iframe.contentDocument.createElement('input');
         iframe.contentDocument.body.appendChild(input);
-        input.focus();""")
+        input.focus();
+        """)
 
-    response = session.transport.send("GET", "session/%s/element/active" % session.session_id)
+    response = get_active_element(session)
+    assert_is_active_element(session, response)
 
-    assert_is_active_element(session, response)
 
 def test_sucess_without_body(session):
     session.url = inline("<body></body>")
-    session.execute_script("document.body.remove();")
+    session.execute_script("document.body.remove()")
 
-    response = session.transport.send("GET", "session/%s/element/active"% session.session_id)
-
+    response = get_active_element(session)
     assert_is_active_element(session, response)