<!doctype html>
<html>
 <head>
  <title>video events - progress</title>
  <script src="../../w3cwrapper.js"></script>
 </head>
 <body>
  <p><a href="http://dev.w3.org/html5/spec/Overview.html#mediaevents">spec reference</a></p>
  <video id="v" autoplay controls>
  </video>
  <div id="log"></div>
  <script>
var t = async_test("setting src attribute on autoplay video should trigger progress event", {timeout:30000});
var v = document.getElementById("v");
v.addEventListener("progress", function() {
  t.step(function() {
   assert_true(true);
  });
  t.done();
  v.pause();
});
v.src = getVideoURI("http://media.w3.org/2010/05/video/movie_300") + "?" + new Date() + Math.random();
  </script>
 </body>
</html>
