mirror of
https://github.com/servo/servo.git
synced 2025-06-28 11:03:39 +01:00
76 lines
2.1 KiB
HTML
76 lines
2.1 KiB
HTML
<!doctype html>
|
|
<meta charset=utf-8>
|
|
<title>RTCPeerConnection constructor</title>
|
|
<script src=/resources/testharness.js></script>
|
|
<script src=/resources/testharnessreport.js></script>
|
|
<script>
|
|
test(function() {
|
|
assert_equals(RTCPeerConnection.length, 0);
|
|
}, 'RTCPeerConnection.length');
|
|
|
|
// These are used for string and number dictionary members to see if they are
|
|
// being accessed at all.
|
|
const toStringThrows = { toString: function() { throw new Error; } };
|
|
const toNumberThrows = Symbol();
|
|
|
|
// Test the first argument of the constructor. The key is the argument itself,
|
|
// and the value is the first argument for assert_throws_js, or false if no
|
|
// exception should be thrown.
|
|
const testArgs = {
|
|
// No argument or equivalent.
|
|
'': false,
|
|
'null': false,
|
|
'undefined': false,
|
|
'{}': false,
|
|
|
|
// certificates
|
|
'{ certificates: null }': TypeError,
|
|
'{ certificates: undefined }': false,
|
|
'{ certificates: [] }': false,
|
|
'{ certificates: [null] }': TypeError,
|
|
'{ certificates: [undefined] }': TypeError,
|
|
|
|
// iceCandidatePoolSize
|
|
'{ iceCandidatePoolSize: toNumberThrows }': TypeError,
|
|
}
|
|
|
|
for (const arg in testArgs) {
|
|
const expr = 'new RTCPeerConnection(' + arg + ')';
|
|
test(function() {
|
|
const throws = testArgs[arg];
|
|
if (throws) {
|
|
assert_throws_js(throws, function() {
|
|
eval(expr);
|
|
});
|
|
} else {
|
|
eval(expr);
|
|
}
|
|
}, expr);
|
|
}
|
|
|
|
// The initial values of attributes of RTCPeerConnection.
|
|
const initialState = {
|
|
'localDescription': null,
|
|
'currentLocalDescription': null,
|
|
'pendingLocalDescription': null,
|
|
'remoteDescription': null,
|
|
'currentRemoteDescription': null,
|
|
'pendingRemoteDescription': null,
|
|
'signalingState': 'stable',
|
|
'iceGatheringState': 'new',
|
|
'iceConnectionState': 'new',
|
|
'connectionState': 'new',
|
|
'canTrickleIceCandidates': null,
|
|
// TODO: defaultIceServers
|
|
};
|
|
|
|
for (const attr in initialState) {
|
|
test(function() {
|
|
// Use one RTCPeerConnection instance for all initial value tests.
|
|
if (!window.pc) {
|
|
window.pc = new RTCPeerConnection;
|
|
}
|
|
assert_equals(window.pc[attr], initialState[attr]);
|
|
}, attr + ' initial value');
|
|
}
|
|
</script>
|