| Index: third_party/WebKit/LayoutTests/webaudio/Analyser/automatic-pull-node.html
|
| diff --git a/third_party/WebKit/LayoutTests/webaudio/Analyser/automatic-pull-node.html b/third_party/WebKit/LayoutTests/webaudio/Analyser/automatic-pull-node.html
|
| index 1772d72ddaa1a67b73e6a06650235e1be0417963..734e377f930fb9f775907a1dff83078c595b388d 100644
|
| --- a/third_party/WebKit/LayoutTests/webaudio/Analyser/automatic-pull-node.html
|
| +++ b/third_party/WebKit/LayoutTests/webaudio/Analyser/automatic-pull-node.html
|
| @@ -1,131 +1,134 @@
|
| <!DOCTYPE html>
|
| -
|
| <html>
|
| -<head>
|
| -<script src="../../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>
|
| -// This test verifies that the AudioBasicInspectorNode based nodes work correctly
|
| -
|
| -var audit = Audit.createTaskRunner();
|
| -
|
| -var sampleRate = 44100.0;
|
| -// We carefully arrange the renderLengthInFrames to be a multiple of the
|
| -// AudioNode rendering quantum (AudioNode::ProcessingSizeInFrames) so that
|
| -// AudioSourceNode will not feed tailing zeroes into the context and fail this
|
| -// test.
|
| -var renderLengthInFrames = 256;
|
| -var fftSize = 64;
|
| -
|
| -var audioDataOne = 255; // Audio data 1.0 in Uint8 format will be 255.
|
| -var audioDataZero = 128; // Audio data 0 in Uint8 format will be 128.
|
| -
|
| -var context;
|
| -var constantBuffer;
|
| -var bufferSource;
|
| -var analyser;
|
| -
|
| -function constructCommonGraph() {
|
| - // Create offline audio context.
|
| - context = new OfflineAudioContext(1, renderLengthInFrames, sampleRate);
|
| - constantBuffer = createConstantBuffer(context, renderLengthInFrames, 1);
|
| -
|
| - bufferSource = context.createBufferSource();
|
| - bufferSource.buffer = constantBuffer;
|
| -
|
| - analyser = context.createAnalyser();
|
| - analyser.fftSize = fftSize;
|
| -
|
| - bufferSource.connect(analyser);
|
| -}
|
| -
|
| -function test1Finished(should) {
|
| - var timeDomainData = new Uint8Array(fftSize);
|
| - analyser.getByteTimeDomainData(timeDomainData);
|
| -
|
| - should(timeDomainData[0] >= audioDataOne,
|
| - "RealtimeAnalyserNode got pulled when connected from upstream node but not to downstream node"
|
| - )
|
| - .beTrue();
|
| -}
|
| -
|
| -// To verify the realtimeAnalyser can pull data when there is an upstream node
|
| -// connected to it but it's not connected to a downstream node.
|
| -audit.define("test1", function (task, should) {
|
| - constructCommonGraph();
|
| -
|
| - bufferSource.start(0);
|
| -
|
| - context.startRendering()
|
| - .then(function () {
|
| - test1Finished(should);
|
| - })
|
| - .then(task.done.bind(task));
|
| -});
|
| -
|
| -function test2Finished(should) {
|
| - var timeDomainData = new Uint8Array(fftSize);
|
| - analyser.getByteTimeDomainData(timeDomainData);
|
| -
|
| - should(timeDomainData[0] >= audioDataOne,
|
| - "RealtimeAnalyserNode got pulled when connected from upstream node and to destination node"
|
| - )
|
| - .beTrue();
|
| -}
|
| -
|
| -// To verify the realtimeAnalyser can process normally when there is an upstream
|
| -// node connected to it and it's also connected to a downstream node which
|
| -// ultimately connect to audio destination.
|
| -audit.define("test2", function (task, should) {
|
| - constructCommonGraph();
|
| -
|
| - analyser.connect(context.destination);
|
| -
|
| - bufferSource.start(0);
|
| -
|
| - context.startRendering()
|
| - .then(function () {
|
| - test2Finished(should);
|
| - })
|
| - .then(task.done.bind(task));
|
| -});
|
| -
|
| -function test3Finished(should) {
|
| - var timeDomainData = new Uint8Array(fftSize);
|
| - analyser.getByteTimeDomainData(timeDomainData);
|
| -
|
| - // If realtimeAnalyser hasn't pulled any data, the data in buffer will be 0.
|
| - should(timeDomainData[0] == audioDataZero,
|
| - "RealtimeAnalyserNode didn't get pulled when it should not")
|
| - .beTrue();;
|
| -}
|
| -
|
| -// To verify the realtimeAnalyser will stop pulling if it is connected to a
|
| -// downstream node which is not ultimatly connected to any audio destination.
|
| -audit.define("test3", function (task, should) {
|
| - constructCommonGraph();
|
| -
|
| - var gain = context.createGain();
|
| - analyser.connect(gain);
|
| -
|
| - bufferSource.start(0);
|
| -
|
| - context.startRendering()
|
| - .then(function () {
|
| - test3Finished(should);
|
| - })
|
| - .then(task.done.bind(task));
|
| -});
|
| -
|
| -audit.run();
|
| -
|
| -</script>
|
| -
|
| -</body>
|
| + <head>
|
| + <title>
|
| + automatic-pull-node.html
|
| + </title>
|
| + <script src="../../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">
|
| + // This test verifies that the AudioBasicInspectorNode based nodes work
|
| + // correctly
|
| +
|
| + let audit = Audit.createTaskRunner();
|
| +
|
| + let sampleRate = 44100.0;
|
| + // We carefully arrange the renderLengthInFrames to be a multiple of the
|
| + // AudioNode rendering quantum (AudioNode::ProcessingSizeInFrames) so that
|
| + // AudioSourceNode will not feed tailing zeroes into the context and fail
|
| + // this test.
|
| + let renderLengthInFrames = 256;
|
| + let fftSize = 64;
|
| +
|
| + let audioDataOne = 255; // Audio data 1.0 in Uint8 format will be 255.
|
| + let audioDataZero = 128; // Audio data 0 in Uint8 format will be 128.
|
| +
|
| + let context;
|
| + let constantBuffer;
|
| + let bufferSource;
|
| + let analyser;
|
| +
|
| + function constructCommonGraph() {
|
| + // Create offline audio context.
|
| + context = new OfflineAudioContext(1, renderLengthInFrames, sampleRate);
|
| + constantBuffer = createConstantBuffer(context, renderLengthInFrames, 1);
|
| +
|
| + bufferSource = context.createBufferSource();
|
| + bufferSource.buffer = constantBuffer;
|
| +
|
| + analyser = context.createAnalyser();
|
| + analyser.fftSize = fftSize;
|
| +
|
| + bufferSource.connect(analyser);
|
| + }
|
| +
|
| + function test1Finished(should) {
|
| + let timeDomainData = new Uint8Array(fftSize);
|
| + analyser.getByteTimeDomainData(timeDomainData);
|
| +
|
| + should(
|
| + timeDomainData[0] >= audioDataOne,
|
| + 'RealtimeAnalyserNode got pulled when connected from upstream node but not to downstream node')
|
| + .beTrue();
|
| + }
|
| +
|
| + // To verify the realtimeAnalyser can pull data when there is an upstream
|
| + // node connected to it but it's not connected to a downstream node.
|
| + audit.define('test1', function(task, should) {
|
| + constructCommonGraph();
|
| +
|
| + bufferSource.start(0);
|
| +
|
| + context.startRendering()
|
| + .then(function() {
|
| + test1Finished(should);
|
| + })
|
| + .then(task.done.bind(task));
|
| + });
|
| +
|
| + function test2Finished(should) {
|
| + let timeDomainData = new Uint8Array(fftSize);
|
| + analyser.getByteTimeDomainData(timeDomainData);
|
| +
|
| + should(
|
| + timeDomainData[0] >= audioDataOne,
|
| + 'RealtimeAnalyserNode got pulled when connected from upstream node and to destination node')
|
| + .beTrue();
|
| + }
|
| +
|
| + // To verify the realtimeAnalyser can process normally when there is an
|
| + // upstream node connected to it and it's also connected to a downstream
|
| + // node which ultimately connect to audio destination.
|
| + audit.define('test2', function(task, should) {
|
| + constructCommonGraph();
|
| +
|
| + analyser.connect(context.destination);
|
| +
|
| + bufferSource.start(0);
|
| +
|
| + context.startRendering()
|
| + .then(function() {
|
| + test2Finished(should);
|
| + })
|
| + .then(task.done.bind(task));
|
| + });
|
| +
|
| + function test3Finished(should) {
|
| + let timeDomainData = new Uint8Array(fftSize);
|
| + analyser.getByteTimeDomainData(timeDomainData);
|
| +
|
| + // If realtimeAnalyser hasn't pulled any data, the data in buffer will
|
| + // be 0.
|
| + should(
|
| + timeDomainData[0] == audioDataZero,
|
| + 'RealtimeAnalyserNode didn\'t get pulled when it should not')
|
| + .beTrue();
|
| + ;
|
| + }
|
| +
|
| + // To verify the realtimeAnalyser will stop pulling if it is connected to
|
| + // a downstream node which is not ultimatly connected to any audio
|
| + // destination.
|
| + audit.define('test3', function(task, should) {
|
| + constructCommonGraph();
|
| +
|
| + let gain = context.createGain();
|
| + analyser.connect(gain);
|
| +
|
| + bufferSource.start(0);
|
| +
|
| + context.startRendering()
|
| + .then(function() {
|
| + test3Finished(should);
|
| + })
|
| + .then(task.done.bind(task));
|
| + });
|
| +
|
| + audit.run();
|
| + </script>
|
| + </body>
|
| </html>
|
|
|