Update web-platform-tests to revision b0d2d2da21dfd03e86c5d710c926ae7df3b9f0d0

This commit is contained in:
WPT Sync Bot 2018-10-07 21:25:52 -04:00
parent d048aa9c51
commit 1c9e136e8e
16 changed files with 402 additions and 91 deletions

View file

@ -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": [

View file

@ -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

View file

@ -1,4 +1,5 @@
[fetch-in-iframe.html] [fetch-in-iframe.html]
expected: CRASH
[Untitled] [Untitled]
expected: FAIL expected: FAIL

View file

@ -0,0 +1,4 @@
[traverse_the_history_4.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -0,0 +1,4 @@
[traverse_the_history_5.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -0,0 +1,4 @@
[DOMContentLoaded-defer.html]
[The end: DOMContentLoaded and defer scripts]
expected: FAIL

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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.

View file

@ -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

View file

@ -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

View file

@ -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()

View file

@ -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]);
};

View file

@ -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() {

View file

@ -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);
}