<!doctype html>
<html>
 <head>
  <title>{audio,video} events - readyState property during loadeddata</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" autoplay controls>
  </audio>
  <video id="v" autoplay controls>
  </video>
  <div id="log"></div>
  <script>
test(function() {
  var t = async_test("audio.readyState should be >= HAVE_CURRENT_DATA during loadeddata event", {timeout:5000});
  var a = document.getElementById("a");
  a.addEventListener("loadeddata", function() {
    t.step(function() {
     assert_greater_than_equal(a.readyState, a.HAVE_CURRENT_DATA);
    });
    t.done();
    a.pause();
  }, false);
  a.src = getAudioURI("/media/sound_5") + "?" + new Date() + Math.random();
}, "audio events - readyState property during loadeddata");

test(function() {
  var t = async_test("video.readyState should be >= HAVE_CURRENT_DATA during loadeddata event", {timeout:5000});
  var v = document.getElementById("v");
  v.addEventListener("loadeddata", function() {
    t.step(function() {
     assert_greater_than_equal(v.readyState, v.HAVE_CURRENT_DATA);
    });
    t.done();
    v.pause();
  }, false);
  v.src = getVideoURI("/media/movie_5") + "?" + new Date() + Math.random();
}, "video events - readyState property during loadeddata");
  </script>
 </body>
</html>
