<!doctype html>
<html>
 <head>
  <title>{audio,video} events - paused property</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.paused should be false during play event", {timeout:5000});
  var a = document.getElementById("a");
  a.addEventListener("play", function() {
    t.step(function() {
     assert_false(a.paused);
    });
    t.done();
    a.pause();
  }, false);
  a.src = getAudioURI("/media/sound_5") + "?" + new Date() + Math.random();
}, "audio events - paused property");

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