| Index: content/test/data/media/getusermedia.html
|
| diff --git a/content/test/data/media/getusermedia.html b/content/test/data/media/getusermedia.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..429dd66058e97bd9d1ab1cf52469cf83287607de
|
| --- /dev/null
|
| +++ b/content/test/data/media/getusermedia.html
|
| @@ -0,0 +1,76 @@
|
| +<html>
|
| +<head>
|
| + <script type="text/javascript" src="webrtc_test_utilities.js"></script>
|
| + <script type="text/javascript">
|
| + $ = function(id) {
|
| + return document.getElementById(id);
|
| + };
|
| +
|
| + var gLocalStream = null;
|
| +
|
| + setAllEventsOccuredHandler(function() {
|
| + gLocalStream.stop();
|
| + document.title = 'OK';
|
| + });
|
| +
|
| + // This test that a MediaStream can be created and a local preview
|
| + // rendered.
|
| + function getUserMedia(constraints) {
|
| + navigator.webkitGetUserMedia(constraints, displayAndWaitForVideo,
|
| + failedCallback);
|
| + }
|
| +
|
| + // This test that a MediaStream can be cloned and that the clone can
|
| + // be rendered.
|
| + function getUserMediaAndClone() {
|
| + navigator.webkitGetUserMedia({video: true, audio: true},
|
| + createAndRenderClone, failedCallback);
|
| + }
|
| +
|
| + function failedCallback(error) {
|
| + document.title = 'GetUserMedia call failed with code ' + error.code;
|
| + }
|
| +
|
| + function displayAndWaitForVideo(stream) {
|
| + gLocalStream = stream;
|
| + var localStreamUrl = webkitURL.createObjectURL(stream);
|
| + $('local-view').src = localStreamUrl;
|
| + waitForVideo('local-view');
|
| + }
|
| +
|
| + function createAndRenderClone(stream) {
|
| + gLocalStream = stream;
|
| + // TODO(perkj): --use-fake-device-for-media-stream do not currently
|
| + // work with audio devices and not all bots has a microphone.
|
| + new_stream = new webkitMediaStream();
|
| + new_stream.addTrack(stream.getVideoTracks()[0]);
|
| + expectEquals(new_stream.getVideoTracks().length, 1);
|
| + if (stream.getAudioTracks().length > 0) {
|
| + new_stream.addTrack(stream.getAudioTracks()[0]);
|
| + expectEquals(new_stream.getAudioTracks().length, 1);
|
| + new_stream.removeTrack(new_stream.getAudioTracks()[0]);
|
| + expectEquals(new_stream.getAudioTracks().length, 0);
|
| + }
|
| +
|
| + var newStreamUrl = webkitURL.createObjectURL(new_stream);
|
| + $('local-view').src = newStreamUrl;
|
| + waitForVideo('local-view');
|
| + }
|
| +
|
| + </script>
|
| +</head>
|
| +<body>
|
| + <table border="0">
|
| + <tr>
|
| + <td>Local Preview</td>
|
| + </tr>
|
| + <tr>
|
| + <td><video width="320" height="240" id="local-view"
|
| + autoplay="autoplay"></video></td>
|
| + <!-- Canvases are named after their corresponding video elements. -->
|
| + <td><canvas width="320" height="240" id="local-view-canvas"
|
| + style="display:none"></canvas></td>
|
| + </tr>
|
| + </table>
|
| +</body>
|
| +</html>
|
|
|