<!doctype html>
<html>
 <head>
  <title>{audio,video}.networkState - NETWORK_LOADING</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/#dom-media-networkstate">spec reference</a></p>
  <audio id="a" autoplay controls>
  </audio>
  <video id="v" autoplay controls>
  </video>
  <div id="log"></div>
  <script>
var ta = async_test("audioElement.networkState should be NETWORK_LOADING during progress event", {timeout:5000});
var a = document.getElementById("a");
a.addEventListener("progress", function() {
  ta.step(function() {
   assert_equals(a.networkState,
   a.NETWORK_LOADING);
  });
  ta.done();
  a.pause();
}, false);
a.src = getAudioURI("/media/sound_5") + "?" + new Date() + Math.random();

var tv = async_test("videoElement.networkState should be NETWORK_LOADING during progress event", {timeout:5000});
var v = document.getElementById("v");
v.addEventListener("progress", function() {
  tv.step(function() {
   assert_equals(v.networkState,
   v.NETWORK_LOADING);
  });
  tv.done();
  v.pause();
}, false);
v.src = getVideoURI("/media/movie_5") + "?" + new Date() + Math.random();
  </script>
 </body>
</html>
