Index: third_party/WebKit/LayoutTests/fast/mediacapturefromelement/CanvasCaptureMediaStream-events-and-exceptions.html |
diff --git a/third_party/WebKit/LayoutTests/fast/mediacapturefromelement/CanvasCaptureMediaStream-events-and-exceptions.html b/third_party/WebKit/LayoutTests/fast/mediacapturefromelement/CanvasCaptureMediaStream-events-and-exceptions.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..8ed45f412bc7b2ccb56a5f8160e634332c503aa4 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/fast/mediacapturefromelement/CanvasCaptureMediaStream-events-and-exceptions.html |
@@ -0,0 +1,70 @@ |
+<!DOCTYPE html> |
+<html> |
+<head> |
+<script src="../../resources/js-test.js"></script> |
+</head> |
+<body> |
+<p id="description"></p> |
+<div id="console"></div> |
+<canvas id="canvas_source"></canvas> |
+<script> |
+description("Exercises the potential events on CanvasCaptureMediaStream."); |
+ |
+window.jsTestIsAsync = true; |
+ |
+var canvas = document.getElementById('canvas_source'); |
+var stream; |
+var track; |
+ |
+function onVideoPlay() { |
+ testPassed('Video play callback succeeded.'); |
+ drawToCanvas(canvas); |
+}; |
+ |
+function onVideoCanPlayThrough() { |
+ testPassed('Video canplaythrough callback succeeded.'); |
+ finishJSTest(); |
+}; |
+ |
+function drawToCanvas(canvas) { |
+ testPassed('Drawing to canvas.'); |
+ var ctx = canvas.getContext("2d"); |
+ ctx.strokeStyle="#FF0204"; |
+ ctx.beginPath(); |
+ ctx.moveTo(0,0); |
+ ctx.lineTo(100, 100); |
+ ctx.stroke(); |
+}; |
+ |
+function playMediaStream() { |
+ shouldBe('stream.getVideoTracks().length', '1'); |
+ track = stream.getVideoTracks()[0]; |
+ shouldBeEqualToString('track.readyState', 'live'); |
+ |
+ var video = document.createElement('video'); |
+ try { |
+ video.src = window.URL.createObjectURL(stream); |
+ testPassed('Plugged stream to video tag.'); |
+ } catch(e) { |
+ testFailed('Exception plugging stream to <video>: ' + e); |
+ finishJSTest(); |
+ } |
+ video.addEventListener("play", onVideoPlay); |
+ video.addEventListener("canplaythrough", onVideoCanPlayThrough); |
+ video.play(); |
+}; |
+ |
+try { |
+ stream = canvas.captureStream(); |
+ testPassed('Got a stream from canvas.'); |
+} catch (e) { |
+ testFailed('Exception calling captureStream(): ' + e); |
+ finishJSTest(); |
+} |
+if (stream) { |
+ playMediaStream(); |
+} |
+ |
+</script> |
+</body> |
+</html> |