<!DOCTYPE html>
<html>
  <head>
    <title>Audio Test: audio_loop_base</title>
    <link rel="author" title="Intel" href="http://www.intel.com" />
    <link rel="help" href="https://html.spec.whatwg.org/multipage/#dom-media-loop" />
    <meta name="flags" content="" />
    <meta name="assert" content="Check if audio.loop is set to true that expecting the seeking event is fired more than once" />
    <meta name=timeout content=long>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <script src="/common/media.js"></script>
  </head>
  <body>
    <div id="log"></div>
    <audio id="m" controls>The user agent doesn't support media element.</audio>
    <script type="text/javascript">
        var media = document.getElementById("m");
        var name = document.getElementsByName("assert")[0].content;
        var t = async_test(name);

        var looped = false;

        function startTest() {
            if (looped) {
                t.step(function() {
                    assert_true(true, "looped");
                });
                t.done();
                media.pause();
            }

            looped = true;
        }

        media.addEventListener("seeking", startTest, false);
        media.loop = true;
        media.src = getAudioURI("/media/sound_5") + "?" + new Date() + Math.random();
        media.play();
    </script>
  </body>
</html>
