mirror of
https://github.com/servo/servo.git
synced 2025-08-09 15:35:34 +01:00
Update web-platform-tests to revision e8bfc205e36ad699601212cd50083870bad9a75d
This commit is contained in:
parent
65dd6d4340
commit
ccdb0a3458
1428 changed files with 118036 additions and 9786 deletions
|
@ -96,6 +96,12 @@ function waitForEventAndRunStep(eventName, element, func, stepTest)
|
|||
element.addEventListener(eventName, stepTest.step_func(eventCallback), true);
|
||||
}
|
||||
|
||||
function waitForEvent(eventName, element) {
|
||||
return new Promise(function(resolve) {
|
||||
element.addEventListener(eventName, resolve, true);
|
||||
})
|
||||
}
|
||||
|
||||
var consoleDiv = null;
|
||||
|
||||
function consoleWrite(text)
|
||||
|
@ -112,16 +118,7 @@ function consoleWrite(text)
|
|||
|
||||
function forceTestFailureFromPromise(test, error, message)
|
||||
{
|
||||
// Promises convert exceptions into rejected Promises. Since there is
|
||||
// currently no way to report a failed test in the test harness, errors
|
||||
// are reported using force_timeout().
|
||||
if (message)
|
||||
consoleWrite(message + ': ' + error.message);
|
||||
else if (error)
|
||||
consoleWrite(error);
|
||||
|
||||
test.force_timeout();
|
||||
test.done();
|
||||
test.step_func(assert_unreached)(message ? message + ': ' + error.message : error);
|
||||
}
|
||||
|
||||
// Returns an array of audioCapabilities that includes entries for a set of
|
||||
|
@ -178,26 +175,34 @@ function arrayBufferAsString(buffer)
|
|||
|
||||
function dumpKeyStatuses(keyStatuses)
|
||||
{
|
||||
consoleWrite("for (var entry of keyStatuses)");
|
||||
for (var entry of keyStatuses) {
|
||||
consoleWrite(arrayBufferAsString(entry[0]) + ": " + entry[1]);
|
||||
var userAgent = navigator.userAgent.toLowerCase();
|
||||
if (userAgent.indexOf('edge') === -1) {
|
||||
consoleWrite("for (var entry of keyStatuses)");
|
||||
for (var entry of keyStatuses) {
|
||||
consoleWrite(arrayBufferAsString(entry[0]) + ": " + entry[1]);
|
||||
}
|
||||
consoleWrite("for (var keyId of keyStatuses.keys())");
|
||||
for (var keyId of keyStatuses.keys()) {
|
||||
consoleWrite(arrayBufferAsString(keyId));
|
||||
}
|
||||
consoleWrite("for (var status of keyStatuses.values())");
|
||||
for (var status of keyStatuses.values()) {
|
||||
consoleWrite(status);
|
||||
}
|
||||
consoleWrite("for (var entry of keyStatuses.entries())");
|
||||
for (var entry of keyStatuses.entries()) {
|
||||
consoleWrite(arrayBufferAsString(entry[0]) + ": " + entry[1]);
|
||||
}
|
||||
consoleWrite("keyStatuses.forEach()");
|
||||
keyStatuses.forEach(function(status, keyId) {
|
||||
consoleWrite(arrayBufferAsString(keyId) + ": " + status);
|
||||
});
|
||||
} else {
|
||||
consoleWrite("keyStatuses.forEach()");
|
||||
keyStatuses.forEach(function(keyId, status) {
|
||||
consoleWrite(arrayBufferAsString(keyId) + ": " + status);
|
||||
});
|
||||
}
|
||||
consoleWrite("for (var keyId of keyStatuses.keys())");
|
||||
for (var keyId of keyStatuses.keys()) {
|
||||
consoleWrite(arrayBufferAsString(keyId));
|
||||
}
|
||||
consoleWrite("for (var status of keyStatuses.values())");
|
||||
for (var status of keyStatuses.values()) {
|
||||
consoleWrite(status);
|
||||
}
|
||||
consoleWrite("for (var entry of keyStatuses.entries())");
|
||||
for (var entry of keyStatuses.entries()) {
|
||||
consoleWrite(arrayBufferAsString(entry[0]) + ": " + entry[1]);
|
||||
}
|
||||
consoleWrite("keyStatuses.forEach()");
|
||||
keyStatuses.forEach(function(status, keyId) {
|
||||
consoleWrite(arrayBufferAsString(keyId) + ": " + status);
|
||||
});
|
||||
}
|
||||
|
||||
// Verify that |keyStatuses| contains just the keys in |keys.expected|
|
||||
|
@ -225,4 +230,56 @@ function verifyKeyStatuses(keyStatuses, keys)
|
|||
});
|
||||
}
|
||||
|
||||
// This function checks that calling |testCase.func| returns a
|
||||
// rejected Promise with the error.name equal to
|
||||
// |testCase.exception|.
|
||||
function test_exception(testCase /*...*/) {
|
||||
var func = testCase.func;
|
||||
var exception = testCase.exception;
|
||||
var args = Array.prototype.slice.call(arguments, 1);
|
||||
|
||||
// Currently blink throws for TypeErrors rather than returning
|
||||
// a rejected promise (http://crbug.com/359386).
|
||||
// FIXME: Remove try/catch once they become failed promises.
|
||||
try {
|
||||
return func.apply(null, args).then(
|
||||
function (result) {
|
||||
assert_unreached(format_value(func));
|
||||
},
|
||||
function (error) {
|
||||
assert_equals(error.name, exception, format_value(func));
|
||||
assert_not_equals(error.message, "", format_value(func));
|
||||
}
|
||||
);
|
||||
} catch (e) {
|
||||
// Only allow 'TypeError' exceptions to be thrown.
|
||||
// Everything else should be a failed promise.
|
||||
assert_equals('TypeError', exception, format_value(func));
|
||||
assert_equals(e.name, exception, format_value(func));
|
||||
}
|
||||
}
|
||||
|
||||
// Check that the events sequence (array of strings) matches the pattern (array of either strings, or
|
||||
// arrays of strings, with the latter representing a possibly repeating sub-sequence)
|
||||
function checkEventSequence(events,pattern) {
|
||||
function th(i) { return i + (i < 4 ? ["th", "st", "nd", "rd"][i] : "th"); }
|
||||
var i = 0, j=0, k=0;
|
||||
while(i < events.length && j < pattern.length) {
|
||||
if (!Array.isArray(pattern[j])) {
|
||||
assert_equals(events[i], pattern[j], "Expected " + th(i+1) + " event to be '" + pattern[j] + "'");
|
||||
++i;
|
||||
++j;
|
||||
} else {
|
||||
assert_equals(events[i], pattern[j][k], "Expected " + th(i+1) + " event to be '" + pattern[j][k] + "'");
|
||||
++i;
|
||||
k = (k+1)%pattern[j].length;
|
||||
if (k === 0 && events[i] !== pattern[j][0]) {
|
||||
++j;
|
||||
}
|
||||
}
|
||||
}
|
||||
assert_equals(i,events.length,"Received more events than expected");
|
||||
assert_equals(j,pattern.length,"Expected more events than received");
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue