mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Update web-platform-tests to revision fab2c513bffb2bd19600d23b495264d123df092f
This commit is contained in:
parent
c226bf85a9
commit
ebddcc2d7f
441 changed files with 3689 additions and 1521 deletions
|
@ -0,0 +1,153 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>Event constructors</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
function assert_props(iface, event, defaults) {
|
||||
assert_true(event instanceof self[iface]);
|
||||
expected[iface].properties.forEach(function(p) {
|
||||
var property = p[0], value = p[defaults ? 1 : 2];
|
||||
assert_true(property in event,
|
||||
"Event " + format_value(event) + " should have a " +
|
||||
property + " property");
|
||||
assert_equals(event[property], value,
|
||||
"The value of the " + property + " property should be " +
|
||||
format_value(value));
|
||||
});
|
||||
if ("parent" in expected[iface]) {
|
||||
assert_props(expected[iface].parent, event, defaults);
|
||||
}
|
||||
}
|
||||
|
||||
var EventModifierInit = [
|
||||
["ctrlKey", false, true],
|
||||
["shiftKey", false, true],
|
||||
["altKey", false, true],
|
||||
["metaKey", false, true],
|
||||
];
|
||||
var expected = {
|
||||
"Event": {
|
||||
"properties": [
|
||||
["bubbles", false, true],
|
||||
["cancelable", false, true],
|
||||
],
|
||||
},
|
||||
|
||||
"UIEvent": {
|
||||
"parent": "Event",
|
||||
"properties": [
|
||||
["view", null, window],
|
||||
["detail", 0, 7],
|
||||
],
|
||||
},
|
||||
|
||||
"FocusEvent": {
|
||||
"parent": "UIEvent",
|
||||
"properties": [
|
||||
["relatedTarget", null, document],
|
||||
],
|
||||
},
|
||||
|
||||
"MouseEvent": {
|
||||
"parent": "UIEvent",
|
||||
"properties": EventModifierInit.concat([
|
||||
["screenX", 0, 40],
|
||||
["screenY", 0, 40],
|
||||
["clientX", 0, 40],
|
||||
["clientY", 0, 40],
|
||||
["button", 0, 40],
|
||||
["buttons", 0, 40],
|
||||
["relatedTarget", null, document],
|
||||
]),
|
||||
},
|
||||
|
||||
"WheelEvent": {
|
||||
"parent": "MouseEvent",
|
||||
"properties": [
|
||||
["deltaX", 0.0, 3.1],
|
||||
["deltaY", 0.0, 3.1],
|
||||
["deltaZ", 0.0, 3.1],
|
||||
["deltaMode", 0, 40],
|
||||
],
|
||||
},
|
||||
|
||||
"KeyboardEvent": {
|
||||
"parent": "UIEvent",
|
||||
"properties": EventModifierInit.concat([
|
||||
["key", "", "string"],
|
||||
["code", "", "string"],
|
||||
["location", 0, 7],
|
||||
["repeat", false, true],
|
||||
["isComposing", false, true],
|
||||
["charCode", 0, 7],
|
||||
["keyCode", 0, 7],
|
||||
["which", 0, 7],
|
||||
]),
|
||||
},
|
||||
|
||||
"CompositionEvent": {
|
||||
"parent": "UIEvent",
|
||||
"properties": [
|
||||
["data", "", "string"],
|
||||
],
|
||||
},
|
||||
};
|
||||
|
||||
Object.keys(expected).forEach(function(iface) {
|
||||
test(function() {
|
||||
var event = new self[iface]("type");
|
||||
assert_props(iface, event, true);
|
||||
}, iface + " constructor (no argument)");
|
||||
|
||||
test(function() {
|
||||
var event = new self[iface]("type", undefined);
|
||||
assert_props(iface, event, true);
|
||||
}, iface + " constructor (undefined argument)");
|
||||
|
||||
test(function() {
|
||||
var event = new self[iface]("type", null);
|
||||
assert_props(iface, event, true);
|
||||
}, iface + " constructor (null argument)");
|
||||
|
||||
test(function() {
|
||||
var event = new self[iface]("type", {});
|
||||
assert_props(iface, event, true);
|
||||
}, iface + " constructor (empty argument)");
|
||||
|
||||
test(function() {
|
||||
var dictionary = {};
|
||||
expected[iface].properties.forEach(function(p) {
|
||||
var property = p[0], value = p[1];
|
||||
dictionary[property] = value;
|
||||
});
|
||||
var event = new self[iface]("type", dictionary);
|
||||
assert_props(iface, event, true);
|
||||
}, iface + " constructor (argument with default values)");
|
||||
|
||||
test(function() {
|
||||
function fill_in(iface, dictionary) {
|
||||
if ("parent" in expected[iface]) {
|
||||
fill_in(expected[iface].parent, dictionary)
|
||||
}
|
||||
expected[iface].properties.forEach(function(p) {
|
||||
var property = p[0], value = p[2];
|
||||
dictionary[property] = value;
|
||||
});
|
||||
}
|
||||
|
||||
var dictionary = {};
|
||||
fill_in(iface, dictionary);
|
||||
|
||||
var event = new self[iface]("type", dictionary);
|
||||
assert_props(iface, event, false);
|
||||
}, iface + " constructor (argument with non-default values)");
|
||||
});
|
||||
|
||||
test(function () {
|
||||
assert_throws(new TypeError(), function() {
|
||||
new UIEvent("x", { view: 7 })
|
||||
});
|
||||
}, "UIEvent constructor (view argument with wrong type)")
|
||||
</script>
|
Loading…
Add table
Add a link
Reference in a new issue