<!DOCTYPE HTML>
<html>
<head>
    <title>Video element src attribute must match src list - positive test</title>
    <meta http-equiv="Content-Security-Policy" content="script-src * 'unsafe-inline'; media-src 'self'">
    <script src='/resources/testharness.js'></script>
    <script src='/resources/testharnessreport.js'></script>
</head>
<body>
    <h1>Video element src attribute must match src list - positive test</h1>
    <div id='log'></div>

  <script>
    var src_test = async_test("In-policy async video src");
    var source_test = async_test("In-policy async video source element");
    var t_spv = async_test("Should not fire policy violation events");
    var test_count = 2;
    window.addEventListener("securitypolicyviolation", t_spv.unreached_func("Should not have fired any event"));

    function media_loaded(t) {
      t.done();
      if (--test_count <= 0) {
        t_spv.done();
      }
    }

    function media_error_handler(t) {
      t.step( function () {
          assert_unreached("Media error handler should be triggered for non-allowed domain.");
      });
      t.done();
    }
  </script>

    <video id="videoObject" width="320" height="240" controls
           onloadeddata="media_loaded(source_test)">
        <source id="videoSourceObject"
                type="video/ogg"
                onerror="media_error_handler(source_test)"
                src="/media/A4.ogv">
    </video>
    <video id="videoObject2" width="320" height="240" controls
           onerror="media_error_handler(src_test)"
           onloadeddata="media_loaded(src_test)"
           src="/media/A4.ogv">

</body>
</html>
