<!doctype html>
<html>
<head>
<title>getUserMedia({video:true}) creates a stream with a properly initialized video track</title>
<link rel="author" title="Dominique Hazael-Massieux" href="mailto:dom@w3.org"/>
<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#idl-def-MediaStreamTrack">
<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#life-cycle-and-media-flow">
<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#widl-MediaStreamTrack-kind">
<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#widl-MediaStreamTrack-enabled">
<link rel="help" href="http://dev.w3.org/2011/webrtc/editor/getusermedia.html#widl-MediaStreamTrack-readyState">
</head>
<body>
<p class="instructions">When prompted, accept to share your video stream.</p>
<h1 class="instructions">Description</h1>
<p class="instructions">This test checks that the video track of MediaStream
object returned by the success callback in getUserMedia is correctly initialized.</p>

<div id='log'></div>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script>
promise_test(() => {
  return navigator.mediaDevices.getUserMedia({video: true})
    .then(stream => {
      var videoTracks = stream.getVideoTracks();
      assert_equals(videoTracks.length, 1, "There is exactly one video track in the media stream");
      track = videoTracks[0];
      assert_equals(track.readyState, "live", "The track object is in live state");
      assert_equals(track.kind, "video", "The track object is of video kind");
      // Not clear that this is required by the spec,
      // see https://www.w3.org/Bugs/Public/show_bug.cgi?id=22212
      assert_true(track.enabled, "The track object is enabed");
    });
});
</script>
</body>
</html>
