Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/fast/peerconnection/RTCPeerConnection-statsPromise.html |
| diff --git a/third_party/WebKit/LayoutTests/fast/peerconnection/RTCPeerConnection-statsPromise.html b/third_party/WebKit/LayoutTests/fast/peerconnection/RTCPeerConnection-statsPromise.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..a6a9dd390a54190f9e29e6216d1dec4966fc0f11 |
| --- /dev/null |
| +++ b/third_party/WebKit/LayoutTests/fast/peerconnection/RTCPeerConnection-statsPromise.html |
| @@ -0,0 +1,58 @@ |
| +<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| +<html> |
| +<head> |
| +<script src="../../resources/js-test.js"></script> |
|
hta - Chromium
2016/07/19 09:56:48
This test is new. Can you make it a testharness.js
hbos_chromium
2016/07/19 13:59:34
Done. Much nicer.
|
| +</head> |
| +<body> |
| +<script> |
| +description("Tests the promise-based RTCPeerConnection.getStats function."); |
| + |
| +var pc = null; |
| +var selector = null; |
| + |
| +function getUserMedia(dictionary, callback) { |
| + try { |
| + navigator.webkitGetUserMedia(dictionary, callback, error); |
|
hta - Chromium
2016/07/19 09:56:48
Use navigator.mediaDevices.getUserMedia => promise
hbos_chromium
2016/07/19 13:59:34
Done.
|
| + } catch (e) { |
| + testFailed('webkitGetUserMedia threw exception :' + e); |
| + finishJSTest(); |
| + } |
| +} |
| + |
| +function error() { |
| + testFailed('Stream generation failed.'); |
| + finishJSTest(); |
| +} |
| + |
| +function gotStream(stream) { |
| + testPassed('Got a stream.'); |
| + |
| + pc.addStream(stream); |
| + shouldNotThrow('selector = pc.getLocalStreams()[0].getVideoTracks()[0]'); |
| + shouldBeNonNull('selector'); |
| + |
| + shouldNotThrow('pc.getStats(selector).then(onResolve, onReject1)'); |
| +} |
| + |
| +function onResolve(report) { |
| + // Until getStats is implemented, we expect the promise to be rejected. |
| + testFailed("onResolve called - getStats promise expected to be rejected."); |
| + finishJSTest(); |
| +} |
| +function onReject1(reason) { |
| + testPassed("pc.getStats(selector) was rejected."); |
| + shouldNotThrow('pc.getStats().then(onResolve, onReject2)'); |
|
hta - Chromium
2016/07/19 09:56:48
In general, when testing promises, it's better to
hbos_chromium
2016/07/19 13:59:34
Done.
|
| +} |
| +function onReject2(reason) { |
| + testPassed("pc.getStats() was rejected."); |
| + finishJSTest(); |
| +} |
| + |
| +shouldNotThrow('pc = new webkitRTCPeerConnection(null)'); |
| +shouldNotThrow('getUserMedia({audio:true, video:true}, gotStream)'); |
| + |
| +window.jsTestIsAsync = true; |
| +window.successfullyParsed = true; |
| +</script> |
| +</body> |
| +</html> |