Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / 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 <script src="resources/compatibility.js"></script>
8 </head>
9
10 <body>
11 <div id="description"></div>
12 <div id="console"></div>
13
14 <script>
15 description("Tests that AudioBufferSourceNode validates AudioBuffer in .buffer attribute setter.");
16
17 var context;
18 var source;
19
20 function runTest() {
21     if (window.testRunner) {
22         testRunner.dumpAsText();
23         testRunner.waitUntilDone();
24     }
25     
26     window.jsTestIsAsync = true;
27     
28     context = new AudioContext();
29     source = context.createBufferSource();
30
31     // Make sure we can't set to something which isn't an AudioBuffer.
32     shouldThrow("source.buffer = 57", '"TypeError: Failed to set the \'buffer\' property on \'AudioBufferSourceNode\': The provided value is not of type \'AudioBuffer\'."');
33     shouldThrow("source.buffer = null", '"TypeError: Failed to set the \'buffer\' property on \'AudioBufferSourceNode\': The provided value is not of type \'AudioBuffer\'."');
34
35     // Check that mono buffer can be set.
36     try {
37         var monoBuffer = context.createBuffer(1, 1024, context.sampleRate);
38         source.buffer = monoBuffer;
39         testPassed("Mono buffer can be set.");
40     } catch(e) {
41         testFailed("Mono buffer can not be set.");
42     }
43
44     // Check that stereo buffer can be set.
45     try {
46         var stereoBuffer = context.createBuffer(2, 1024, context.sampleRate);
47         source.buffer = stereoBuffer;
48         testPassed("Stereo buffer can be set.");
49     } catch(e) {
50         testFailed("Stereo buffer can not be set.");
51     }
52     
53     // Check buffers with more than two channels.
54     for (var i = 3; i < 10; ++i) {
55         try {
56             var buffer = context.createBuffer(i, 1024, context.sampleRate);
57             source.buffer = buffer;
58             var message = i + " channels buffer can be set.";
59             testPassed(message);
60         } catch(e) {
61             var message = i + " channels buffer can not be set.";
62             testFailed(message);
63         }
64     }
65         
66     finishJSTest();
67 }
68
69 runTest();
70
71 </script>
72
73 </body>
74 </html>