<!doctype html>
<html>
 <head>
  <title>{audio,video} events - canplay</title>
  <script src="/resources/testharness.js"></script>
  <script src="/resources/testharnessreport.js"></script>
  <script src="/common/media.js"></script>
 </head>
 <body>
  <p><a href="https://html.spec.whatwg.org/multipage/#mediaevents">spec reference</a></p>
  <audio id="a" controls>
  </audio>
  <video id="v" controls>
  </video>
  <div id="log"></div>
  <script>
test(function () {
  var t = async_test("setting src attribute on non-autoplay audio should trigger canplay event", {timeout:5000});
  var a = document.getElementById("a");
  a.addEventListener("canplay", function() {
    t.done();
  }, false);
  a.src = getAudioURI("/media/sound_5") + "?" + new Date() + Math.random();
}, "audio events - canplay");

test(function () {
  var t = async_test("setting src attribute on non-autoplay video should trigger canplay event", {timeout:5000});
  var v = document.getElementById("v");
  v.addEventListener("canplay", function() {
    t.done();
  }, false);
  v.src = getVideoURI("/media/movie_5") + "?" + new Date() + Math.random();
}, "video events - canplay");
  </script>
 </body>
</html>
