<html>
  <!-- Trying to access a same origin resource, video element setting crossorigin attribute.
       Video play back is expected to succeed. -->
  <body onload="start()">
    <script src=../../media-resources/video-test.js></script>
    <script src=../../media-resources/media-file.js></script>
    <script>
        waitForEvent('error', function() {
          failTest("Video stream access should succeed");
        });

        waitForEvent('playing', function() {
          endTest();
        });

        function start() {
            findMediaElement();
            var mediaFile = findMediaFile("video", "../../media/resources/test");
            video.src = mediaFile;
            video.play();
        }
    </script>

    <video crossorigin></video>
    <canvas></canvas>
  </body>
</head>
