Index: LayoutTests/media/mediastream-srcobject.html |
diff --git a/LayoutTests/media/mediastream-srcobject.html b/LayoutTests/media/mediastream-srcobject.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b541769c4826082c954dc2eb917d6b226b7f1f02 |
--- /dev/null |
+++ b/LayoutTests/media/mediastream-srcobject.html |
@@ -0,0 +1,88 @@ |
+<!DOCTYPE HTML"> |
+<html> |
+<head> |
+<script src=media-file.js></script> |
+<script src=video-test.js></script> |
+ |
+<script type="text/javascript"> |
+ |
+function playingFromFileOnce() |
+{ |
+ testExpected(video.currentSrc.length > 0, 1); |
+ consoleWrite("EVENT(playingFromFile)<br>"); |
+ createAndPlayMediaStream(); |
+} |
+ |
+function playingSrcObject() |
+{ |
+ consoleWrite("EVENT(playingVideo)<br>"); |
+ video.setAttribute('onplaying', "playingFromFileTwice()"); |
+ consoleWrite("MediaStream is playing. Set srcObject = null."); |
+ video.srcObject=null; |
+} |
+ |
+function playingFromFileTwice() |
+{ |
+ consoleWrite("EVENT(playingFromFile)<br>"); |
+ endTest(); |
+} |
+ |
+function startPlayFile() |
+{ |
+ findMediaElement(); |
+ waitForEvent("loadstart"); |
+ waitForEvent("waiting"); |
+ waitForEvent("ratechange"); |
+ waitForEvent("durationchange"); |
+ waitForEvent("pause"); |
+ waitForEvent("play"); |
+ waitForEvent("canplaythrough"); |
+ waitForEvent('loadeddata'); |
+ |
+ consoleWrite("Set src to local file."); |
+ video.setAttribute('onplaying', "playingFromFileOnce()"); |
+ |
+ var mediaFile; |
+ for (var i = 0; i < videoCodecs.length; ++i) { |
+ if (video.canPlayType(videoCodecs[i][0])) { |
+ mediaFile = "content/test." + videoCodecs[i][1]; |
+ break; |
+ } |
+ } |
+ video.src = mediaFile; |
+} |
+ |
+function gotStream(stream) |
+{ |
+ consoleWrite("Got a MediaStream. Start playing it."); |
+ video.setAttribute('onplaying', "playingSrcObject()"); |
+ video.playbackRate = 2; |
+ video.srcObject = stream; |
+ testExpected(video.playbackRate, 1); |
+ testExpected(video.currentSrc.length, 0); |
+} |
+ |
+function gotStreamFailed(error) |
+{ |
+ consoleWrite("Failed to get access to local media. Error code was " + error.code); |
+} |
+ |
+function createAndPlayMediaStream() |
+{ |
+ try { |
+ consoleWrite("Request access to local media."); |
+ navigator.webkitGetUserMedia({video:true}, gotStream, gotStreamFailed); |
+ } catch (e) { |
+ consoleWrite("getUserMedia error " + "(" + e.name + " / " + e.message + ")"); |
+ } |
+} |
+ |
+</script> |
+</head> |
+ |
+<body onload="startPlayFile()"> |
+<p>Test that setting the HTMLMediaElement.srcObject overrides setting the src attribute and if the srcObect is set to null, media is reloaded from the src attribute.</p> |
+<video width="320" height="240" autoplay="autoplay"></video> |
+</body> |
+</html> |
+ |