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>
11 <div id="description"></div>
12 <div id="console"></div>
15 description("Tests that AudioBufferSourceNode validates AudioBuffer in .buffer attribute setter.");
21 if (window.testRunner) {
22 testRunner.dumpAsText();
23 testRunner.waitUntilDone();
26 window.jsTestIsAsync = true;
28 context = new AudioContext();
29 source = context.createBufferSource();
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\'."');
35 // Check that mono buffer can be set.
37 var monoBuffer = context.createBuffer(1, 1024, context.sampleRate);
38 source.buffer = monoBuffer;
39 testPassed("Mono buffer can be set.");
41 testFailed("Mono buffer can not be set.");
44 // Check that stereo buffer can be set.
46 var stereoBuffer = context.createBuffer(2, 1024, context.sampleRate);
47 source.buffer = stereoBuffer;
48 testPassed("Stereo buffer can be set.");
50 testFailed("Stereo buffer can not be set.");
53 // Check buffers with more than two channels.
54 for (var i = 3; i < 10; ++i) {
56 var buffer = context.createBuffer(i, 1024, context.sampleRate);
57 source.buffer = buffer;
58 var message = i + " channels buffer can be set.";
61 var message = i + " channels buffer can not be set.";