blob: 06ffe678c8807864017d75f697db85c7c82563eb [file]
<!DOCTYPE html>
<html>
<head>
<title>test-runner-set-audio-data-basic.html</title>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="resources/audio-file-utils.js"></script>
</head>
<body>
<script>
// This is a very basic test to make sure
// testRunner.setAudioData() works correctly.
// It generates a 2-second-long stereo result @44.1KHz
// The left channel will be a 880Hz tone,
// while the right will be a 440Hz tone.
const sampleRate = 44100.0;
const lengthInSeconds = 2;
function generateSineWave(audioBuffer) {
const channelLeft = audioBuffer.getChannelData(0);
const channelRight = audioBuffer.getChannelData(1);
for (let i = 0; i < audioBuffer.length; ++i) {
channelLeft[i] = Math.sin(880.0 * 2.0 * Math.PI * i / sampleRate);
channelRight[i] = Math.sin(440.0 * 2.0 * Math.PI * i / sampleRate);
}
}
test(() => {
if (!window.testRunner) {
// If you run this test with an actual browser,
// the testRunner won't be available. This checks such case.
assert_true(!window.testRunner, 'window.testRunner is not defined');
return;
}
let audioBuffer = new AudioBuffer({
length: lengthInSeconds * sampleRate,
sampleRate: sampleRate,
numberOfChannels: 2
});
generateSineWave(audioBuffer);
let audioData = createAudioData(audioBuffer);
testRunner.setAudioData(audioData);
testRunner.notifyDone();
}, 'Basic audio test infrastructure: testRunner.setAudioData()');
</script>
</body>
</html>