<!DOCTYPE HTML>
<html>
<head>
    <title>Video track src attribute must match src list - positive test</title>
    <script src='/resources/testharness.js'></script>
    <script src='/resources/testharnessreport.js'></script>
</head>
<body>
    <h1>Video track src attribute must match src list - positive test</h1>
    <div id='log'></div>

  <script>
    var source_test = async_test("In-policy track element");

      var trackURL = location.protocol +
        "//www." +
        location.hostname +
        ":" +
        location.port +
        "/media/foo.vtt";

    function media_loaded(t) {
      t.done();
    }

    function media_error_handler(t) {
      t.step( function () {
          assert_unreached("Error handler called for allowed track source.");
      });
      t.done();
    }
  </script>

    <video id="videoObject" width="320" height="240" controls
           onloadeddata="media_loaded(source_test)" crossorigin>
        <source id="audioSourceObject"
                type="audio/mpeg"
                src="/media/white.mp4">
        <track id="trackObject"
               kind="subtitles"
               srclang="en"
               label="English"
               onerror="media_error_handler(source_test)">
    </video>
    <script>
        document.getElementById("trackObject").src = trackURL;
    </script>

  <script async defer src="../support/checkReport.sub.js?reportExists=false">
  </script>

</body>
</html>