<!DOCTYPE html>
<html>
<head>
    <title>audiobuffersource-negative-playbackrate-loop</title>
    <script src="../resources/js-test.js"></script>
    <script src="resources/audio-testing.js"></script>
    <script src="resources/audiobuffersource-testing-legacy.js"></script>

    <script>

    var sampleRate = 44100.0;
    var sourceFrames = 128;
    var renderFrames = 10;
    var testSpacingFrames = 0;
    var startLoop = 100 / sampleRate;
    var loopDuration = (renderFrames / 2) / sampleRate;
    var endLoop = startLoop + loopDuration;

    var tests = [{ 
        description:"Test looping playback at -1 playbackRate",
        offsetFrame:0,
        renderFrames:renderFrames,
        expected:[104, 103, 102, 101, 100, 104, 103, 102, 101, 100],
    }];

    function go() {
        jsTestIsAsync = true;

        context = new OfflineAudioContext(1, renderFrames, sampleRate);

        var bufferSource = context.createBufferSource();
        bufferSource.buffer = createRamp(context, 0, 127, sourceFrames);

        bufferSource.connect(context.destination);
        bufferSource.playbackRate.value = -1;
        bufferSource.loop = true;
        bufferSource.loopStart = startLoop;
        bufferSource.loopEnd = endLoop;
        bufferSource.start(0, startLoop, loopDuration);
        bufferSource.stop(loopDuration * 2);

        context.oncomplete = checkAllTests;
        context.startRendering();
    }

    </script>
</head>
<body onload="go()">
</body>
</html>
