79 lines
2.9 KiB
HTML
79 lines
2.9 KiB
HTML
<!DOCTYPE html>
|
|
<div id="log"></div>
|
|
<script src='../resources/testharness.js'></script>
|
|
<script src='../resources/testharnessreport.js'></script>
|
|
<script>
|
|
function log(msg)
|
|
{
|
|
document.getElementById("log").innerHTML += msg + "<br>";
|
|
}
|
|
|
|
function printMethodError(method, target)
|
|
{
|
|
try {
|
|
method.call(target);
|
|
assert_unreached();
|
|
} catch(e) {
|
|
log(e);
|
|
}
|
|
}
|
|
|
|
function printPromiseMethodError(method, target)
|
|
{
|
|
return method.call(target).then(assert_unreached, (e) => {
|
|
log("Promise rejected with: " + e);
|
|
});
|
|
}
|
|
|
|
function printGetterError(object, getterName, target)
|
|
{
|
|
const property = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(object), getterName);
|
|
if (property === undefined) {
|
|
log(object + " has no property named " + getterName);
|
|
return;
|
|
}
|
|
printMethodError(property.get, target);
|
|
}
|
|
|
|
promise_test(function(test) {
|
|
// This test prints exceptions to check the format of their messages.
|
|
|
|
var pc = new RTCPeerConnection();
|
|
var candidate = new RTCIceCandidate({ candidate: "foo", sdpMid: "bar" });
|
|
|
|
var results = [
|
|
printPromiseMethodError(pc.createOffer, candidate),
|
|
printPromiseMethodError(pc.createAnswer, candidate),
|
|
printPromiseMethodError(pc.setLocalDescription, candidate),
|
|
printPromiseMethodError(pc.setRemoteDescription, candidate),
|
|
printPromiseMethodError(pc.addIceCandidate, candidate),
|
|
|
|
printGetterError(pc, "localDescription", candidate),
|
|
printGetterError(pc, "currentLocalDescription", candidate),
|
|
printGetterError(pc, "pendingLocalDescription", candidate),
|
|
printGetterError(pc, "remoteDescription", candidate),
|
|
printGetterError(pc, "currentRemoteDescription", candidate),
|
|
printGetterError(pc, "pendingRemoteDescription", candidate),
|
|
printGetterError(pc, "signalingState", candidate),
|
|
printGetterError(pc, "iceGatheringState", candidate),
|
|
printGetterError(pc, "iceConnectionState", candidate),
|
|
printGetterError(pc, "connectionState", candidate),
|
|
printGetterError(pc, "canTrickleIceCandidates", candidate),
|
|
printGetterError(pc, "defaultIceServers", candidate),
|
|
|
|
printMethodError(pc.getConfiguration, candidate),
|
|
printMethodError(pc.setConfiguration, candidate),
|
|
printMethodError(pc.close, candidate),
|
|
|
|
printGetterError(pc, "onnegotiationneeded", candidate),
|
|
printGetterError(pc, "onicecandidate", candidate),
|
|
printGetterError(pc, "onicecandidateerror", candidate),
|
|
printGetterError(pc, "onsignalingstatechange", candidate),
|
|
printGetterError(pc, "oniceconnectionstatechange", candidate),
|
|
printGetterError(pc, "onicegatheringstatechange", candidate),
|
|
printGetterError(pc, "onconnectionstatechange", candidate),
|
|
];
|
|
return Promise.all(results);
|
|
}, "Exercising TypeError messages in RTCPeerConnection");
|
|
</script>
|