<!DOCTYPE html>

<!--
Test up mixing from stereo to 5.1.
-->

<html>
<head>
<script type="text/javascript" src="resources/audio-testing.js"></script>
<script type="text/javascript" src="resources/mix-testing.js"></script>
</head>
<body>

<script>

function runTest() {
    if (!window.testRunner)
        return;

    testRunner.waitUntilDone();

    window.jsTestAsync = true;

    // Create offline audio context
    var sampleRate = 44100.0;
    var context = new webkitOfflineAudioContext(6, sampleRate * toneLengthSeconds, sampleRate);
    var toneBuffer = createToneBuffer(context, 440, toneLengthSeconds, 2); 

    var source = context.createBufferSource();
    source.buffer = toneBuffer;
    
    source.connect(context.destination);
    source.noteOn(0);
    
    context.oncomplete = finishAudioTest;
    context.startRendering();    
}

runTest();
</script>

</body>
</html>
