<!DOCTYPE html>
<html>
<head>
<script src="../resources/js-test.js"></script>
<script type="text/javascript" src="resources/audio-testing.js"></script>
</head>
<body>
<script>
description("Test that decoding an opus webm file with resampling succeeds");

window.jsTestIsAsync = true;

var context = new window.AudioContext({ sampleRate: 44100 });
var request = new XMLHttpRequest();
request.open("GET", 'resources/media/opus.webm', true);
request.responseType = "arraybuffer";

request.onload = function() {
    context.decodeAudioData(request.response, (buffer) => {
        testPassed("Successfully decoded content");
        // File is exactly 1-0.0065s long @ 48000Hz, so 47688 frames, after resampling it should be 47688/48000*44100 = 43813.
        if (buffer.length === 43813)
          testPassed("Decoding returned the right number of frames.");
        else
          testFailed("Decoding returned the wrong number of frames: " + buffer.length);
        finishJSTest();
      }, () => {
        testFailed("Failed to decode file");
        finishJSTest();
      });
}
request.send();

</script>
</body>
</html>
