blob: b7f791fd8c97ed5759aef34ed5d5fa486e50ba70 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../resources/js-test.js"></script>
</head>
<body>
<script>
description("Tests the RTCPeerConnection stats selector argument.");
var pc = null;
var result;
function getUserMedia(dictionary, callback) {
try {
navigator.webkitGetUserMedia(dictionary, callback, error);
} catch (e) {
testFailed('webkitGetUserMedia threw exception :' + e);
finishJSTest();
}
}
function error() {
testFailed('Stream generation failed.');
finishJSTest();
}
function gotStream(s) {
testPassed('Got a stream.');
stream = s;
pc.addStream(stream);
shouldNotThrow('pc.getStats(statsHandler2, pc.getLocalStreams()[0].getVideoTracks()[0])');
}
function statsHandler2(status)
{
testPassed("statsHandler2 was called");
result = status.result();
shouldBeGreaterThanOrEqual('result.length', '1');
// Windows XP sometimes gives time that appears to go backwards.
// This hack will make the tests non-flaky if it never goes backwards
// by more than 20 milliseconds.
// Up to 10 milliseconds has been observed on XP, 2 milliseconds on Win7.
fudgeForXP = 20;
res = result[0];
timediff = res.timestamp - startTime + fudgeForXP;
shouldBeGreaterThanOrEqual('timediff', '0');
// TODO(hta): Get the right stat object for checking the type.
// shouldBe('res.stat("type")', '"video"');
finishJSTest();
}
var startTime = new Date().getTime();
shouldNotThrow('pc = new RTCPeerConnection()');
shouldNotThrow('getUserMedia({audio:true, video:true}, gotStream)');
window.jsTestIsAsync = true;
window.successfullyParsed = true;
</script>
</body>
</html>