Index: third_party/WebKit/LayoutTests/webaudio/AudioContext/audiocontext-suspend-resume.html |
diff --git a/third_party/WebKit/LayoutTests/webaudio/AudioContext/audiocontext-suspend-resume.html b/third_party/WebKit/LayoutTests/webaudio/AudioContext/audiocontext-suspend-resume.html |
index d2e70a4451cdbdb3656c9c09a502e2c34f1909ae..ee7d64a6324220162ebfef7386d119102423e733 100644 |
--- a/third_party/WebKit/LayoutTests/webaudio/AudioContext/audiocontext-suspend-resume.html |
+++ b/third_party/WebKit/LayoutTests/webaudio/AudioContext/audiocontext-suspend-resume.html |
@@ -1,143 +1,145 @@ |
-<!doctype html> |
+<!DOCTYPE html> |
<html> |
-<head> |
- <title>Test AudioContext.suspend() and AudioContext.resume()</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> |
- let offlineContext; |
- let osc; |
- let p1; |
- let p2; |
- let p3; |
- |
- let sampleRate = 44100; |
- let durationInSeconds = 1; |
- |
- let audit = Audit.createTaskRunner(); |
- |
- // Task: test suspend(). |
- audit.define({ |
- label: 'test-suspend', |
- description: "Test suspend() for offline context" |
- }, function (task, should) { |
- // Test suspend/resume. Ideally this test is best with a online |
- // AudioContext, but content shell doesn't really have a working online |
- // AudioContext. Hence, use an OfflineAudioContext. Not all possible |
- // scenarios can be easily checked with an offline context instead of an |
- // online context. |
- |
- // Create an audio context with an oscillator. |
- should(() => { |
- offlineContext = new OfflineAudioContext(1, durationInSeconds * |
- sampleRate, sampleRate); |
+ <head> |
+ <title> |
+ Test AudioContext.suspend() and AudioContext.resume() |
+ </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"> |
+ let offlineContext; |
+ let osc; |
+ let p1; |
+ let p2; |
+ let p3; |
+ |
+ let sampleRate = 44100; |
+ let durationInSeconds = 1; |
+ |
+ let audit = Audit.createTaskRunner(); |
+ |
+ // Task: test suspend(). |
+ audit.define( |
+ { |
+ label: 'test-suspend', |
+ description: 'Test suspend() for offline context' |
}, |
- "offlineContext = new OfflineAudioContext(1, " + ( |
- durationInSeconds * |
- sampleRate) + ", " + sampleRate + ")" |
- ) |
- .notThrow(); |
- osc = offlineContext.createOscillator(); |
- osc.connect(offlineContext.destination); |
- |
- // Verify the state. |
- should(offlineContext.state, "offlineContext.state") |
- .beEqualTo("suspended"); |
- |
- // Multiple calls to suspend() should not be a problem. But we can't test |
- // that on an offline context. Thus, check that suspend() on an |
- // OfflineAudioContext rejects the promise. |
- should(() => p1 = offlineContext.suspend(), |
- "p1 = offlineContext.suspend()") |
- .notThrow(); |
- should(p1 instanceof Promise, "p1 instanceof Promise") |
- .beTrue(); |
- |
- should(p1, "p1") |
- .beRejected() |
- .then(task.done.bind(task)); |
- }); |
- |
- |
- // Task: test resume(). |
- audit.define({ |
- label: 'test-resume', |
- description: "Test resume() for offline context" |
- }, function (task, should) { |
- // Multiple calls to resume should not be a problem. But we can't test |
- // that on an offline context. Thus, check that resume() on an |
- // OfflineAudioContext rejects the promise. |
- should(() => p2 = offlineContext.resume(), |
- "p2 = offlineContext.resume()") |
- .notThrow(); |
- should(p2 instanceof Promise, "p2 instanceof Promise") |
- .beTrue(); |
- |
- // Resume doesn't actually resume an offline context |
- should(offlineContext.state, "After resume, offlineContext.state") |
- .beEqualTo("suspended"); |
- should(p2, "p2") |
- .beRejected() |
- .then(task.done.bind(task)); |
- }); |
- |
- // Task: test the state after context closed. |
- audit.define({ |
- label: 'test-after-close', |
- description: "Test state after context closed" |
- }, function (task, should) { |
- // Render the offline context. |
- osc.start(); |
- |
- // Test suspend/resume in tested promise pattern. We don't care about the |
- // actual result of the offline rendering. |
- should(() => p3 = offlineContext.startRendering(), |
- "p3 = offlineContext.startRendering()") |
- .notThrow(); |
- |
- p3.then(() => { |
- should(offlineContext.state, "After close, offlineContext.state") |
- .beEqualTo("closed"); |
- |
- // suspend() should be rejected on a closed context. |
- should(offlineContext.suspend(), "offlineContext.suspend()") |
- .beRejected() |
- .then(() => { |
- // resume() should be rejected on closed context. |
- should(offlineContext.resume(), |
- "offlineContext.resume()") |
- .beRejected() |
- .then(task.done.bind(task)); |
- }) |
- }); |
- }); |
- |
- audit.define({ |
- label: 'resume-running-context', |
- description: 'Test resuming a running context' |
- }, (task, should) => { |
- let context; |
- should(() => context = new AudioContext(), |
- 'Create online context') |
- .notThrow(); |
- |
- should(context.state, 'context.state') |
- .beEqualTo('running'); |
- should(context.resume(), 'context.resume') |
- .beResolved() |
- .then(() => { |
- should(context.state, 'context.state after resume') |
- .beEqualTo('running'); |
- }) |
- .then(() => task.done()); |
- }); |
- |
- audit.run(); |
- </script> |
-</body> |
+ function(task, should) { |
+ // Test suspend/resume. Ideally this test is best with a online |
+ // AudioContext, but content shell doesn't really have a working |
+ // online AudioContext. Hence, use an OfflineAudioContext. Not all |
+ // possible scenarios can be easily checked with an offline context |
+ // instead of an online context. |
+ |
+ // Create an audio context with an oscillator. |
+ should( |
+ () => { |
+ offlineContext = new OfflineAudioContext( |
+ 1, durationInSeconds * sampleRate, sampleRate); |
+ }, |
+ 'offlineContext = new OfflineAudioContext(1, ' + |
+ (durationInSeconds * sampleRate) + ', ' + sampleRate + ')') |
+ .notThrow(); |
+ osc = offlineContext.createOscillator(); |
+ osc.connect(offlineContext.destination); |
+ |
+ // Verify the state. |
+ should(offlineContext.state, 'offlineContext.state') |
+ .beEqualTo('suspended'); |
+ |
+ // Multiple calls to suspend() should not be a problem. But we can't |
+ // test that on an offline context. Thus, check that suspend() on |
+ // an OfflineAudioContext rejects the promise. |
+ should( |
+ () => p1 = offlineContext.suspend(), |
+ 'p1 = offlineContext.suspend()') |
+ .notThrow(); |
+ should(p1 instanceof Promise, 'p1 instanceof Promise').beTrue(); |
+ |
+ should(p1, 'p1').beRejected().then(task.done.bind(task)); |
+ }); |
+ |
+ |
+ // Task: test resume(). |
+ audit.define( |
+ { |
+ label: 'test-resume', |
+ description: 'Test resume() for offline context' |
+ }, |
+ function(task, should) { |
+ // Multiple calls to resume should not be a problem. But we can't |
+ // test that on an offline context. Thus, check that resume() on an |
+ // OfflineAudioContext rejects the promise. |
+ should( |
+ () => p2 = offlineContext.resume(), |
+ 'p2 = offlineContext.resume()') |
+ .notThrow(); |
+ should(p2 instanceof Promise, 'p2 instanceof Promise').beTrue(); |
+ |
+ // Resume doesn't actually resume an offline context |
+ should(offlineContext.state, 'After resume, offlineContext.state') |
+ .beEqualTo('suspended'); |
+ should(p2, 'p2').beRejected().then(task.done.bind(task)); |
+ }); |
+ |
+ // Task: test the state after context closed. |
+ audit.define( |
+ { |
+ label: 'test-after-close', |
+ description: 'Test state after context closed' |
+ }, |
+ function(task, should) { |
+ // Render the offline context. |
+ osc.start(); |
+ |
+ // Test suspend/resume in tested promise pattern. We don't care |
+ // about the actual result of the offline rendering. |
+ should( |
+ () => p3 = offlineContext.startRendering(), |
+ 'p3 = offlineContext.startRendering()') |
+ .notThrow(); |
+ |
+ p3.then(() => { |
+ should(offlineContext.state, 'After close, offlineContext.state') |
+ .beEqualTo('closed'); |
+ |
+ // suspend() should be rejected on a closed context. |
+ should(offlineContext.suspend(), 'offlineContext.suspend()') |
+ .beRejected() |
+ .then(() => { |
+ // resume() should be rejected on closed context. |
+ should(offlineContext.resume(), 'offlineContext.resume()') |
+ .beRejected() |
+ .then(task.done.bind(task)); |
+ }) |
+ }); |
+ }); |
+ |
+ audit.define( |
+ { |
+ label: 'resume-running-context', |
+ description: 'Test resuming a running context' |
+ }, |
+ (task, should) => { |
+ let context; |
+ should(() => context = new AudioContext(), 'Create online context') |
+ .notThrow(); |
+ |
+ should(context.state, 'context.state').beEqualTo('running'); |
+ should(context.resume(), 'context.resume') |
+ .beResolved() |
+ .then(() => { |
+ should(context.state, 'context.state after resume') |
+ .beEqualTo('running'); |
+ }) |
+ .then(() => task.done()); |
+ }); |
+ |
+ audit.run(); |
+ </script> |
+ </body> |
</html> |