<body>
<p>
    This tests that in a html document with inline audio content, the media element repaints correctly
    while playing.
</p>
<audio controls autoplay onplaying="playing(0)" src="content/silence.wav"></audio><br/>
<audio controls autoplay onplaying="playing(1)" src="content/silence.wav" style="margin-bottom:25px; -webkit-box-reflect:below;"></audio><br/>
<audio controls autoplay onplaying="playing(2)" src="content/silence.wav" style="margin:27px 0; -webkit-transform: rotate(15deg);"></audio><br>
<script>
    if (window.testRunner)
        testRunner.waitUntilDone();

    if (window.testRunner)
        testRunner.display();

    var count = 3;
    var audioElements = document.getElementsByTagName('audio');

    function playing(i) {
        var audio = audioElements[i];
        audio.pause();
        audio.addEventListener("seeked", function() {
        if (!--count && window.testRunner)
            testRunner.notifyDone();
        }, true);
        audio.currentTime = audio.duration * 0.50;
    }
</script>
</body>
