mirror of
https://github.com/servo/servo.git
synced 2025-07-01 20:43:39 +01:00
Update web-platform-tests to revision b0d2d2da21dfd03e86c5d710c926ae7df3b9f0d0
This commit is contained in:
parent
d048aa9c51
commit
1c9e136e8e
16 changed files with 402 additions and 91 deletions
|
@ -312266,6 +312266,11 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"tools/wptrunner/wptrunner/executors/runner.js": [
|
||||||
|
[
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"tools/wptrunner/wptrunner/executors/testharness_servodriver.js": [
|
"tools/wptrunner/wptrunner/executors/testharness_servodriver.js": [
|
||||||
[
|
[
|
||||||
{}
|
{}
|
||||||
|
@ -657253,7 +657258,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptrunner/docs/design.rst": [
|
"tools/wptrunner/docs/design.rst": [
|
||||||
"bf108a0087da0c6ec123169c71586f6ce3bfba72",
|
"056c0d8663292b0de3fee6e430ca011d08965731",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptrunner/docs/expectation.rst": [
|
"tools/wptrunner/docs/expectation.rst": [
|
||||||
|
@ -657541,7 +657546,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptrunner/wptrunner/executors/executormarionette.py": [
|
"tools/wptrunner/wptrunner/executors/executormarionette.py": [
|
||||||
"8aea59cc8f6ceb9adc57ca42a91cefea6f321b5c",
|
"4ab7bf3dde9c76fe160597bccc2df772199750a0",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptrunner/wptrunner/executors/executoropera.py": [
|
"tools/wptrunner/wptrunner/executors/executoropera.py": [
|
||||||
|
@ -657553,7 +657558,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptrunner/wptrunner/executors/executorselenium.py": [
|
"tools/wptrunner/wptrunner/executors/executorselenium.py": [
|
||||||
"0792774d65cfc4cd27dedcd6c2eb63bab8bfce07",
|
"c1d66b5706eb7a6803707c51253f8f5874690dbe",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptrunner/wptrunner/executors/executorservo.py": [
|
"tools/wptrunner/wptrunner/executors/executorservo.py": [
|
||||||
|
@ -657565,7 +657570,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptrunner/wptrunner/executors/executorwebdriver.py": [
|
"tools/wptrunner/wptrunner/executors/executorwebdriver.py": [
|
||||||
"be6ed8d9d070bb717bca1c6fae82225957b10cff",
|
"879bd68d522f949426d5b8d4a6599c2e40efe3e8",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptrunner/wptrunner/executors/executorwebkit.py": [
|
"tools/wptrunner/wptrunner/executors/executorwebkit.py": [
|
||||||
|
@ -657600,16 +657605,20 @@
|
||||||
"5bd5c609cbd5e799787c93bac673fb8e392a7c30",
|
"5bd5c609cbd5e799787c93bac673fb8e392a7c30",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
|
"tools/wptrunner/wptrunner/executors/runner.js": [
|
||||||
|
"8b800036756d016d8c020d53e02c5709fb03043f",
|
||||||
|
"support"
|
||||||
|
],
|
||||||
"tools/wptrunner/wptrunner/executors/testharness_servodriver.js": [
|
"tools/wptrunner/wptrunner/executors/testharness_servodriver.js": [
|
||||||
"d731cc04d7011759ce63079fbd1242fd6426603b",
|
"d731cc04d7011759ce63079fbd1242fd6426603b",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptrunner/wptrunner/executors/testharness_webdriver.js": [
|
"tools/wptrunner/wptrunner/executors/testharness_webdriver.js": [
|
||||||
"7f00050fa7ed6daf89ce6af7a0e610d0e5ddc42b",
|
"9e2e6049bdc3c01987ec989b6783fdcdc267ed74",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptrunner/wptrunner/executors/testharness_webdriver_resume.js": [
|
"tools/wptrunner/wptrunner/executors/testharness_webdriver_resume.js": [
|
||||||
"7a2df98ed4e73bf4618b169aa297f0c075ff8a19",
|
"4692e4931ccab292a12dd5fba28fc88f3b569a45",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptrunner/wptrunner/expected.py": [
|
"tools/wptrunner/wptrunner/expected.py": [
|
||||||
|
|
|
@ -65,9 +65,9 @@
|
||||||
[left intermediate]
|
[left intermediate]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[bottom intermediate]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[text-indent intermediate]
|
[text-indent intermediate]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[border-top-width end]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
[fetch-in-iframe.html]
|
[fetch-in-iframe.html]
|
||||||
|
expected: CRASH
|
||||||
[Untitled]
|
[Untitled]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[traverse_the_history_4.html]
|
||||||
|
[Multiple history traversals, last would be aborted]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[traverse_the_history_5.html]
|
||||||
|
[Multiple history traversals, last would be aborted]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[DOMContentLoaded-defer.html]
|
||||||
|
[The end: DOMContentLoaded and defer scripts]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,283 @@
|
||||||
|
[limited-quirks.html]
|
||||||
|
[top: -\\31 .5]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: -1A]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: -1a]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: @1]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: "1a"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: @a]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: "1"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: -/**/1]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: +/**/1]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: @1a]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: 1\\31 ]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: url('1')]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: -\\31 ]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: calc(1)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: \\31 ]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: +1\\31 ]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: 1\\31 .5]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: #0001]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: calc(2 * 2px)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: 1a]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: A]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: #01]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: +\\31 .5]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: #1]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: -/**/1]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: +\\31 .5]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: \\31 ]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: calc(1)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: #001]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: +\\31 ]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: +\\31 ]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: +1.5]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: +1\\31 ]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: @a]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: @1]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: #1]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: 1a]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: +1a]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: +1A]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: "a"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: #00001]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: -1\\31 .5]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: "1"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: 1.5]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: -\\31 .5]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: url('1')]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: -1.5]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: \\31 .5]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: "1a"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: calc(2 * 2px)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: +1\\31 .5]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: 1\\31 ]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: +/**/1]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: #00001]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: url(1)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: #001]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: +1\\31 .5]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: -1a]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: -1A]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: url(1)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: a]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: A]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: #000001]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: 1]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: 1\\31 .5]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: a]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: 1]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: +1]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: #000001]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: +a]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: +A]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: 1.5]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: +A]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: +a]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: +1]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: -1.5]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: -1\\31 .5]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: +1a]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: +1A]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: @1a]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: \\31 .5]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: "a"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: #01]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: +1.5]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: -A]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: -a]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: -1\\31 ]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: #0001]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[bottom: -1]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: -\\31 ]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: -A]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: -a]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: -1]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[top: -1\\31 ]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -2,9 +2,6 @@
|
||||||
[response.formData() with input: a&b&c]
|
[response.formData() with input: a&b&c]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[request.formData() with input: a&b&c]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[response.formData() with input: _charset_=windows-1252&test=%C2x]
|
[response.formData() with input: _charset_=windows-1252&test=%C2x]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -14,13 +11,10 @@
|
||||||
[request.formData() with input: _charset_=windows-1252&test=%C2x]
|
[request.formData() with input: _charset_=windows-1252&test=%C2x]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[response.formData() with input: a=b&c=d&]
|
[request.formData() with input: &&&a=b&&&&c=d&]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[request.formData() with input: a=b&c=d]
|
[response.formData() with input: a=b&c=d]
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[request.formData() with input: a=b&c=d&]
|
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
||||||
|
@ -28,15 +22,15 @@
|
||||||
[request.formData() with input: a&b&c]
|
[request.formData() with input: a&b&c]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[response.formData() with input: _charset_=windows-1252&test=%C2x]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[response.formData() with input: a=b&c=d&]
|
[response.formData() with input: a=b&c=d&]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[response.formData() with input: a=b&c=d]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[request.formData() with input: a=b&c=d&]
|
[request.formData() with input: a=b&c=d&]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[response.formData() with input: a&b&c]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[request.formData() with input: &&&a=b&&&&c=d&]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
[import-in-moduleworker.html]
|
[import-in-moduleworker.html]
|
||||||
|
expected: ERROR
|
||||||
[Base URL in module dedicated workers: import]
|
[Base URL in module dedicated workers: import]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ requirements:
|
||||||
of an ``iframe`` test container.
|
of an ``iframe`` test container.
|
||||||
|
|
||||||
* It must be possible to deal with all kinds of behaviour of the
|
* It must be possible to deal with all kinds of behaviour of the
|
||||||
browser runder test, for example, crashing, hanging, etc.
|
browser under test, for example, crashing, hanging, etc.
|
||||||
|
|
||||||
* It should be possible to add support for new platforms and browsers
|
* It should be possible to add support for new platforms and browsers
|
||||||
with minimal code changes.
|
with minimal code changes.
|
||||||
|
|
|
@ -109,6 +109,8 @@ class MarionetteTestharnessProtocolPart(TestharnessProtocolPart):
|
||||||
def __init__(self, parent):
|
def __init__(self, parent):
|
||||||
super(MarionetteTestharnessProtocolPart, self).__init__(parent)
|
super(MarionetteTestharnessProtocolPart, self).__init__(parent)
|
||||||
self.runner_handle = None
|
self.runner_handle = None
|
||||||
|
with open(os.path.join(here, "runner.js")) as f:
|
||||||
|
self.runner_script = f.read()
|
||||||
|
|
||||||
def setup(self):
|
def setup(self):
|
||||||
self.marionette = self.parent.marionette
|
self.marionette = self.parent.marionette
|
||||||
|
@ -129,8 +131,8 @@ class MarionetteTestharnessProtocolPart(TestharnessProtocolPart):
|
||||||
"that your firewall rules or network setup does not "
|
"that your firewall rules or network setup does not "
|
||||||
"prevent access.\e%s" % (url, traceback.format_exc(e)))
|
"prevent access.\e%s" % (url, traceback.format_exc(e)))
|
||||||
raise
|
raise
|
||||||
self.parent.base.execute_script(
|
format_map = {"title": threading.current_thread().name.replace("'", '"')}
|
||||||
"document.title = '%s'" % threading.current_thread().name.replace("'", '"'))
|
self.parent.base.execute_script(self.runner_script % format_map)
|
||||||
|
|
||||||
def close_old_windows(self, url_protocol):
|
def close_old_windows(self, url_protocol):
|
||||||
handles = self.marionette.window_handles
|
handles = self.marionette.window_handles
|
||||||
|
|
|
@ -72,14 +72,16 @@ class SeleniumBaseProtocolPart(BaseProtocolPart):
|
||||||
class SeleniumTestharnessProtocolPart(TestharnessProtocolPart):
|
class SeleniumTestharnessProtocolPart(TestharnessProtocolPart):
|
||||||
def setup(self):
|
def setup(self):
|
||||||
self.webdriver = self.parent.webdriver
|
self.webdriver = self.parent.webdriver
|
||||||
|
with open(os.path.join(here, "runner.js")) as f:
|
||||||
|
self.runner_script = f.read()
|
||||||
|
|
||||||
def load_runner(self, url_protocol):
|
def load_runner(self, url_protocol):
|
||||||
url = urlparse.urljoin(self.parent.executor.server_url(url_protocol),
|
url = urlparse.urljoin(self.parent.executor.server_url(url_protocol),
|
||||||
"/testharness_runner.html")
|
"/testharness_runner.html")
|
||||||
self.logger.debug("Loading %s" % url)
|
self.logger.debug("Loading %s" % url)
|
||||||
self.webdriver.get(url)
|
self.webdriver.get(url)
|
||||||
self.webdriver.execute_script("document.title = '%s'" %
|
format_map = {"title": threading.current_thread().name.replace("'", '"')}
|
||||||
threading.current_thread().name.replace("'", '"'))
|
self.parent.base.execute_script(self.runner_script % format_map)
|
||||||
|
|
||||||
def close_old_windows(self):
|
def close_old_windows(self):
|
||||||
exclude = self.webdriver.current_window_handle
|
exclude = self.webdriver.current_window_handle
|
||||||
|
|
|
@ -52,7 +52,7 @@ class WebDriverBaseProtocolPart(BaseProtocolPart):
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
self.webdriver.execute_async_script("")
|
self.webdriver.execute_async_script("")
|
||||||
except client.TimeoutException:
|
except (client.TimeoutException, client.ScriptTimeoutException):
|
||||||
pass
|
pass
|
||||||
except (socket.timeout, client.NoSuchWindowException,
|
except (socket.timeout, client.NoSuchWindowException,
|
||||||
client.UnknownErrorException, IOError):
|
client.UnknownErrorException, IOError):
|
||||||
|
@ -65,6 +65,8 @@ class WebDriverBaseProtocolPart(BaseProtocolPart):
|
||||||
class WebDriverTestharnessProtocolPart(TestharnessProtocolPart):
|
class WebDriverTestharnessProtocolPart(TestharnessProtocolPart):
|
||||||
def setup(self):
|
def setup(self):
|
||||||
self.webdriver = self.parent.webdriver
|
self.webdriver = self.parent.webdriver
|
||||||
|
with open(os.path.join(here, "runner.js")) as f:
|
||||||
|
self.runner_script = f.read()
|
||||||
|
|
||||||
def load_runner(self, url_protocol):
|
def load_runner(self, url_protocol):
|
||||||
url = urlparse.urljoin(self.parent.executor.server_url(url_protocol),
|
url = urlparse.urljoin(self.parent.executor.server_url(url_protocol),
|
||||||
|
@ -72,8 +74,8 @@ class WebDriverTestharnessProtocolPart(TestharnessProtocolPart):
|
||||||
self.logger.debug("Loading %s" % url)
|
self.logger.debug("Loading %s" % url)
|
||||||
|
|
||||||
self.webdriver.url = url
|
self.webdriver.url = url
|
||||||
self.webdriver.execute_script("document.title = '%s'" %
|
format_map = {"title": threading.current_thread().name.replace("'", '"')}
|
||||||
threading.current_thread().name.replace("'", '"'))
|
self.parent.base.execute_script(self.runner_script % format_map)
|
||||||
|
|
||||||
def close_old_windows(self):
|
def close_old_windows(self):
|
||||||
exclude = self.webdriver.window_handle
|
exclude = self.webdriver.window_handle
|
||||||
|
@ -125,6 +127,7 @@ class WebDriverClickProtocolPart(ClickProtocolPart):
|
||||||
self.webdriver = self.parent.webdriver
|
self.webdriver = self.parent.webdriver
|
||||||
|
|
||||||
def element(self, element):
|
def element(self, element):
|
||||||
|
self.logger.info("click " + repr(element))
|
||||||
return element.click()
|
return element.click()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,59 @@
|
||||||
|
document.title = '%(title)s';
|
||||||
|
|
||||||
|
window.addEventListener(
|
||||||
|
"message",
|
||||||
|
function(event) {
|
||||||
|
window.message_queue.push(event);
|
||||||
|
window.process_next_event();
|
||||||
|
},
|
||||||
|
false
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
window.process_next_event = function() {
|
||||||
|
/* This function handles the next testdriver event. The presence of
|
||||||
|
window.testdriver_callback is used as a switch; when that function
|
||||||
|
is present we are able to handle the next event and when is is not
|
||||||
|
present we must wait. Therefore to drive the event processing, this
|
||||||
|
function must be called in two circumstances:
|
||||||
|
* Every time there is a new event that we may be able to handle
|
||||||
|
* Every time we set the callback function
|
||||||
|
This function unsets the callback, so no further testdriver actions
|
||||||
|
will be run until it is reset, which wptrunner does after it has
|
||||||
|
completed handling the current action.
|
||||||
|
*/
|
||||||
|
if (!window.testdriver_callback) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var event = window.message_queue.shift();
|
||||||
|
if (!event) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var data = event.data;
|
||||||
|
|
||||||
|
var payload = undefined;
|
||||||
|
|
||||||
|
switch(data.type) {
|
||||||
|
case "complete":
|
||||||
|
var tests = event.data.tests;
|
||||||
|
var status = event.data.status;
|
||||||
|
|
||||||
|
var subtest_results = tests.map(function(x) {
|
||||||
|
return [x.name, x.status, x.message, x.stack];
|
||||||
|
});
|
||||||
|
payload = [status.status,
|
||||||
|
status.message,
|
||||||
|
status.stack,
|
||||||
|
subtest_results];
|
||||||
|
clearTimeout(window.timer);
|
||||||
|
break;
|
||||||
|
case "action":
|
||||||
|
payload = data;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var callback = window.testdriver_callback;
|
||||||
|
window.testdriver_callback = null;
|
||||||
|
callback([window.url, data.type, payload]);
|
||||||
|
};
|
|
@ -1,21 +1,9 @@
|
||||||
window.timeout_multiplier = %(timeout_multiplier)d;
|
window.timeout_multiplier = %(timeout_multiplier)d;
|
||||||
|
window.url = "%(url)s";
|
||||||
|
window.win = window.open("%(abs_url)s", "%(window_id)s");
|
||||||
|
|
||||||
window.message_queue = [];
|
window.message_queue = [];
|
||||||
|
window.testdriver_callback = null;
|
||||||
window.setMessageListener = function(func) {
|
|
||||||
window.current_listener = func;
|
|
||||||
window.addEventListener(
|
|
||||||
"message",
|
|
||||||
func,
|
|
||||||
false
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
window.setMessageListener(function(event) {
|
|
||||||
window.message_queue.push(event);
|
|
||||||
});
|
|
||||||
|
|
||||||
window.win = window.open("%(abs_url)s", "%(window_id)s");
|
|
||||||
|
|
||||||
if (%(timeout)s != null) {
|
if (%(timeout)s != null) {
|
||||||
window.timer = setTimeout(function() {
|
window.timer = setTimeout(function() {
|
||||||
|
|
|
@ -1,46 +1,3 @@
|
||||||
var callback = arguments[arguments.length - 1];
|
var callback = arguments[arguments.length - 1];
|
||||||
|
window.testdriver_callback = callback;
|
||||||
function process_event(event) {
|
window.process_next_event();
|
||||||
var data = event.data;
|
|
||||||
|
|
||||||
var payload = undefined;
|
|
||||||
|
|
||||||
switch(data.type) {
|
|
||||||
case "complete":
|
|
||||||
var tests = event.data.tests;
|
|
||||||
var status = event.data.status;
|
|
||||||
|
|
||||||
var subtest_results = tests.map(function(x) {
|
|
||||||
return [x.name, x.status, x.message, x.stack];
|
|
||||||
});
|
|
||||||
payload = [status.status,
|
|
||||||
status.message,
|
|
||||||
status.stack,
|
|
||||||
subtest_results];
|
|
||||||
clearTimeout(window.timer);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "action":
|
|
||||||
window.setMessageListener(function(event) {
|
|
||||||
window.message_queue.push(event);
|
|
||||||
});
|
|
||||||
payload = data;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
callback(["%(url)s", data.type, payload]);
|
|
||||||
}
|
|
||||||
|
|
||||||
window.removeEventListener("message", window.current_listener);
|
|
||||||
if (window.message_queue.length) {
|
|
||||||
var next = window.message_queue.shift();
|
|
||||||
process_event(next);
|
|
||||||
} else {
|
|
||||||
window.addEventListener(
|
|
||||||
"message", function f(event) {
|
|
||||||
window.removeEventListener("message", f);
|
|
||||||
process_event(event);
|
|
||||||
}, false);
|
|
||||||
}
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue