Changeset 231727 in webkit


Ignore:
Timestamp:
May 11, 2018 4:03:36 PM (6 years ago)
Author:
BJ Burg
Message:

Unreviewed. Update W3C WebDriver imported tests.

This includes upstream PR #10968, which has a fix for XSSAuditor
blocking scripts loaded via inline.py. Test expectations for
webkitgtkdriver may need to be updated with progressions and new tests.

  • imported/w3c/importer.json:
  • imported/w3c/tools/webdriver/webdriver/client.py:
  • imported/w3c/tools/wptrunner/requirements_chrome.txt:
  • imported/w3c/tools/wptrunner/requirements_chrome_android.txt: Copied from WebDriverTests/imported/w3c/tools/wptrunner/requirements_opera.txt.
  • imported/w3c/tools/wptrunner/requirements_edge.txt:
  • imported/w3c/tools/wptrunner/requirements_firefox.txt:
  • imported/w3c/tools/wptrunner/requirements_ie.txt:
  • imported/w3c/tools/wptrunner/requirements_opera.txt:
  • imported/w3c/tools/wptrunner/requirements_safari.txt:
  • imported/w3c/tools/wptrunner/requirements_sauce.txt:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/firefox.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/sauce.py:
  • imported/w3c/tools/wptrunner/wptrunner/environment.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/base.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/executormarionette.py:
  • imported/w3c/tools/wptrunner/wptrunner/formatters.py:
  • imported/w3c/tools/wptrunner/wptrunner/reduce.py:
  • imported/w3c/tools/wptrunner/wptrunner/testrunner.py:
  • imported/w3c/tools/wptrunner/wptrunner/tests/browsers/test_sauce.py: Added.
  • imported/w3c/tools/wptrunner/wptrunner/tests/test_products.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptcommandline.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptrunner.py:
  • imported/w3c/tools/wptrunner/wptrunner/wpttest.py:
  • imported/w3c/webdriver/tests/accept_alert/init.py: Added.
  • imported/w3c/webdriver/tests/accept_alert/accept.py: Added.
  • imported/w3c/webdriver/tests/add_cookie/init.py: Added.
  • imported/w3c/webdriver/tests/add_cookie/add.py: Added.
  • imported/w3c/webdriver/tests/close_window/init.py: Added.
  • imported/w3c/webdriver/tests/close_window/close.py: Added.
  • imported/w3c/webdriver/tests/close_window/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/delete_cookie/init.py: Added.
  • imported/w3c/webdriver/tests/delete_cookie/delete.py: Added.
  • imported/w3c/webdriver/tests/delete_cookie/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/dismiss_alert/init.py: Added.
  • imported/w3c/webdriver/tests/dismiss_alert/dismiss.py: Added.
  • imported/w3c/webdriver/tests/element_clear/init.py: Added.
  • imported/w3c/webdriver/tests/element_clear/clear.py: Added.
  • imported/w3c/webdriver/tests/element_click/bubbling.py:
  • imported/w3c/webdriver/tests/element_click/stale.py:
  • imported/w3c/webdriver/tests/element_send_keys/content_editable.py: Added.
  • imported/w3c/webdriver/tests/element_send_keys/form_controls.py:
  • imported/w3c/webdriver/tests/element_send_keys/interactability.py:
  • imported/w3c/webdriver/tests/element_send_keys/scroll_into_view.py:
  • imported/w3c/webdriver/tests/execute_async_script/collections.py:
  • imported/w3c/webdriver/tests/execute_async_script/user_prompts.py:
  • imported/w3c/webdriver/tests/execute_script/collections.py:
  • imported/w3c/webdriver/tests/execute_script/cyclic.py:
  • imported/w3c/webdriver/tests/execute_script/json_serialize_windowproxy.py: Added.
  • imported/w3c/webdriver/tests/execute_script/user_prompts.py:
  • imported/w3c/webdriver/tests/find_element/init.py: Added.
  • imported/w3c/webdriver/tests/find_element/find.py: Added.
  • imported/w3c/webdriver/tests/find_element_from_element/init.py: Added.
  • imported/w3c/webdriver/tests/find_element_from_element/find.py: Added.
  • imported/w3c/webdriver/tests/find_elements/init.py: Added.
  • imported/w3c/webdriver/tests/find_elements/find.py: Added.
  • imported/w3c/webdriver/tests/find_elements_from_element/init.py: Added.
  • imported/w3c/webdriver/tests/find_elements_from_element/find.py: Added.
  • imported/w3c/webdriver/tests/fullscreen_window/init.py: Added.
  • imported/w3c/webdriver/tests/fullscreen_window/fullscreen.py: Added.
  • imported/w3c/webdriver/tests/fullscreen_window/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/get_active_element/init.py: Added.
  • imported/w3c/webdriver/tests/get_active_element/get.py: Added.
  • imported/w3c/webdriver/tests/get_alert_text/init.py: Added.
  • imported/w3c/webdriver/tests/get_alert_text/get.py: Added.
  • imported/w3c/webdriver/tests/get_current_url/init.py: Added.
  • imported/w3c/webdriver/tests/get_current_url/get.py: Added.
  • imported/w3c/webdriver/tests/get_current_url/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/get_element_attribute/get.py: Added.
  • imported/w3c/webdriver/tests/get_element_property/init.py: Added.
  • imported/w3c/webdriver/tests/get_element_property/get.py: Added.
  • imported/w3c/webdriver/tests/get_element_property/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/get_element_tag_name/init.py: Added.
  • imported/w3c/webdriver/tests/get_element_tag_name/get.py: Added.
  • imported/w3c/webdriver/tests/get_element_tag_name/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/get_element_text/init.py: Added.
  • imported/w3c/webdriver/tests/get_element_text/get.py: Added.
  • imported/w3c/webdriver/tests/get_named_cookie/init.py: Added.
  • imported/w3c/webdriver/tests/get_named_cookie/get.py: Added.
  • imported/w3c/webdriver/tests/get_timeouts/init.py: Added.
  • imported/w3c/webdriver/tests/get_timeouts/get.py: Added.
  • imported/w3c/webdriver/tests/get_title/init.py: Added.
  • imported/w3c/webdriver/tests/get_title/get.py: Added.
  • imported/w3c/webdriver/tests/get_title/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/get_window_rect/init.py: Added.
  • imported/w3c/webdriver/tests/get_window_rect/get.py: Added.
  • imported/w3c/webdriver/tests/get_window_rect/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/is_element_selected/init.py: Added.
  • imported/w3c/webdriver/tests/is_element_selected/selected.py: Added.
  • imported/w3c/webdriver/tests/is_element_selected/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/maximize_window/init.py: Added.
  • imported/w3c/webdriver/tests/maximize_window/maximize.py: Added.
  • imported/w3c/webdriver/tests/maximize_window/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/minimize_window/init.py: Added.
  • imported/w3c/webdriver/tests/minimize_window/minimize.py: Added.
  • imported/w3c/webdriver/tests/minimize_window/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/new_session/init.py: Added.
  • imported/w3c/webdriver/tests/new_session/conftest.py: Added.
  • imported/w3c/webdriver/tests/new_session/create_alwaysMatch.py: Added.
  • imported/w3c/webdriver/tests/new_session/create_firstMatch.py: Added.
  • imported/w3c/webdriver/tests/new_session/default_values.py: Added.
  • imported/w3c/webdriver/tests/new_session/invalid_capabilities.py: Added.
  • imported/w3c/webdriver/tests/new_session/merge.py: Added.
  • imported/w3c/webdriver/tests/new_session/response.py: Added.
  • imported/w3c/webdriver/tests/new_session/support/init.py: Added.
  • imported/w3c/webdriver/tests/new_session/support/create.py: Added.
  • imported/w3c/webdriver/tests/page_source/init.py: Added.
  • imported/w3c/webdriver/tests/page_source/source.py: Added.
  • imported/w3c/webdriver/tests/send_alert_text/init.py: Added.
  • imported/w3c/webdriver/tests/send_alert_text/send.py: Added.
  • imported/w3c/webdriver/tests/set_window_rect/init.py: Added.
  • imported/w3c/webdriver/tests/set_window_rect/resizing_and_positioning.py: Added.
  • imported/w3c/webdriver/tests/set_window_rect/set.py: Added.
  • imported/w3c/webdriver/tests/set_window_rect/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/status/init.py: Added.
  • imported/w3c/webdriver/tests/status/status.py: Added.
  • imported/w3c/webdriver/tests/support/fixtures.py:
  • imported/w3c/webdriver/tests/support/inline.py:
  • imported/w3c/webdriver/tests/switch_to_parent_frame/init.py: Added.
  • imported/w3c/webdriver/tests/switch_to_parent_frame/switch.py: Added.
Location:
trunk/WebDriverTests
Files:
117 added
34 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/WebDriverTests/ChangeLog

    r231632 r231727  
     12018-05-11  Brian Burg  <bburg@apple.com>
     2
     3        Unreviewed. Update W3C WebDriver imported tests.
     4
     5        This includes upstream PR #10968, which has a fix for XSSAuditor
     6        blocking scripts loaded via inline.py. Test expectations for
     7        webkitgtkdriver may need to be updated with progressions and new tests.
     8
     9        * imported/w3c/importer.json:
     10        * imported/w3c/tools/webdriver/webdriver/client.py:
     11        * imported/w3c/tools/wptrunner/requirements_chrome.txt:
     12        * imported/w3c/tools/wptrunner/requirements_chrome_android.txt: Copied from WebDriverTests/imported/w3c/tools/wptrunner/requirements_opera.txt.
     13        * imported/w3c/tools/wptrunner/requirements_edge.txt:
     14        * imported/w3c/tools/wptrunner/requirements_firefox.txt:
     15        * imported/w3c/tools/wptrunner/requirements_ie.txt:
     16        * imported/w3c/tools/wptrunner/requirements_opera.txt:
     17        * imported/w3c/tools/wptrunner/requirements_safari.txt:
     18        * imported/w3c/tools/wptrunner/requirements_sauce.txt:
     19        * imported/w3c/tools/wptrunner/wptrunner/browsers/firefox.py:
     20        * imported/w3c/tools/wptrunner/wptrunner/browsers/sauce.py:
     21        * imported/w3c/tools/wptrunner/wptrunner/environment.py:
     22        * imported/w3c/tools/wptrunner/wptrunner/executors/base.py:
     23        * imported/w3c/tools/wptrunner/wptrunner/executors/executormarionette.py:
     24        * imported/w3c/tools/wptrunner/wptrunner/formatters.py:
     25        * imported/w3c/tools/wptrunner/wptrunner/reduce.py:
     26        * imported/w3c/tools/wptrunner/wptrunner/testrunner.py:
     27        * imported/w3c/tools/wptrunner/wptrunner/tests/browsers/test_sauce.py: Added.
     28        * imported/w3c/tools/wptrunner/wptrunner/tests/test_products.py:
     29        * imported/w3c/tools/wptrunner/wptrunner/wptcommandline.py:
     30        * imported/w3c/tools/wptrunner/wptrunner/wptrunner.py:
     31        * imported/w3c/tools/wptrunner/wptrunner/wpttest.py:
     32        * imported/w3c/webdriver/tests/accept_alert/__init__.py: Added.
     33        * imported/w3c/webdriver/tests/accept_alert/accept.py: Added.
     34        * imported/w3c/webdriver/tests/add_cookie/__init__.py: Added.
     35        * imported/w3c/webdriver/tests/add_cookie/add.py: Added.
     36        * imported/w3c/webdriver/tests/close_window/__init__.py: Added.
     37        * imported/w3c/webdriver/tests/close_window/close.py: Added.
     38        * imported/w3c/webdriver/tests/close_window/user_prompts.py: Added.
     39        * imported/w3c/webdriver/tests/delete_cookie/__init__.py: Added.
     40        * imported/w3c/webdriver/tests/delete_cookie/delete.py: Added.
     41        * imported/w3c/webdriver/tests/delete_cookie/user_prompts.py: Added.
     42        * imported/w3c/webdriver/tests/dismiss_alert/__init__.py: Added.
     43        * imported/w3c/webdriver/tests/dismiss_alert/dismiss.py: Added.
     44        * imported/w3c/webdriver/tests/element_clear/__init__.py: Added.
     45        * imported/w3c/webdriver/tests/element_clear/clear.py: Added.
     46        * imported/w3c/webdriver/tests/element_click/bubbling.py:
     47        * imported/w3c/webdriver/tests/element_click/stale.py:
     48        * imported/w3c/webdriver/tests/element_send_keys/content_editable.py: Added.
     49        * imported/w3c/webdriver/tests/element_send_keys/form_controls.py:
     50        * imported/w3c/webdriver/tests/element_send_keys/interactability.py:
     51        * imported/w3c/webdriver/tests/element_send_keys/scroll_into_view.py:
     52        * imported/w3c/webdriver/tests/execute_async_script/collections.py:
     53        * imported/w3c/webdriver/tests/execute_async_script/user_prompts.py:
     54        * imported/w3c/webdriver/tests/execute_script/collections.py:
     55        * imported/w3c/webdriver/tests/execute_script/cyclic.py:
     56        * imported/w3c/webdriver/tests/execute_script/json_serialize_windowproxy.py: Added.
     57        * imported/w3c/webdriver/tests/execute_script/user_prompts.py:
     58        * imported/w3c/webdriver/tests/find_element/__init__.py: Added.
     59        * imported/w3c/webdriver/tests/find_element/find.py: Added.
     60        * imported/w3c/webdriver/tests/find_element_from_element/__init__.py: Added.
     61        * imported/w3c/webdriver/tests/find_element_from_element/find.py: Added.
     62        * imported/w3c/webdriver/tests/find_elements/__init__.py: Added.
     63        * imported/w3c/webdriver/tests/find_elements/find.py: Added.
     64        * imported/w3c/webdriver/tests/find_elements_from_element/__init__.py: Added.
     65        * imported/w3c/webdriver/tests/find_elements_from_element/find.py: Added.
     66        * imported/w3c/webdriver/tests/fullscreen_window/__init__.py: Added.
     67        * imported/w3c/webdriver/tests/fullscreen_window/fullscreen.py: Added.
     68        * imported/w3c/webdriver/tests/fullscreen_window/user_prompts.py: Added.
     69        * imported/w3c/webdriver/tests/get_active_element/__init__.py: Added.
     70        * imported/w3c/webdriver/tests/get_active_element/get.py: Added.
     71        * imported/w3c/webdriver/tests/get_alert_text/__init__.py: Added.
     72        * imported/w3c/webdriver/tests/get_alert_text/get.py: Added.
     73        * imported/w3c/webdriver/tests/get_current_url/__init__.py: Added.
     74        * imported/w3c/webdriver/tests/get_current_url/get.py: Added.
     75        * imported/w3c/webdriver/tests/get_current_url/user_prompts.py: Added.
     76        * imported/w3c/webdriver/tests/get_element_attribute/get.py: Added.
     77        * imported/w3c/webdriver/tests/get_element_property/__init__.py: Added.
     78        * imported/w3c/webdriver/tests/get_element_property/get.py: Added.
     79        * imported/w3c/webdriver/tests/get_element_property/user_prompts.py: Added.
     80        * imported/w3c/webdriver/tests/get_element_tag_name/__init__.py: Added.
     81        * imported/w3c/webdriver/tests/get_element_tag_name/get.py: Added.
     82        * imported/w3c/webdriver/tests/get_element_tag_name/user_prompts.py: Added.
     83        * imported/w3c/webdriver/tests/get_element_text/__init__.py: Added.
     84        * imported/w3c/webdriver/tests/get_element_text/get.py: Added.
     85        * imported/w3c/webdriver/tests/get_named_cookie/__init__.py: Added.
     86        * imported/w3c/webdriver/tests/get_named_cookie/get.py: Added.
     87        * imported/w3c/webdriver/tests/get_timeouts/__init__.py: Added.
     88        * imported/w3c/webdriver/tests/get_timeouts/get.py: Added.
     89        * imported/w3c/webdriver/tests/get_title/__init__.py: Added.
     90        * imported/w3c/webdriver/tests/get_title/get.py: Added.
     91        * imported/w3c/webdriver/tests/get_title/user_prompts.py: Added.
     92        * imported/w3c/webdriver/tests/get_window_rect/__init__.py: Added.
     93        * imported/w3c/webdriver/tests/get_window_rect/get.py: Added.
     94        * imported/w3c/webdriver/tests/get_window_rect/user_prompts.py: Added.
     95        * imported/w3c/webdriver/tests/is_element_selected/__init__.py: Added.
     96        * imported/w3c/webdriver/tests/is_element_selected/selected.py: Added.
     97        * imported/w3c/webdriver/tests/is_element_selected/user_prompts.py: Added.
     98        * imported/w3c/webdriver/tests/maximize_window/__init__.py: Added.
     99        * imported/w3c/webdriver/tests/maximize_window/maximize.py: Added.
     100        * imported/w3c/webdriver/tests/maximize_window/user_prompts.py: Added.
     101        * imported/w3c/webdriver/tests/minimize_window/__init__.py: Added.
     102        * imported/w3c/webdriver/tests/minimize_window/minimize.py: Added.
     103        * imported/w3c/webdriver/tests/minimize_window/user_prompts.py: Added.
     104        * imported/w3c/webdriver/tests/new_session/__init__.py: Added.
     105        * imported/w3c/webdriver/tests/new_session/conftest.py: Added.
     106        * imported/w3c/webdriver/tests/new_session/create_alwaysMatch.py: Added.
     107        * imported/w3c/webdriver/tests/new_session/create_firstMatch.py: Added.
     108        * imported/w3c/webdriver/tests/new_session/default_values.py: Added.
     109        * imported/w3c/webdriver/tests/new_session/invalid_capabilities.py: Added.
     110        * imported/w3c/webdriver/tests/new_session/merge.py: Added.
     111        * imported/w3c/webdriver/tests/new_session/response.py: Added.
     112        * imported/w3c/webdriver/tests/new_session/support/__init__.py: Added.
     113        * imported/w3c/webdriver/tests/new_session/support/create.py: Added.
     114        * imported/w3c/webdriver/tests/page_source/__init__.py: Added.
     115        * imported/w3c/webdriver/tests/page_source/source.py: Added.
     116        * imported/w3c/webdriver/tests/send_alert_text/__init__.py: Added.
     117        * imported/w3c/webdriver/tests/send_alert_text/send.py: Added.
     118        * imported/w3c/webdriver/tests/set_window_rect/__init__.py: Added.
     119        * imported/w3c/webdriver/tests/set_window_rect/resizing_and_positioning.py: Added.
     120        * imported/w3c/webdriver/tests/set_window_rect/set.py: Added.
     121        * imported/w3c/webdriver/tests/set_window_rect/user_prompts.py: Added.
     122        * imported/w3c/webdriver/tests/status/__init__.py: Added.
     123        * imported/w3c/webdriver/tests/status/status.py: Added.
     124        * imported/w3c/webdriver/tests/support/fixtures.py:
     125        * imported/w3c/webdriver/tests/support/inline.py:
     126        * imported/w3c/webdriver/tests/switch_to_parent_frame/__init__.py: Added.
     127        * imported/w3c/webdriver/tests/switch_to_parent_frame/switch.py: Added.
     128
    11292018-05-09  Carlos Garcia Campos  <cgarcia@igalia.com>
    2130
  • trunk/WebDriverTests/imported/w3c/importer.json

    r230953 r231727  
    11{
    22    "repository": "https://github.com/w3c/web-platform-tests.git",
    3     "revision": "564cfb3a6bd13e949d5c49ad6e5f2cb3752173f3",
     3    "revision": "389b958c00a4d6b897bfce284c0c88bf451fb6b8",
    44    "paths_to_import": [
    55        "tools/webdriver",
  • trunk/WebDriverTests/imported/w3c/tools/webdriver/webdriver/client.py

    r230953 r231727  
    537537    @command
    538538    def close(self):
    539         return self.send_session_command("DELETE", "window")
     539        handles = self.send_session_command("DELETE", "window")
     540        if len(handles) == 0:
     541            # With no more open top-level browsing contexts, the session is closed.
     542            self.session_id = None
     543
     544        return handles
    540545
    541546    @property
     
    558563
    559564    @command
    560     def set_cookie(self, name, value, path=None, domain=None, secure=None, expiry=None):
    561         body = {"name": name,
    562                 "value": value}
     565    def set_cookie(self, name, value, path=None, domain=None,
     566            secure=None, expiry=None, http_only=None):
     567        body = {
     568            "name": name,
     569            "value": value,
     570        }
     571
     572        if domain is not None:
     573            body["domain"] = domain
     574        if expiry is not None:
     575            body["expiry"] = expiry
     576        if http_only is not None:
     577            body["httpOnly"] = http_only
    563578        if path is not None:
    564579            body["path"] = path
    565         if domain is not None:
    566             body["domain"] = domain
    567580        if secure is not None:
    568581            body["secure"] = secure
    569         if expiry is not None:
    570             body["expiry"] = expiry
    571582        self.send_session_command("POST", "cookie", {"cookie": body})
    572583
  • trunk/WebDriverTests/imported/w3c/tools/wptrunner/requirements_chrome.txt

    r230953 r231727  
    11mozprocess == 0.26
    2 selenium==3.11.0
     2selenium==3.12.0
  • trunk/WebDriverTests/imported/w3c/tools/wptrunner/requirements_chrome_android.txt

    r231723 r231727  
    11mozprocess == 0.26
    2 selenium==3.11.0
     2selenium==3.12.0
  • trunk/WebDriverTests/imported/w3c/tools/wptrunner/requirements_edge.txt

    r230953 r231727  
    11mozprocess == 0.26
    2 selenium==3.11.0
     2selenium==3.12.0
  • trunk/WebDriverTests/imported/w3c/tools/wptrunner/requirements_firefox.txt

    r230953 r231727  
    11marionette_driver==2.6.0
    2 mozprofile==1.0.0
     2mozprofile==1.1.0
    33mozprocess == 0.26
    44mozcrash == 1.0
    5 mozrunner==6.15
     5mozrunner == 7.0.0
    66mozleak == 0.1
    77mozinstall == 1.15
  • trunk/WebDriverTests/imported/w3c/tools/wptrunner/requirements_ie.txt

    r230953 r231727  
    11mozprocess == 0.26
    2 selenium==3.11.0
     2selenium==3.12.0
  • trunk/WebDriverTests/imported/w3c/tools/wptrunner/requirements_opera.txt

    r230953 r231727  
    11mozprocess == 0.26
    2 selenium==3.11.0
     2selenium==3.12.0
  • trunk/WebDriverTests/imported/w3c/tools/wptrunner/requirements_safari.txt

    r230953 r231727  
    11mozprocess == 0.26
    2 selenium==3.11.0
     2selenium==3.12.0
  • trunk/WebDriverTests/imported/w3c/tools/wptrunner/requirements_sauce.txt

    r230953 r231727  
    11mozprocess == 0.26
    2 selenium==3.11.0
     2selenium==3.12.0
    33requests==2.18.4
  • trunk/WebDriverTests/imported/w3c/tools/wptrunner/wptrunner/browsers/firefox.py

    r230953 r231727  
     1import json
    12import os
    23import platform
     
    103104            options["args"] = kwargs["binary_args"]
    104105        options["prefs"] = {
    105             "network.dns.localDomains": ",".join(server_config.domains.itervalues())
     106            "network.dns.localDomains": ",".join(server_config.domains_set)
    106107        }
    107108        capabilities["moz:firefoxOptions"] = options
     
    199200        self.profile.set_preferences({"marionette.port": self.marionette_port,
    200201                                      "dom.disable_open_during_load": False,
    201                                       "network.dns.localDomains": ",".join(self.config.domains.itervalues()),
     202                                      "network.dns.localDomains": ",".join(self.config.domains_set),
    202203                                      "network.proxy.type": 0,
    203204                                      "places.history.enabled": False,
     
    246247        prefs = Preferences()
    247248
    248         prefs_path = os.path.join(self.prefs_root, "prefs_general.js")
    249         if os.path.exists(prefs_path):
    250             prefs.add(Preferences.read_prefs(prefs_path))
    251         else:
    252             self.logger.warning("Failed to find base prefs file in %s" % prefs_path)
     249        pref_paths = []
     250        prefs_general = os.path.join(self.prefs_root, 'prefs_general.js')
     251        if os.path.isfile(prefs_general):
     252            # Old preference file used in Firefox 60 and earlier (remove when no longer supported)
     253            pref_paths.append(prefs_general)
     254
     255        profiles = os.path.join(self.prefs_root, 'profiles.json')
     256        if os.path.isfile(profiles):
     257            with open(profiles, 'r') as fh:
     258                for name in json.load(fh)['web-platform-tests']:
     259                    pref_paths.append(os.path.join(self.prefs_root, name, 'user.js'))
     260
     261        for path in pref_paths:
     262            if os.path.exists(path):
     263                prefs.add(Preferences.read_prefs(path))
     264            else:
     265                self.logger.warning("Failed to find base prefs file in %s" % path)
    253266
    254267        # Add any custom preferences
  • trunk/WebDriverTests/imported/w3c/tools/wptrunner/wptrunner/browsers/sauce.py

    r230953 r231727  
    167167            "--readyfile=./sauce_is_ready",
    168168            "--tunnel-domains",
    169             ",".join(self.env_config['domains'].values())
     169            ",".join(self.env_config.domains_set)
    170170        ])
    171171
  • trunk/WebDriverTests/imported/w3c/tools/wptrunner/wptrunner/environment.py

    r230953 r231727  
    1111from wptlogging import LogLevelRewriter
    1212from wptserve.handlers import StringHandler
     13from wptserve import sslutils
    1314
    1415here = os.path.split(__file__)[0]
     
    1617
    1718serve = None
    18 sslutils = None
    1919
    2020
     
    3131    except ImportError:
    3232        failed.append("serve")
    33 
    34     try:
    35         import sslutils
    36     except ImportError:
    37         failed.append("sslutils")
    3833
    3934    if failed:
     
    135130
    136131    def load_config(self):
    137         default_config_path = os.path.join(serve_path(self.test_paths), "config.default.json")
    138132        override_path = os.path.join(serve_path(self.test_paths), "config.json")
    139133
    140         with open(default_config_path) as f:
    141             default_config = json.load(f)
    142 
    143         config = serve.Config(override_ssl_env=self.ssl_env, **default_config)
     134        config = serve.Config(override_ssl_env=self.ssl_env)
    144135
    145136        config.ports = {
    146137            "http": [8000, 8001],
    147138            "https": [8443],
    148             "ws": [8888]
     139            "ws": [8888],
     140            "wss": [8889],
    149141        }
    150142
     
    222214    def ensure_started(self):
    223215        # Pause for a while to ensure that the server has a chance to start
    224         for _ in xrange(20):
     216        for _ in xrange(60):
    225217            failed = self.test_servers()
    226218            if not failed:
  • trunk/WebDriverTests/imported/w3c/tools/wptrunner/wptrunner/executors/base.py

    r230953 r231727  
    105105    convert_result = None
    106106    supports_testdriver = False
     107    supports_jsshell = False
    107108
    108109    def __init__(self, browser, server_config, timeout_multiplier=1,
     
    154155        if test.environment != self.last_environment:
    155156            self.on_environment_change(test.environment)
    156 
    157157        try:
    158158            result = self.do_test(test)
    159159        except Exception as e:
     160            self.logger.warning(traceback.format_exc(e))
    160161            result = self.result_from_exception(test, e)
    161162
     
    548549        self.protocol.testdriver.send_message(message_type, status, message=message)
    549550
     551
    550552class ClickAction(object):
    551553    def __init__(self, logger, protocol):
     
    562564        self.logger.debug("Clicking element: %s" % selector)
    563565        self.protocol.click.element(elements[0])
     566
    564567
    565568class SendKeysAction(object):
  • trunk/WebDriverTests/imported/w3c/tools/wptrunner/wptrunner/executors/executormarionette.py

    r230953 r231727  
    6161    def execute_script(self, script, async=False):
    6262        method = self.marionette.execute_async_script if async else self.marionette.execute_script
    63         return method(script, new_sandbox=False)
     63        return method(script, new_sandbox=False, sandbox=None)
    6464
    6565    def set_timeout(self, timeout):
     
    120120    def load_runner(self, url_protocol):
    121121        # Check if we previously had a test window open, and if we did make sure it's closed
    122         self.marionette.execute_script("if (window.win) {window.win.close()}")
     122        self.parent.base.execute_script("if (window.win) {window.win.close()}")
    123123        url = urlparse.urljoin(self.parent.executor.server_url(url_protocol),
    124124                               "/testharness_runner.html")
     
    134134                "prevent access.\e%s" % (url, traceback.format_exc(e)))
    135135            raise
    136         self.marionette.execute_script(
     136        self.parent.base.execute_script(
    137137            "document.title = '%s'" % threading.current_thread().name.replace("'", '"'))
    138138
     
    184184            try:
    185185                # Try this, it's in Level 1 but nothing supports it yet
    186                 win_s = self.marionette.execute_script("return window['%s'];" % self.window_id)
     186                win_s = self.parent.base.execute_script("return window['%s'];" % self.window_id)
    187187                win_obj = json.loads(win_s)
    188188                test_window = win_obj["window-fcc6-11e5-b4f8-330a88ab9d7f"]
     
    327327        if message:
    328328            obj["message"] = str(message)
    329         self.marionette.execute_script("window.postMessage(%s, '*')" % json.dumps(obj))
     329        self.parent.base.execute_script("window.postMessage(%s, '*')" % json.dumps(obj))
    330330
    331331
     
    476476                message += "\n"
    477477            message += traceback.format_exc(e)
    478             self.result = False, ("INTERNAL-ERROR", e)
     478            self.logger.warning(message)
     479            self.result = False, ("INTERNAL-ERROR", None)
    479480
    480481        finally:
     
    494495
    495496        self.protocol = MarionetteProtocol(self, browser, capabilities, timeout_multiplier)
    496         self.script = open(os.path.join(here, "testharness_marionette.js")).read()
    497         self.script_resume = open(os.path.join(here, "testharness_marionette_resume.js")).read()
     497        self.script = open(os.path.join(here, "testharness_webdriver.js")).read()
     498        self.script_resume = open(os.path.join(here, "testharness_webdriver_resume.js")).read()
    498499        self.close_after_done = close_after_done
    499500        self.window_id = str(uuid.uuid4())
     
    552553            result = protocol.base.execute_script(
    553554                self.script_resume % format_map, async=True)
     555            if result is None:
     556                # This can happen if we get an content process crash
     557                return None
    554558            done, rv = handler(result)
    555559            if done:
     
    640644                                     timeout).run()
    641645
    642     def _screenshot(self, marionette, url, timeout):
    643         marionette.navigate(url)
    644 
    645         marionette.execute_async_script(self.wait_script)
    646 
    647         screenshot = marionette.screenshot(full=False)
     646    def _screenshot(self, protocol, url, timeout):
     647        protocol.marionette.navigate(url)
     648
     649        protocol.base.execute_script(self.wait_script, async=True)
     650
     651        screenshot = protocol.marionette.screenshot(full=False)
    648652        # strip off the data:img/png, part of the url
    649653        if screenshot.startswith("data:image/png;base64,"):
  • trunk/WebDriverTests/imported/w3c/tools/wptrunner/wptrunner/formatters.py

    r224014 r231727  
    99    def __init__(self):
    1010        self.raw_results = {}
     11        self.results = {}
     12
     13    def suite_start(self, data):
     14        self.results['run_info'] = data['run_info']
     15        self.results['time_start'] = data['time']
    1116
    1217    def suite_end(self, data):
    13         results = {}
    14         results["results"] = []
     18        self.results['time_end'] = data['time']
     19        self.results["results"] = []
    1520        for test_name in self.raw_results:
    1621            result = {"test": test_name}
    1722            result.update(self.raw_results[test_name])
    18             results["results"].append(result)
    19         return json.dumps(results)
     23            self.results["results"].append(result)
     24        return json.dumps(self.results)
    2025
    2126    def find_or_create_test(self, data):
  • trunk/WebDriverTests/imported/w3c/tools/wptrunner/wptrunner/reduce.py

    r224014 r231727  
    4848        run_info = wpttest.get_run_info(kwargs["metadata_root"],
    4949                                        kwargs["product"],
     50                                        browser_version=kwargs.get("browser_version"),
    5051                                        debug=False)
    5152        test_filter = wptrunner.TestFilter(include=kwargs["include"])
  • trunk/WebDriverTests/imported/w3c/tools/wptrunner/wptrunner/testrunner.py

    r230953 r231727  
    595595                                self.restart_on_unexpected))
    596596
    597         if (self.pause_after_test or
     597        if (not file_result.status == "CRASH" and
     598            self.pause_after_test or
    598599            (self.pause_on_unexpected and (subtest_unexpected or is_unexpected))):
    599600            self.logger.info("Pausing until the browser exits")
  • trunk/WebDriverTests/imported/w3c/tools/wptrunner/wptrunner/tests/test_products.py

    r230953 r231727  
    1010
    1111sys.path.insert(0, join(dirname(__file__), "..", "..", "..", ".."))  # repo root
    12 
    1312from tools import localpaths
    14 
    15 import sslutils
     13from wptserve import sslutils
    1614
    1715from wptrunner import environment
  • trunk/WebDriverTests/imported/w3c/tools/wptrunner/wptrunner/wptcommandline.py

    r230953 r231727  
    6767    parser.add_argument("--no-capture-stdio", action="store_true", default=False,
    6868                        help="Don't capture stdio and write to logging")
     69    parser.add_argument("--no-fail-on-unexpected", action="store_false",
     70                        default=True,
     71                        dest="fail_on_unexpected",
     72                        help="Exit with status code 0 when test expectations are violated")
    6973
    7074    mode_group = parser.add_argument_group("Mode")
  • trunk/WebDriverTests/imported/w3c/tools/wptrunner/wptrunner/wptrunner.py

    r230953 r231727  
    4444        run_info_extras = {}
    4545
    46     run_info = wpttest.get_run_info(kwargs["run_info"], product, debug=debug,
     46    run_info = wpttest.get_run_info(kwargs["run_info"], product,
     47                                    browser_version=kwargs.get("browser_version"),
     48                                    debug=debug,
    4749                                    extras=run_info_extras)
    4850
     
    154156
    155157        if "test_loader" in kwargs:
    156             run_info = wpttest.get_run_info(kwargs["run_info"], product, debug=None,
     158            run_info = wpttest.get_run_info(kwargs["run_info"], product,
     159                                            browser_version=kwargs.get("browser_version"),
     160                                            debug=None,
    157161                                            extras=run_info_extras(**kwargs))
    158162            test_loader = kwargs["test_loader"]
     
    246250                                logger.test_start(test.id)
    247251                                logger.test_end(test.id, status="SKIP")
     252                            elif test.jsshell and not executor_cls.supports_jsshell:
     253                                # We expect that tests for JavaScript shells
     254                                # will not be run along with tests that run in
     255                                # a full web browser, so we silently skip them
     256                                # here.
     257                                pass
    248258                            else:
    249259                                run_tests["testharness"].append(test)
     
    284294        return False
    285295
     296    if unexpected_total and not kwargs["fail_on_unexpected"]:
     297        logger.info("Tolerating %s unexpected results" % unexpected_total)
     298        return True
     299
    286300    return unexpected_total == 0
    287301
  • trunk/WebDriverTests/imported/w3c/tools/wptrunner/wptrunner/wpttest.py

    r230953 r231727  
    6666
    6767class RunInfo(dict):
    68     def __init__(self, metadata_root, product, debug, extras=None):
     68    def __init__(self, metadata_root, product, debug, browser_version=None, extras=None):
    6969        import mozinfo
    7070
     
    8383        if "STYLO_FORCE_DISABLED" in os.environ:
    8484            self["stylo"] = False
     85        if browser_version:
     86            self["browser_version"] = browser_version
    8587        if extras is not None:
    8688            self.update(extras)
     
    245247
    246248    def __init__(self, tests_root, url, inherit_metadata, test_metadata,
    247                  timeout=None, path=None, protocol="http", testdriver=False):
     249                 timeout=None, path=None, protocol="http", testdriver=False,
     250                 jsshell=False):
    248251        Test.__init__(self, tests_root, url, inherit_metadata, test_metadata, timeout,
    249252                      path, protocol)
    250253
    251254        self.testdriver = testdriver
     255        self.jsshell = jsshell
    252256
    253257    @classmethod
     
    256260        protocol = "https" if hasattr(manifest_item, "https") and manifest_item.https else "http"
    257261        testdriver = manifest_item.testdriver if hasattr(manifest_item, "testdriver") else False
     262        jsshell = manifest_item.jsshell if hasattr(manifest_item, "jsshell") else False
    258263        return cls(manifest_item.source_file.tests_root,
    259264                   manifest_item.url,
     
    263268                   path=manifest_item.source_file.path,
    264269                   protocol=protocol,
    265                    testdriver=testdriver)
     270                   testdriver=testdriver,
     271                   jsshell=jsshell)
    266272
    267273    @property
  • trunk/WebDriverTests/imported/w3c/webdriver/tests/element_click/bubbling.py

    r229166 r231727  
    22from tests.support.inline import inline
    33
    4 def click(session, element):
     4
     5def element_click(session, element):
    56    return session.transport.send(
    67        "POST", "/session/{session_id}/element/{element_id}/click".format(
     
    136137        function logEvent({type, target, currentTarget}) {
    137138          log.innerHTML += "<p></p>";
    138           log.lastElementChild.textContent = `${type} in ${target.id} (handled by ${currentTarget.id})`;
     139          log.lastElementChild.textContent =
     140              `${type} in ${target.id} (handled by ${currentTarget.id})`;
    139141        }
    140142
     
    145147        }
    146148
    147         over.addEventListener("mousedown", () => over.style.display = "none");
     149        over.addEventListener("mousedown", function(mousedownEvent) {
     150          over.style.display = "none";
     151        });
    148152        </script>
    149153        """)
     
    151155
    152156    # should not time out
    153     response = click(session, over)
     157    response = element_click(session, over)
    154158    assert_success(response)
  • trunk/WebDriverTests/imported/w3c/webdriver/tests/element_click/stale.py

    r225076 r231727  
    1 import pytest
    2 import webdriver
    3 
    41from tests.support.asserts import assert_error
    52from tests.support.inline import inline
    63
    74
    8 def click_element(session, element):
     5def element_click(session, element):
    96    return session.transport.send(
    10         "POST", "/session/{session_id}/element/{element_id}/click".format(**{
    11             "session_id": session.session_id,
    12             "element_id": element.id,
    13         }))
     7        "POST", "/session/{session_id}/element/{element_id}/click".format(
     8            session_id=session.session_id,
     9            element_id=element.id))
    1410
    1511
     
    1915    session.url = inline("<button>bar</button>")
    2016
    21     response = click_element(session, button)
     17    response = element_click(session, button)
    2218    assert_error(response, "stale element reference")
  • trunk/WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/form_controls.py

    r230953 r231727  
    1010
    1111
    12 def element_send_keys(session, element, text):
     12def send_keys_to_element(session, element, text):
    1313    return session.transport.send(
    14         "POST",
    15         "/session/{session_id}/element/{element_id}/value".format(
     14        "POST", "/session/{session_id}/element/{element_id}/value".format(
    1615            session_id=session.session_id,
    1716            element_id=element.id),
     
    3837    assert element.property("value") == ""
    3938
    40     element_send_keys(session, element, "foo")
     39    send_keys_to_element(session, element, "foo")
    4140    assert element.property("value") == "foo"
    4241    assert_element_has_focus(element)
     
    4847    assert element.property("value") == ""
    4948
    50     element_send_keys(session, element, "foo")
     49    send_keys_to_element(session, element, "foo")
    5150    assert element.property("value") == "foo"
    5251    assert_element_has_focus(element)
     
    5857    assert element.property("value") == "a"
    5958
    60     element_send_keys(session, element, "b")
     59    send_keys_to_element(session, element, "b")
    6160    assert element.property("value") == "ab"
    6261
    63     element_send_keys(session, element, "c")
     62    send_keys_to_element(session, element, "c")
    6463    assert element.property("value") == "abc"
    6564
     
    7069    assert element.property("value") == "a"
    7170
    72     element_send_keys(session, element, "b")
     71    send_keys_to_element(session, element, "b")
    7372    assert element.property("value") == "ab"
    7473
    75     element_send_keys(session, element, "c")
     74    send_keys_to_element(session, element, "c")
    7675    assert element.property("value") == "abc"
    7776
     
    8382    add_event_listeners(element)
    8483
    85     element_send_keys(session, element, "foo")
     84    send_keys_to_element(session, element, "foo")
    8685    assert element.property("value") == "foo"
    8786    assert get_events(session) == ["focus",
     
    105104    element = session.find.css(tag, all=False)
    106105
    107     element_send_keys(session, element, "")
     106    send_keys_to_element(session, element, "")
    108107    assert_element_has_focus(element)
  • trunk/WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/interactability.py

    r229166 r231727  
    33
    44
    5 def send_keys_to_element(session, element, text):
     5def element_send_keys(session, element, text):
    66    return session.transport.send(
    7         "POST",
    8         "/session/{session_id}/element/{element_id}/value".format(
     7        "POST", "/session/{session_id}/element/{element_id}/value".format(
    98            session_id=session.session_id,
    109            element_id=element.id),
     
    2524    assert session.active_element is element
    2625
    27     response = send_keys_to_element(session, element, "foo")
     26    response = element_send_keys(session, element, "foo")
    2827    assert_success(response)
    2928    assert session.active_element is element
     
    4544    assert session.active_element is body
    4645
    47     response = send_keys_to_element(session, element, "foo")
     46    response = element_send_keys(session, element, "foo")
    4847    assert_success(response)
    4948    assert session.active_element is element
     
    6463    assert session.active_element is body
    6564
    66     response = send_keys_to_element(session, frame, "foo")
     65    response = element_send_keys(session, frame, "foo")
    6766    assert_success(response)
    6867    assert session.active_element is frame
     
    7978    element = session.find.css("input", all=False)
    8079
    81     response = send_keys_to_element(session, element, "foo")
     80    response = element_send_keys(session, element, "foo")
    8281    assert_success(response)
    8382    assert element.property("value") == "foo"
     
    8887    element = session.find.css("input", all=False)
    8988
    90     response = send_keys_to_element(session, element, "foo")
     89    response = element_send_keys(session, element, "foo")
    9190    assert_success(response)
    9291    assert element.property("value") == ""
     
    10099    element = session.find.css("input", all=False)
    101100
    102     response = send_keys_to_element(session, element, "foo")
     101    response = element_send_keys(session, element, "foo")
    103102    assert_success(response)
    104103    assert element.property("value") == "foo"
     
    109108    element = session.find.css("div", all=False)
    110109
    111     response = send_keys_to_element(session, element, "foo")
     110    response = element_send_keys(session, element, "foo")
    112111    assert_error(response, "element not interactable")
    113112
     
    117116    element = session.find.css("input", all=False)
    118117
    119     response = send_keys_to_element(session, element, "foo")
     118    response = element_send_keys(session, element, "foo")
    120119    assert_error(response, "element not interactable")
    121120
     
    125124    element = session.find.css("input", all=False)
    126125
    127     response = send_keys_to_element(session, element, "foo")
     126    response = element_send_keys(session, element, "foo")
    128127    assert_error(response, "element not interactable")
    129128
     
    133132    element = session.find.css("input", all=False)
    134133
    135     response = send_keys_to_element(session, element, "foo")
     134    response = element_send_keys(session, element, "foo")
    136135    assert_error(response, "element not interactable")
  • trunk/WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/scroll_into_view.py

    r226708 r231727  
    44
    55
    6 def send_keys_to_element(session, element, text):
     6def element_send_keys(session, element, text):
    77    return session.transport.send(
    8         "POST",
    9         "/session/{session_id}/element/{element_id}/value".format(
     8        "POST", "/session/{session_id}/element/{element_id}/value".format(
    109            session_id=session.session_id,
    1110            element_id=element.id),
     
    1716    element = session.find.css("input", all=False)
    1817
    19     response = send_keys_to_element(session, element, "foo")
     18    response = element_send_keys(session, element, "foo")
    2019    assert_success(response)
    2120
     
    2726    element = session.find.css("input", all=False)
    2827
    29     response = send_keys_to_element(session, element, "foo")
     28    response = element_send_keys(session, element, "foo")
    3029    assert_success(response)
    3130
     
    4342    select = session.find.css("select", all=False)
    4443
    45     response = send_keys_to_element(session, element, "bar")
     44    response = element_send_keys(session, element, "bar")
    4645    assert_success(response)
    4746
     
    6160    option_bar = session.find.css("option#bar", all=False)
    6261
    63     response = send_keys_to_element(session, option_bar, "bar")
     62    response = element_send_keys(session, option_bar, "bar")
    6463    assert_success(response)
    6564
     
    7372    element = session.find.css("div", all=False)
    7473
    75     response = send_keys_to_element(session, element, "foo")
     74    response = element_send_keys(session, element, "foo")
    7675    assert_success(response)
    7776
  • trunk/WebDriverTests/imported/w3c/webdriver/tests/execute_async_script/collections.py

    r230953 r231727  
    99        args = []
    1010    body = {"script": script, "args": args}
     11
    1112    return session.transport.send(
    12         "POST",
    13         "/session/{session_id}/execute/async".format(**vars(session)),
     13        "POST", "/session/{session_id}/execute/async".format(**vars(session)),
    1414        body)
    1515
  • trunk/WebDriverTests/imported/w3c/webdriver/tests/execute_async_script/user_prompts.py

    r230953 r231727  
    33from webdriver import error
    44
     5from tests.support.asserts import assert_success
    56
    6 # 15.2 Executing Script
     7
     8def execute_async_script(session, script, args=None):
     9    if args is None:
     10        args = []
     11    body = {"script": script, "args": args}
     12
     13    return session.transport.send(
     14        "POST", "/session/{session_id}/execute/async".format(**vars(session)),
     15        body)
     16
    717
    818def test_handle_prompt_accept(new_session, add_browser_capabilites):
    919    _, session = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({"unhandledPromptBehavior": "accept"})}})
    10     value = session.execute_async_script("window.alert('Hello');")
    11     assert value is None
    12     title = session.title
     20
     21    response = execute_async_script(session, "window.alert('Hello');")
     22    assert_success(response, None)
     23
     24    session.title
    1325    with pytest.raises(error.NoSuchAlertException):
    1426        session.alert.accept()
     
    1729def test_handle_prompt_dismiss(new_session, add_browser_capabilites):
    1830    _, session = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({"unhandledPromptBehavior": "dismiss"})}})
    19     value = session.execute_async_script("window.alert('Hello');")
    20     assert value is None
    21     title = session.title
     31
     32    response = execute_async_script(session, "window.alert('Hello');")
     33    assert_success(response, None)
     34
     35    session.title
    2236    with pytest.raises(error.NoSuchAlertException):
    2337        session.alert.dismiss()
     
    2640def test_handle_prompt_dismiss_and_notify(new_session, add_browser_capabilites):
    2741    _, session = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({"unhandledPromptBehavior": "dismiss and notify"})}})
    28     value = session.execute_async_script("window.alert('Hello');")
    29     assert value is None
     42
     43    response = execute_async_script(session, "window.alert('Hello');")
     44    assert_success(response, None)
     45
    3046    with pytest.raises(error.UnexpectedAlertOpenException):
    31         title = session.title
     47        session.title
    3248    with pytest.raises(error.NoSuchAlertException):
    3349        session.alert.dismiss()
     
    3652def test_handle_prompt_accept_and_notify(new_session, add_browser_capabilites):
    3753    _, session = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({"unhandledPromptBehavior": "accept and notify"})}})
    38     value = session.execute_async_script("window.alert('Hello');")
    39     assert value is None
     54
     55    response = execute_async_script(session, "window.alert('Hello');")
     56    assert_success(response, None)
     57
    4058    with pytest.raises(error.UnexpectedAlertOpenException):
    41         title = session.title
     59        session.title
    4260    with pytest.raises(error.NoSuchAlertException):
    4361        session.alert.accept()
     
    4664def test_handle_prompt_ignore(new_session, add_browser_capabilites):
    4765    _, session = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({"unhandledPromptBehavior": "ignore"})}})
    48     value = session.execute_async_script("window.alert('Hello');")
    49     assert value is None
     66
     67    response = execute_async_script(session, "window.alert('Hello');")
     68    assert_success(response, None)
     69
    5070    with pytest.raises(error.UnexpectedAlertOpenException):
    51         title = session.title
     71        session.title
    5272    session.alert.dismiss()
    5373
     
    5575def test_handle_prompt_default(new_session, add_browser_capabilites):
    5676    _, session = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({})}})
    57     value = session.execute_async_script("window.alert('Hello');")
    58     assert value is None
     77
     78    response = execute_async_script(session, "window.alert('Hello');")
     79    assert_success(response, None)
     80
    5981    with pytest.raises(error.UnexpectedAlertOpenException):
    60         title = session.title
     82        session.title
    6183    with pytest.raises(error.NoSuchAlertException):
    6284        session.alert.dismiss()
     
    6587def test_handle_prompt_twice(new_session, add_browser_capabilites):
    6688    _, session = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({"unhandledPromptBehavior": "accept"})}})
    67     value = session.execute_async_script("window.alert('Hello');window.alert('Bye');")
    68     assert value is None
     89
     90    response = execute_async_script(session, "window.alert('Hello');window.alert('Bye');")
     91    assert_success(response, None)
     92
    6993    session.alert.dismiss()
    7094    # The first alert has been accepted by the user prompt handler, the second one remains.
  • trunk/WebDriverTests/imported/w3c/webdriver/tests/execute_script/collections.py

    r230953 r231727  
    99        args = []
    1010    body = {"script": script, "args": args}
     11
    1112    return session.transport.send(
    12         "POST",
    13         "/session/{session_id}/execute/sync".format(**vars(session)),
     13        "POST", "/session/{session_id}/execute/sync".format(**vars(session)),
    1414        body)
    1515
  • trunk/WebDriverTests/imported/w3c/webdriver/tests/execute_script/cyclic.py

    r229166 r231727  
    66        args = []
    77    body = {"script": script, "args": args}
     8
    89    return session.transport.send(
    9         "POST",
    10         "/session/{session_id}/execute/sync".format(
     10        "POST", "/session/{session_id}/execute/sync".format(
    1111            session_id=session.session_id),
    1212        body)
  • trunk/WebDriverTests/imported/w3c/webdriver/tests/execute_script/user_prompts.py

    r230953 r231727  
    33from webdriver import error
    44
     5from tests.support.asserts import assert_success
    56
    6 # 15.2 Executing Script
     7
     8def execute_script(session, script, args=None):
     9    if args is None:
     10        args = []
     11    body = {"script": script, "args": args}
     12
     13    return session.transport.send(
     14        "POST", "/session/{session_id}/execute/sync".format(
     15            session_id=session.session_id),
     16        body)
     17
    718
    819def test_handle_prompt_accept(new_session, add_browser_capabilites):
    920    _, session = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({"unhandledPromptBehavior": "accept"})}})
    10     value = session.execute_script("window.alert('Hello');")
    11     assert value is None
    12     title = session.title
     21
     22    response = execute_script(session, "window.alert('Hello');")
     23    assert_success(response, None)
     24
     25    session.title
    1326    with pytest.raises(error.NoSuchAlertException):
    1427        session.alert.accept()
     
    1730def test_handle_prompt_dismiss(new_session, add_browser_capabilites):
    1831    _, session = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({"unhandledPromptBehavior": "dismiss"})}})
    19     value = session.execute_script("window.alert('Hello');")
    20     assert value is None
    21     title = session.title
     32
     33    response = execute_script(session, "window.alert('Hello');")
     34    assert_success(response, None)
     35
     36    session.title
    2237    with pytest.raises(error.NoSuchAlertException):
    2338        session.alert.dismiss()
     
    2641def test_handle_prompt_dismiss_and_notify(new_session, add_browser_capabilites):
    2742    _, session = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({"unhandledPromptBehavior": "dismiss and notify"})}})
    28     value = session.execute_script("window.alert('Hello');")
    29     assert value is None
     43
     44    response = execute_script(session, "window.alert('Hello');")
     45    assert_success(response, None)
     46
    3047    with pytest.raises(error.UnexpectedAlertOpenException):
    31         title = session.title
     48        session.title
    3249    with pytest.raises(error.NoSuchAlertException):
    3350        session.alert.dismiss()
     
    3653def test_handle_prompt_accept_and_notify(new_session, add_browser_capabilites):
    3754    _, session = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({"unhandledPromptBehavior": "accept and notify"})}})
    38     value = session.execute_script("window.alert('Hello');")
    39     assert value is None
     55
     56    response = execute_script(session, "window.alert('Hello');")
     57    assert_success(response, None)
     58
    4059    with pytest.raises(error.UnexpectedAlertOpenException):
    41         title = session.title
     60        session.title
    4261    with pytest.raises(error.NoSuchAlertException):
    4362        session.alert.accept()
     
    4665def test_handle_prompt_ignore(new_session, add_browser_capabilites):
    4766    _, session = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({"unhandledPromptBehavior": "ignore"})}})
    48     value = session.execute_script("window.alert('Hello');")
    49     assert value is None
     67
     68    response = execute_script(session, "window.alert('Hello');")
     69    assert_success(response, None)
     70
    5071    with pytest.raises(error.UnexpectedAlertOpenException):
    51         title = session.title
     72        session.title
    5273    session.alert.dismiss()
    5374
     
    5576def test_handle_prompt_default(new_session, add_browser_capabilites):
    5677    _, session = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({})}})
    57     value = session.execute_script("window.alert('Hello');")
    58     assert value is None
     78
     79    response = execute_script(session, "window.alert('Hello');")
     80    assert_success(response, None)
     81
    5982    with pytest.raises(error.UnexpectedAlertOpenException):
    60         title = session.title
     83        session.title
    6184    with pytest.raises(error.NoSuchAlertException):
    6285        session.alert.dismiss()
     
    6588def test_handle_prompt_twice(new_session, add_browser_capabilites):
    6689    _, session = new_session({"capabilities": {"alwaysMatch": add_browser_capabilites({"unhandledPromptBehavior": "accept"})}})
    67     value = session.execute_script("window.alert('Hello');window.alert('Bye');")
    68     assert value is None
     90
     91    response = execute_script(session, "window.alert('Hello');window.alert('Bye');")
     92    assert_success(response, None)
     93
    6994    session.alert.dismiss()
    7095    # The first alert has been accepted by the user prompt handler, the second one remains.
  • trunk/WebDriverTests/imported/w3c/webdriver/tests/support/fixtures.py

    r230953 r231727  
    7777
    7878
     79@ignore_exceptions
    7980def _switch_to_top_level_browsing_context(session):
    8081    """If the current browsing context selected by WebDriver is a
  • trunk/WebDriverTests/imported/w3c/webdriver/tests/support/inline.py

    r224014 r231727  
    4141        rv = 404, [("Content-Type", "text/plain")], "Missing doc parameter in query"
    4242    else:
    43         rv = [("Content-Type", content_type)], doc
     43        response.headers.update([
     44          ("Content-Type", content_type),
     45          ("X-XSS-Protection", "0")
     46        ])
     47        rv = doc
    4448    return rv
Note: See TracChangeset for help on using the changeset viewer.