Index: third_party/WebKit/LayoutTests/webaudio/audiochannelmerger-disconnect.html |
diff --git a/third_party/WebKit/LayoutTests/webaudio/audiochannelmerger-disconnect.html b/third_party/WebKit/LayoutTests/webaudio/audiochannelmerger-disconnect.html |
index c100b8f4d629e8f188ba8484cd97c2aba019e9a7..c9724cb8d0246e5508414de4332ba946fa398062 100644 |
--- a/third_party/WebKit/LayoutTests/webaudio/audiochannelmerger-disconnect.html |
+++ b/third_party/WebKit/LayoutTests/webaudio/audiochannelmerger-disconnect.html |
@@ -12,29 +12,24 @@ |
description('Test ChannelMergerNode behavior on dynamic input change.'); |
window.jsTestIsAsync = true; |
- var sampleRate = 44100; |
var numberOfChannels = 2; |
- |
- // The test needs the long render length (20 seconds) to capture the |
- // disconnection which happens after starting the rendering. |
- var renderLength = sampleRate * 20; |
+ var sampleRate = 44100; |
+ var renderLength = 2 * sampleRate; |
var audit = Audit.createTaskRunner(); |
// Task: Check if the merger outputs a silent channel when an input is |
// disconnected. |
audit.defineTask('silent-disconnect', function (done) { |
- var context = new OfflineAudioContext( |
- numberOfChannels, renderLength, sampleRate |
- ); |
+ var context = new OfflineAudioContext(numberOfChannels, renderLength, sampleRate); |
var merger = context.createChannelMerger(); |
var source1 = context.createBufferSource(); |
var source2 = context.createBufferSource(); |
- // Create and assign a mono testing buffer. |
- var bufferDCOffset = createTestingAudioBuffer(context, 1, renderLength); |
- source1.buffer = bufferDCOffset; |
- source2.buffer = bufferDCOffset; |
+ // Create and assign a constant buffer. |
+ var bufferDCOffset = createConstantBuffer(context, 1, 1); |
+ source1.buffer = source2.buffer = bufferDCOffset; |
+ source1.loop = source2.loop = true; |
// Connect the output of source into the 4th input of merger. The merger |
// should produce 6 channel output. |
@@ -43,23 +38,20 @@ |
merger.connect(context.destination); |
source1.start(); |
source2.start(); |
- |
- // When the rendering begins, disconnect |source2| as soon as possible. |
- context.onstatechange = function () { |
- if (context.state === 'running') |
- source2.disconnect(); |
- }; |
+ |
+ // Schedule the disconnection of |source2| at 1 second. |
Raymond Toy
2015/12/01 22:14:37
We could make this test much faster if we didn't r
hongchan
2015/12/02 18:58:31
I thought you'd ask! I will reduce the render leng
Raymond Toy
2015/12/02 19:37:50
Seems to me that you did 1/2 sec for the tests. T
|
+ context.suspend(1.0).then(function () { |
+ source2.disconnect(); |
+ context.resume(); |
+ }); |
context.startRendering().then(function (buffer) { |
- |
// The entire first channel of the output should be 1. |
Should('Channel #0', buffer.getChannelData(0)).beConstantValueOf(1); |
// The second channel should contain 1, and 0 after the disconnection. |
Raymond Toy
2015/12/01 22:14:37
Now that we know exactly when the disconnect happe
hongchan
2015/12/02 18:58:31
Done.
|
Should('Channel #1', buffer.getChannelData(1)).containValues([1, 0]); |
- |
- done(); |
- }); |
+ }).then(done); |
}); |
audit.defineTask('finish', function (done) { |
@@ -67,10 +59,7 @@ |
done(); |
}); |
- audit.runTasks( |
- 'silent-disconnect', |
- 'finish' |
- ); |
+ audit.runTasks(); |
successfullyParsed = true; |
</script> |