Index: third_party/WebKit/LayoutTests/webaudio/AudioContext/audiocontextoptions.html |
diff --git a/third_party/WebKit/LayoutTests/webaudio/AudioContext/audiocontextoptions.html b/third_party/WebKit/LayoutTests/webaudio/AudioContext/audiocontextoptions.html |
index 24e279834daf95d506564564215a8019cca906d4..492beee76c2f21405f9d0c1c584a82105a7424bf 100644 |
--- a/third_party/WebKit/LayoutTests/webaudio/AudioContext/audiocontextoptions.html |
+++ b/third_party/WebKit/LayoutTests/webaudio/AudioContext/audiocontextoptions.html |
@@ -1,139 +1,157 @@ |
-<!doctype html> |
+<!DOCTYPE html> |
<html> |
-<head> |
- <title>Test AudioContextOptions</title> |
- <script src="../../resources/testharness.js"></script> |
- <script src="../../resources/testharnessreport.js"></script> |
- <script src="../resources/audit.js"></script> |
-</head> |
- |
-<body> |
- <script> |
- let context; |
- let defaultLatency; |
- let interactiveLatency; |
- let balancedLatency; |
- let playbackLatency; |
- |
- let audit = Audit.createTaskRunner(); |
- |
- audit.define( |
- { |
- label : "test-audiocontextoptions-latencyHint-basic", |
- description : "Test creating contexts with basic latencyHint types." |
- }, |
- function(task, should) { |
- let closingPromises = []; |
- |
- // Verify that an AudioContext can be created with default options. |
- should(function(){context = new AudioContext()}, |
- "context = new AudioContext()") |
- .notThrow(); |
- |
- defaultLatency = context.baseLatency; |
- should(defaultLatency, "default baseLatency").beGreaterThan(0); |
- |
- // Verify that an AudioContext can be created with the expected |
- // latency types. |
- should(function(){context = new AudioContext( |
- {'latencyHint' : 'interactive'})}, |
- "context = new AudioContext({'latencyHint': 'interactive'})") |
- .notThrow(); |
- |
- interactiveLatency = context.baseLatency; |
- should(interactiveLatency, "interactive baseLatency") |
- .beEqualTo(defaultLatency); |
- closingPromises.push(context.close()); |
- |
- should(function(){context = |
- new AudioContext({'latencyHint' : 'balanced'})}, |
- "context = new AudioContext({'latencyHint': 'balanced'})") |
- .notThrow(); |
- |
- balancedLatency = context.baseLatency; |
- should(balancedLatency, "balanced baseLatency") |
- .beGreaterThanOrEqualTo(interactiveLatency); |
- closingPromises.push(context.close()); |
- |
- should(function(){context = |
- new AudioContext({'latencyHint' : 'playback'})}, |
- "context = new AudioContext({'latencyHint': 'playback'})") |
- .notThrow(); |
- |
- playbackLatency = context.baseLatency; |
- should(playbackLatency, "playback baseLatency") |
- .beGreaterThanOrEqualTo(balancedLatency); |
- closingPromises.push(context.close()); |
- |
- Promise.all(closingPromises).then(function() { task.done(); }); |
- }); |
- |
- audit.define( |
- { |
- label : "test-audiocontextoptions-latencyHint-double", |
- description : |
- "Test creating contexts with explicit latencyHint values." |
- }, |
- function(task, should) { |
- var closingPromises = []; |
- |
- // Verify too small exact latency clamped to 'interactive' |
- should(function(){context = new AudioContext( |
- {'latencyHint' : interactiveLatency / 2})}, |
- "context = new AudioContext({'latencyHint': " + |
- "interactiveLatency/2})") |
- .notThrow(); |
- should(context.baseLatency, "double-constructor baseLatency small") |
- .beEqualTo(interactiveLatency); |
- closingPromises.push(context.close()); |
- |
- // Verify that exact latency in range works as expected |
- var validLatency = (interactiveLatency + playbackLatency) / 2; |
- should(function(){context = new AudioContext( |
- {'latencyHint' : validLatency})}, |
- "context = new AudioContext({'latencyHint': validLatency})") |
- .notThrow(); |
- should(context.baseLatency, |
- "double-constructor baseLatency inrange 1") |
- .beGreaterThanOrEqualTo(interactiveLatency); |
- should(context.baseLatency, |
- "double-constructor baseLatency inrange 2") |
- .beLessThanOrEqualTo(playbackLatency); |
- closingPromises.push(context.close()); |
- |
- // Verify too big exact latency clamped to some value |
- var context1; |
- var context2; |
- should( |
- function() { |
- context1 = |
- new AudioContext({'latencyHint' : playbackLatency * 10}); |
- context2 = |
- new AudioContext({'latencyHint' : playbackLatency * 20}); |
- }, |
- "creating two high latency contexts") |
- .notThrow(); |
- should(context1.baseLatency, "high latency context baseLatency") |
- .beEqualTo(context2.baseLatency); |
- closingPromises.push(context1.close()); |
- closingPromises.push(context2.close()); |
- |
- // Verify that invalid latencyHint values are rejected. |
- should( |
- function(){context = new AudioContext({'latencyHint' : 'foo'})}, |
- "context = new AudioContext({'latencyHint': 'foo'})") |
- .throw("TypeError"); |
- |
- // Verify that no extra options can be passed into the |
- // AudioContextOptions. |
- should(function(){context = new AudioContext('latencyHint')}, |
- "context = new AudioContext('latencyHint')") |
- .throw("TypeError"); |
- |
- Promise.all(closingPromises).then(function() { task.done(); }); |
- }); |
- |
- audit.run(); |
- </script> |
-</body> |
+ <head> |
+ <title> |
+ Test AudioContextOptions |
+ </title> |
+ <script src="../../resources/testharness.js"></script> |
+ <script src="../../resources/testharnessreport.js"></script> |
+ <script src="../resources/audit.js"></script> |
+ </head> |
+ <body> |
+ <script id="layout-test-code"> |
+ let context; |
+ let defaultLatency; |
+ let interactiveLatency; |
+ let balancedLatency; |
+ let playbackLatency; |
+ |
+ let audit = Audit.createTaskRunner(); |
+ |
+ audit.define( |
+ { |
+ label: 'test-audiocontextoptions-latencyHint-basic', |
+ description: 'Test creating contexts with basic latencyHint types.' |
+ }, |
+ function(task, should) { |
+ let closingPromises = []; |
+ |
+ // Verify that an AudioContext can be created with default options. |
+ should(function() { |
+ context = new AudioContext() |
+ }, 'context = new AudioContext()').notThrow(); |
+ |
+ defaultLatency = context.baseLatency; |
+ should(defaultLatency, 'default baseLatency').beGreaterThan(0); |
+ |
+ // Verify that an AudioContext can be created with the expected |
+ // latency types. |
+ should( |
+ function() { |
+ context = new AudioContext({'latencyHint': 'interactive'}) |
+ }, |
+ 'context = new AudioContext({\'latencyHint\': \'interactive\'})') |
+ .notThrow(); |
+ |
+ interactiveLatency = context.baseLatency; |
+ should(interactiveLatency, 'interactive baseLatency') |
+ .beEqualTo(defaultLatency); |
+ closingPromises.push(context.close()); |
+ |
+ should( |
+ function() { |
+ context = new AudioContext({'latencyHint': 'balanced'}) |
+ }, |
+ 'context = new AudioContext({\'latencyHint\': \'balanced\'})') |
+ .notThrow(); |
+ |
+ balancedLatency = context.baseLatency; |
+ should(balancedLatency, 'balanced baseLatency') |
+ .beGreaterThanOrEqualTo(interactiveLatency); |
+ closingPromises.push(context.close()); |
+ |
+ should( |
+ function() { |
+ context = new AudioContext({'latencyHint': 'playback'}) |
+ }, |
+ 'context = new AudioContext({\'latencyHint\': \'playback\'})') |
+ .notThrow(); |
+ |
+ playbackLatency = context.baseLatency; |
+ should(playbackLatency, 'playback baseLatency') |
+ .beGreaterThanOrEqualTo(balancedLatency); |
+ closingPromises.push(context.close()); |
+ |
+ Promise.all(closingPromises).then(function() { |
+ task.done(); |
+ }); |
+ }); |
+ |
+ audit.define( |
+ { |
+ label: 'test-audiocontextoptions-latencyHint-double', |
+ description: |
+ 'Test creating contexts with explicit latencyHint values.' |
+ }, |
+ function(task, should) { |
+ let closingPromises = []; |
+ |
+ // Verify too small exact latency clamped to 'interactive' |
+ should( |
+ function() { |
+ context = |
+ new AudioContext({'latencyHint': interactiveLatency / 2}) |
+ }, |
+ 'context = new AudioContext({\'latencyHint\': ' + |
+ 'interactiveLatency/2})') |
+ .notThrow(); |
+ should(context.baseLatency, 'double-constructor baseLatency small') |
+ .beEqualTo(interactiveLatency); |
+ closingPromises.push(context.close()); |
+ |
+ // Verify that exact latency in range works as expected |
+ let validLatency = (interactiveLatency + playbackLatency) / 2; |
+ should( |
+ function() { |
+ context = new AudioContext({'latencyHint': validLatency}) |
+ }, |
+ 'context = new AudioContext({\'latencyHint\': validLatency})') |
+ .notThrow(); |
+ should( |
+ context.baseLatency, 'double-constructor baseLatency inrange 1') |
+ .beGreaterThanOrEqualTo(interactiveLatency); |
+ should( |
+ context.baseLatency, 'double-constructor baseLatency inrange 2') |
+ .beLessThanOrEqualTo(playbackLatency); |
+ closingPromises.push(context.close()); |
+ |
+ // Verify too big exact latency clamped to some value |
+ let context1; |
+ let context2; |
+ should(function() { |
+ context1 = |
+ new AudioContext({'latencyHint': playbackLatency * 10}); |
+ context2 = |
+ new AudioContext({'latencyHint': playbackLatency * 20}); |
+ }, 'creating two high latency contexts').notThrow(); |
+ should(context1.baseLatency, 'high latency context baseLatency') |
+ .beEqualTo(context2.baseLatency); |
+ closingPromises.push(context1.close()); |
+ closingPromises.push(context2.close()); |
+ |
+ // Verify that invalid latencyHint values are rejected. |
+ should( |
+ function() { |
+ context = new AudioContext({'latencyHint': 'foo'}) |
+ }, |
+ 'context = new AudioContext({\'latencyHint\': \'foo\'})') |
+ .throw('TypeError'); |
+ |
+ // Verify that no extra options can be passed into the |
+ // AudioContextOptions. |
+ should( |
+ function() { |
+ context = new AudioContext('latencyHint') |
+ }, |
+ 'context = new AudioContext(\'latencyHint\')') |
+ .throw('TypeError'); |
+ |
+ Promise.all(closingPromises).then(function() { |
+ task.done(); |
+ }); |
+ }); |
+ |
+ audit.run(); |
+ </script> |
+ </body> |
</html> |