mirror of
https://github.com/servo/servo.git
synced 2025-08-21 13:25:34 +01:00
Update web-platform-tests to revision 78c15447152438264b49f4488683f60ee47d068f
This commit is contained in:
parent
007333e123
commit
314da91646
13 changed files with 207 additions and 79 deletions
|
@ -93,23 +93,20 @@ enum XRReferenceSpaceType {
|
|||
"unbounded"
|
||||
};
|
||||
|
||||
dictionary XRReferenceSpaceOptions {
|
||||
required XRReferenceSpaceType type;
|
||||
};
|
||||
|
||||
[SecureContext, Exposed=Window] interface XRReferenceSpace : XRSpace {
|
||||
attribute XRRigidTransform originOffset;
|
||||
attribute EventHandler onreset;
|
||||
};
|
||||
|
||||
enum XRStationaryReferenceSpaceSubtype {
|
||||
"eye-level",
|
||||
"floor-level",
|
||||
"position-disabled"
|
||||
};
|
||||
|
||||
dictionary XRStationaryReferenceSpaceOptions : XRReferenceSpaceOptions {
|
||||
required XRStationaryReferenceSpaceSubtype subtype;
|
||||
dictionary XRReferenceSpaceOptions {
|
||||
required XRReferenceSpaceType type;
|
||||
XRStationaryReferenceSpaceSubtype subtype;
|
||||
};
|
||||
|
||||
[SecureContext, Exposed=Window] interface XRReferenceSpace : XRSpace {
|
||||
attribute XRRigidTransform originOffset;
|
||||
attribute EventHandler onreset;
|
||||
};
|
||||
|
||||
[SecureContext, Exposed=Window]
|
||||
|
|
84
tests/wpt/web-platform-tests/webrtc/RTCError.html
Normal file
84
tests/wpt/web-platform-tests/webrtc/RTCError.html
Normal file
|
@ -0,0 +1,84 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<title>RTCError and RTCErrorInit</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="RTCPeerConnection-helper.js"></script>
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
test(() => {
|
||||
const error = new RTCError('message', {errorDetail:'data-channel-failure'});
|
||||
assert_equals(error.message, 'message');
|
||||
assert_equals(error.errorDetail, 'data-channel-failure');
|
||||
}, 'RTCError constructor with message and errorDetail');
|
||||
|
||||
test(() => {
|
||||
assert_throws(new TypeError(), () => {
|
||||
new RTCError('message');
|
||||
});
|
||||
assert_throws(new TypeError(), () => {
|
||||
new RTCError();
|
||||
});
|
||||
}, 'RTCError constructor throws TypeError if any argument is missing');
|
||||
|
||||
test(() => {
|
||||
assert_throws(new TypeError(), () => {
|
||||
new RTCError('message', {errorDetail:'invalid-error-detail'});
|
||||
});
|
||||
}, 'RTCError constructor throws TypeError if the errorDetail is invalid');
|
||||
|
||||
test(() => {
|
||||
const error = new RTCError('message', {errorDetail:'data-channel-failure'});
|
||||
assert_equals(error.name, 'RTCError');
|
||||
}, 'RTCError.name is \'RTCError\'');
|
||||
|
||||
test(() => {
|
||||
const error = new RTCError('message', {errorDetail:'data-channel-failure'});
|
||||
assert_equals(error.code, 0);
|
||||
}, 'RTCError.code is 0');
|
||||
|
||||
test(() => {
|
||||
const error = new RTCError('message', {errorDetail:'data-channel-failure'});
|
||||
assert_throws(new TypeError(), () => {
|
||||
error.errorDetail = 'dtls-failure';
|
||||
});
|
||||
}, 'RTCError.errorDetail is readonly.');
|
||||
|
||||
test(() => {
|
||||
// Infers what are valid RTCErrorInit objects by passing them to the RTCError
|
||||
// constructor.
|
||||
assert_throws(new TypeError(), () => {
|
||||
new RTCError('message', {});
|
||||
});
|
||||
new RTCError('message', {errorDetail:'data-channel-failure'});
|
||||
}, 'RTCErrorInit.errorDetail is the only required attribute');
|
||||
|
||||
// All of these are number types (long or unsigned long).
|
||||
const nullableAttributes = ['sdpLineNumber',
|
||||
'httpRequestStatusCode',
|
||||
'sctpCauseCode',
|
||||
'receivedAlert',
|
||||
'sentAlert'];
|
||||
|
||||
nullableAttributes.forEach(attribute => {
|
||||
test(() => {
|
||||
const error = new RTCError('message', {errorDetail:'data-channel-failure'});
|
||||
assert_equals(error[attribute], null);
|
||||
}, 'RTCError.' + attribute + ' is null by default');
|
||||
|
||||
test(() => {
|
||||
const error = new RTCError('message', {errorDetail:'data-channel-failure',
|
||||
[attribute]: 0});
|
||||
assert_equals(error[attribute], 0);
|
||||
}, 'RTCError.' + attribute + ' is settable by constructor');
|
||||
|
||||
test(() => {
|
||||
const error = new RTCError('message', {errorDetail:'data-channel-failure'});
|
||||
assert_throws(new TypeError(), () => {
|
||||
error[attribute] = 42;
|
||||
});
|
||||
}, 'RTCError.' + attribute + ' is readonly');
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1,81 @@
|
|||
["localStorage", "sessionStorage"].forEach(function(name) {
|
||||
test(function() {
|
||||
var key = Symbol();
|
||||
|
||||
var storage = window[name];
|
||||
storage.clear();
|
||||
|
||||
storage[key] = "test";
|
||||
assert_equals(storage[key], "test");
|
||||
}, name + ": plain set + get (loose)");
|
||||
|
||||
test(function() {
|
||||
"use strict";
|
||||
var key = Symbol();
|
||||
|
||||
var storage = window[name];
|
||||
storage.clear();
|
||||
|
||||
storage[key] = "test";
|
||||
assert_equals(storage[key], "test");
|
||||
}, name + ": plain set + get (strict)");
|
||||
|
||||
test(function() {
|
||||
var key = Symbol();
|
||||
|
||||
var storage = window[name];
|
||||
storage.clear();
|
||||
|
||||
Object.defineProperty(storage, key, { "value": "test" });
|
||||
assert_equals(storage[key], "test");
|
||||
}, name + ": defineProperty + get");
|
||||
|
||||
test(function() {
|
||||
var key = Symbol();
|
||||
|
||||
var storage = window[name];
|
||||
storage.clear();
|
||||
|
||||
Object.defineProperty(storage, key, { "value": "test", "configurable": false });
|
||||
assert_equals(storage[key], "test");
|
||||
var desc = Object.getOwnPropertyDescriptor(storage, key);
|
||||
assert_true(desc.configurable, "configurable");
|
||||
|
||||
assert_true(delete storage[key]);
|
||||
assert_equals(storage[key], undefined);
|
||||
}, name + ": defineProperty not configurable");
|
||||
|
||||
test(function() {
|
||||
var key = Symbol();
|
||||
Storage.prototype[key] = "test";
|
||||
this.add_cleanup(function() { delete Storage.prototype[key]; });
|
||||
|
||||
var storage = window[name];
|
||||
storage.clear();
|
||||
|
||||
assert_equals(storage[key], "test");
|
||||
var desc = Object.getOwnPropertyDescriptor(storage, key);
|
||||
assert_equals(desc, undefined);
|
||||
}, name + ": get with symbol on prototype");
|
||||
|
||||
test(function() {
|
||||
var key = Symbol();
|
||||
|
||||
var storage = window[name];
|
||||
storage.clear();
|
||||
|
||||
storage[key] = "test";
|
||||
assert_true(delete storage[key]);
|
||||
assert_equals(storage[key], undefined);
|
||||
}, name + ": delete existing property");
|
||||
|
||||
test(function() {
|
||||
var key = Symbol();
|
||||
|
||||
var storage = window[name];
|
||||
storage.clear();
|
||||
|
||||
assert_true(delete storage[key]);
|
||||
assert_equals(storage[key], undefined);
|
||||
}, name + ": delete non-existent property");
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue