summaryrefslogtreecommitdiffstats
path: root/third_party/WebKit/LayoutTests/webaudio/audiobuffer.html
blob: 233f4d807dbb754b552d3d51a3996821ac134ad4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<!DOCTYPE html>
<html>
<head>
<script src="../fast/js/resources/js-test-pre.js"></script>
<script src="resources/audio-testing.js"></script>
</head>
<body>
<script>
description("Basic tests for AudioBuffer.");

var sampleRate = 44100.0
var lengthInSeconds = 2;
var numberOfChannels = 4;

var context = new webkitAudioContext();
var buffer = context.createBuffer(numberOfChannels, sampleRate * lengthInSeconds, sampleRate);

if (buffer.sampleRate === sampleRate)
    testPassed("sampleRate has been set correctly.");
else
    testFailed("sampleRate should be set correctly.");

if (buffer.length === sampleRate * lengthInSeconds)
    testPassed("length has been set correctly.");
else
    testFailed("length should be set correctly");

if (buffer.duration === lengthInSeconds)
    testPassed("duration has been set correctly.");
else
    testFailed("duration should be set correctly.");

if (buffer.numberOfChannels === numberOfChannels)
    testPassed("numberOfChannels has been set correctly.");
else
    testFailed("numberOfChannels should be set correctly.");

for (var index = 0; index < buffer.numberOfChannels; ++index) {
    if (buffer.getChannelData(index) instanceof window.Float32Array)
        testPassed("getChannelData(" + index + ") returns a Float32Array object.");
    else
        testFailed("getChannelData(" + index + ") should return a Float32Array object.");
}

try {
    buffer.getChannelData(buffer.numberOfChannels);
    testFailed("Exception should be thrown when index is not less than numberOfChannels.");
} catch(e) {
    testPassed("Exception has been thrown correctly when index is not less than numberOfChannels.");
}

</script>

<script src="../fast/js/resources/js-test-post.js"></script>
</body>
</html>