Update web-platform-tests to revision 632a3f59238036b6e24b28d47218ba9986ff4c62

This commit is contained in:
WPT Sync Bot 2018-09-12 21:47:12 -04:00
parent cd02ca6c19
commit fb838278a5
430 changed files with 15017 additions and 508 deletions

View file

@ -0,0 +1,82 @@
<!DOCTYPE html>
<html>
<head>
<title>
Test the construction of AudioWorkletNode with real-time context
</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/webaudio/resources/audit.js"></script>
</head>
<body>
<script id="layout-test-code">
const audit = Audit.createTaskRunner();
const context = new AudioContext();
(async function () {
await context.audioWorklet.addModule(
'processors/channel-count-processor.js');
// Test if the output channe count dynamically changes if the input
// and output is 1.
audit.define(
{label: 'Dynamically change the channel count to if unspecified.'},
(task, should) => {
// Use arbitrary parameters for the test.
const buffer = new AudioBuffer({
numberOfChannels: 17,
length: 1,
sampleRate: context.sampleRate,
});
const source = new AudioBufferSourceNode(context);
source.buffer = buffer;
const node = new AudioWorkletNode(context, 'channel-count', {
numberOfInputs: 1,
numberOfOutputs: 1,
});
node.port.onmessage = (message) => {
const expected = message.data;
should(expected.outputChannel,
'The expected output channel count').beEqualTo(17);
task.done();
};
// We need to make an actual connection becasue the channel count
// change happen when the rendering starts. It is to test if the
// channel count adapts to the upstream node correctly.
source.connect(node).connect(context.destination);
source.start();
});
// Test if outputChannelCount is honored as expected even if the input
// and output is 1.
audit.define(
{label: 'Givien outputChannelCount must be honored.'},
(task, should) => {
const node = new AudioWorkletNode(
context, 'channel-count', {
numberOfInputs: 1,
numberOfOutputs: 1,
outputChannelCount: [2],
});
node.port.onmessage = (message) => {
const expected = message.data;
should(expected.outputChannel,
'The expected output channel count').beEqualTo(2);
task.done();
};
// We need to make an actual connection becasue the channel count
// change might happen when the rendering starts. It is to test
// if the specified channel count is kept correctly.
node.connect(context.destination);
});
audit.run();
})();
</script>
</body>
</html>

View file

@ -0,0 +1,19 @@
/**
* @class ChannelCountProcessor
* @extends AudioWorkletProcessor
*/
class ChannelCountProcessor extends AudioWorkletProcessor {
constructor(options) {
super(options);
}
process(inputs, outputs) {
this.port.postMessage({
inputChannel: inputs[0].length,
outputChannel: outputs[0].length
});
return false;
}
}
registerProcessor('channel-count', ChannelCountProcessor);