| <!DOCTYPE html> |
| <html> |
| <head> |
| <title> |
| mediastreamaudiosourcenode.html |
| </title> |
| <script src="../../imported/w3c/web-platform-tests/resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <script src="../resources/audit-util.js"></script> |
| <script src="../resources/audit.js"></script> |
| </head> |
| <body> |
| <script id="layout-test-code"> |
| let audit = Audit.createTaskRunner(); |
| |
| audit.define( |
| { |
| label: 'test', |
| description: 'Basic tests for MediaStreamAudioSourceNode API' |
| }, |
| (task, should) => { |
| should( |
| () => {navigator.webkitGetUserMedia( |
| {audio: true}, |
| (stream) => { |
| gotStream(stream, should); |
| task.done(); |
| }, |
| () => { |
| should(false, 'Stream generation') |
| .message('succeeded', 'failed'); |
| task.done(); |
| })}, |
| 'getUserMedia()') |
| .notThrow(); |
| }); |
| |
| audit.run(); |
| |
| function gotStream(stream, should) { |
| should(true, '{audio:true} generated stream').message('correctly', ''); |
| |
| let context = new AudioContext(); |
| |
| // Create an AudioNode from the stream. |
| let mediaStreamSource = context.createMediaStreamSource(stream); |
| |
| // Check number of inputs and outputs. |
| should( |
| mediaStreamSource.numberOfInputs, |
| 'mediaStreamSource.numberOfInputs') |
| .beEqualTo(0); |
| should( |
| mediaStreamSource.numberOfOutputs, |
| 'mediaStreamSource.numberOfOutputs') |
| .beEqualTo(1); |
| |
| // Verify the same object is returned |
| let element = mediaStreamSource.mediaStream; |
| should( |
| element instanceof MediaStream, |
| 'mediaStreamSource.mediaStream instanceof MediaStream') |
| .beTrue(); |
| should( |
| mediaStreamSource.mediaStream === element, |
| 'mediaStreamSource.mediaStream is same object') |
| .beTrue(); |
| |
| // Try calling connect() method with illegal values. |
| should( |
| () => mediaStreamSource.connect(0, 0, 0), |
| 'mediaStreamSource.connect(0, 0, 0)') |
| .throw(); |
| should( |
| () => mediaStreamSource.connect(context.destination, 5, 0), |
| 'mediaStreamSource.connect(context.destination, 5, 0)') |
| .throw(); |
| should( |
| () => mediaStreamSource.connect(context.destination, 0, 5), |
| 'mediaStreamSource.connect(context.destination, 0, 5)') |
| .throw(); |
| |
| // Try calling connect() with proper values. |
| should( |
| () => mediaStreamSource.connect(context.destination, 0, 0), |
| 'mediaStreamSource.connect(context.destination, 0, 0)') |
| .notThrow(); |
| } |
| </script> |
| </body> |
| </html> |