Update ANGLE
[WebKit-https.git] / LayoutTests / webaudio / audiobuffersource-channels.html
1 <!DOCTYPE html>
2
3 <html>
4 <head>
5 <script src="../resources/js-test.js"></script>
6 <script type="text/javascript" src="resources/audio-testing.js"></script>
7 </head>
8
9 <body>
10 <div id="description"></div>
11 <div id="console"></div>
12
13 <script>
14 description("Tests that AudioBufferSourceNode validates AudioBuffer in .buffer attribute setter.");
15
16 var context;
17 var source;
18
19 function runTest() {
20     window.jsTestIsAsync = true;
21     
22     context = new webkitAudioContext();
23     source = context.createBufferSource();
24
25     shouldBeNull("source.buffer");
26
27     // Make sure we can't set to something which isn't an AudioBuffer.
28     shouldThrow("source.buffer = 57");
29
30     // Check that mono buffer can be set.
31     try {
32         var monoBuffer = context.createBuffer(1, 1024, context.sampleRate);
33         source.buffer = monoBuffer;
34         testPassed("Mono buffer can be set.");
35     } catch(e) {
36         testFailed("Mono buffer can not be set.");
37     }
38
39     // Check that stereo buffer can be set.
40     try {
41         var stereoBuffer = context.createBuffer(2, 1024, context.sampleRate);
42         source.buffer = stereoBuffer;
43         testPassed("Stereo buffer can be set.");
44     } catch(e) {
45         testFailed("Stereo buffer can not be set.");
46     }
47     
48     // Check buffers with more than two channels.
49     for (var i = 3; i < 10; ++i) {
50         try {
51             var buffer = context.createBuffer(i, 1024, context.sampleRate);
52             source.buffer = buffer;
53             var message = i + " channels buffer can be set.";
54             testPassed(message);
55         } catch(e) {
56             var message = i + " channels buffer can not be set.";
57             testFailed(message);
58         }
59     }
60
61     shouldThrow("context.createBuffer(64, 1024, context.sampleRate)");
62
63     shouldNotBe("source.buffer", "null");
64     shouldNotThrow("source.buffer = null");
65     shouldBeNull("source.buffer");
66         
67     finishJSTest();
68 }
69
70 runTest();
71
72 </script>
73 </body>
74 </html>