gecko-dev/dom/media/tests/mochitest/test_peerConnection_throwInCallbacks.html
Wes Kocher 8c29b2aace Backed out 5 changesets (bug 1219711) for frequent android m(9) failures a=bustage
Backed out changeset 2d5f09d89424 (bug 1219711)
Backed out changeset cf14a6e5f340 (bug 1219711)
Backed out changeset 4eaa8cf9a752 (bug 1219711)
Backed out changeset 65abe62869df (bug 1219711)
Backed out changeset a21d79a94307 (bug 1219711)

--HG--
extra : commitid : 2uBL6k0T3uy
extra : source : aaee8ec22e5fd0650818aab7d85ff4b069681a35
2015-11-06 11:14:11 -08:00

80 lines
2.1 KiB
HTML

<!DOCTYPE HTML>
<html>
<head>
<script type="application/javascript" src="pc.js"></script>
</head>
<body>
<pre id="test">
<script type="application/javascript;version=1.8">
createHTML({
bug: "857765",
title: "Throw in PeerConnection callbacks"
});
runNetworkTest(function () {
function finish() {
window.onerror = oldOnError;
is(error_count, 7, "Seven expected errors verified.");
networkTestFinished();
}
function getFail() {
return err => {
window.onerror = oldOnError;
generateErrorCallback()(err);
};
}
let error_count = 0;
let oldOnError = window.onerror;
window.onerror = (errorMsg, url, lineNumber) => {
if (errorMsg.indexOf("Expected") == -1) {
getFail()(errorMsg);
}
error_count += 1;
info("onerror " + error_count + ": " + errorMsg);
if (error_count == 7) {
finish();
}
throw new Error("window.onerror may throw");
return false;
}
let pc0, pc1, pc2;
// Test failure callbacks (limited to 1 for now)
pc0 = new RTCPeerConnection();
pc0.createOffer(getFail(), function(err) {
pc1 = new RTCPeerConnection();
pc2 = new RTCPeerConnection();
// Test success callbacks (happy path)
navigator.mozGetUserMedia({video:true, fake: true}, function(video1) {
pc1.addStream(video1);
pc1.createOffer(function(offer) {
pc1.setLocalDescription(offer, function() {
pc2.setRemoteDescription(offer, function() {
pc2.createAnswer(function(answer) {
pc2.setLocalDescription(answer, function() {
pc1.setRemoteDescription(answer, function() {
throw new Error("Expected");
}, getFail());
throw new Error("Expected");
}, getFail());
throw new Error("Expected");
}, getFail());
throw new Error("Expected");
}, getFail());
throw new Error("Expected");
}, getFail());
throw new Error("Expected");
}, getFail());
}, getFail());
throw new Error("Expected");
});
});
</script>
</pre>
</body>
</html>