| <!DOCTYPE html> |
| <html> |
| <head> |
| <title> |
| Test AudioScheduledSourceNode |
| </title> |
| <script src="../imported/w3c/web-platform-tests/resources/testharness.js"></script> |
| <script src="../resources/testharnessreport.js"></script> |
| <script src="resources/audit.js"></script> |
| </head> |
| <body> |
| <script id="layout-test-code"> |
| let context = new AudioContext(); |
| |
| let audit = Audit.createTaskRunner(); |
| |
| audit.define( |
| { |
| label: 'construction', |
| description: 'Construct AudioScheduledSourceNode' |
| }, |
| function(task, should) { |
| should(function() { |
| return new AudioScheduledSourceNode(context); |
| }, 'new AudioScheduledSourceNode(c)').throw(TypeError); |
| |
| task.done(); |
| }); |
| |
| audit.define( |
| { |
| label: 'properties', |
| description: 'Test properties on derived nodes' |
| }, |
| function(task, should) { |
| let expectedProperties = ['start', 'stop', 'onended']; |
| |
| // AudioScheduledSourceNode must have these properties. |
| for (p in expectedProperties) { |
| should( |
| AudioScheduledSourceNode.prototype, |
| 'AudioScheduledSourceNode.prototype') |
| .haveOwnProperty(expectedProperties[p]); |
| } |
| |
| // ConstantSource and Oscillator must not |
| let nodes = ['ConstantSourceNode', 'OscillatorNode']; |
| for (n in nodes) { |
| for (p in expectedProperties) { |
| should(window[nodes[n]].prototype, nodes[n] + '.prototype') |
| .notHaveOwnProperty(expectedProperties[p]); |
| } |
| } |
| |
| // AudioBufferSourceNode has it's own start method, but should not |
| // have the others. |
| for (p in expectedProperties) { |
| if (expectedProperties[p] !== 'start') { |
| should( |
| AudioBufferSourceNode.prototype, |
| 'AudioBufferSourceNode.prototype') |
| .notHaveOwnProperty(expectedProperties[p]); |
| } |
| } |
| |
| should( |
| AudioBufferSourceNode.prototype, |
| 'AudioBufferSourceNode.prototype') |
| .haveOwnProperty('start'); |
| |
| task.done(); |
| }); |
| |
| audit.run(); |
| </script> |
| </body> |
| </html> |