Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Side by Side Diff: third_party/WebKit/LayoutTests/webaudio/audiocontextoptions.html

Issue 2840553003: Move audiocontextoptions.html to AudioContext (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/WebKit/LayoutTests/webaudio/AudioContext/audiocontextoptions.html ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 <!doctype html>
2 <html>
3 <head>
4 <title>Test AudioContextOptions</title>
5 <script src="../resources/testharness.js"></script>
6 <script src="../resources/testharnessreport.js"></script>
7 <script src="resources/audit.js"></script>
8 </head>
9
10 <body>
11 <script>
12 let context;
13 let defaultLatency;
14 let interactiveLatency;
15 let balancedLatency;
16 let playbackLatency;
17
18 let audit = Audit.createTaskRunner();
19
20 audit.define(
21 {
22 label : "test-audiocontextoptions-latencyHint-basic",
23 description : "Test creating contexts with basic latencyHint types."
24 },
25 function(task, should) {
26 let closingPromises = [];
27
28 // Verify that an AudioContext can be created with default options.
29 should(function(){context = new AudioContext()},
30 "context = new AudioContext()")
31 .notThrow();
32
33 defaultLatency = context.baseLatency;
34 should(defaultLatency, "default baseLatency").beGreaterThan(0);
35
36 // Verify that an AudioContext can be created with the expected
37 // latency types.
38 should(function(){context = new AudioContext(
39 {'latencyHint' : 'interactive'})},
40 "context = new AudioContext({'latencyHint': 'interactive'})")
41 .notThrow();
42
43 interactiveLatency = context.baseLatency;
44 should(interactiveLatency, "interactive baseLatency")
45 .beEqualTo(defaultLatency);
46 closingPromises.push(context.close());
47
48 should(function(){context =
49 new AudioContext({'latencyHint' : 'balanced'})},
50 "context = new AudioContext({'latencyHint': 'balanced'})")
51 .notThrow();
52
53 balancedLatency = context.baseLatency;
54 should(balancedLatency, "balanced baseLatency")
55 .beGreaterThanOrEqualTo(interactiveLatency);
56 closingPromises.push(context.close());
57
58 should(function(){context =
59 new AudioContext({'latencyHint' : 'playback'})},
60 "context = new AudioContext({'latencyHint': 'playback'})")
61 .notThrow();
62
63 playbackLatency = context.baseLatency;
64 should(playbackLatency, "playback baseLatency")
65 .beGreaterThanOrEqualTo(balancedLatency);
66 closingPromises.push(context.close());
67
68 Promise.all(closingPromises).then(function() { task.done(); });
69 });
70
71 audit.define(
72 {
73 label : "test-audiocontextoptions-latencyHint-double",
74 description :
75 "Test creating contexts with explicit latencyHint values."
76 },
77 function(task, should) {
78 var closingPromises = [];
79
80 // Verify too small exact latency clamped to 'interactive'
81 should(function(){context = new AudioContext(
82 {'latencyHint' : interactiveLatency / 2})},
83 "context = new AudioContext({'latencyHint': " +
84 "interactiveLatency/2})")
85 .notThrow();
86 should(context.baseLatency, "double-constructor baseLatency small")
87 .beEqualTo(interactiveLatency);
88 closingPromises.push(context.close());
89
90 // Verify that exact latency in range works as expected
91 var validLatency = (interactiveLatency + playbackLatency) / 2;
92 should(function(){context = new AudioContext(
93 {'latencyHint' : validLatency})},
94 "context = new AudioContext({'latencyHint': validLatency})")
95 .notThrow();
96 should(context.baseLatency,
97 "double-constructor baseLatency inrange 1")
98 .beGreaterThanOrEqualTo(interactiveLatency);
99 should(context.baseLatency,
100 "double-constructor baseLatency inrange 2")
101 .beLessThanOrEqualTo(playbackLatency);
102 closingPromises.push(context.close());
103
104 // Verify too big exact latency clamped to some value
105 var context1;
106 var context2;
107 should(
108 function() {
109 context1 =
110 new AudioContext({'latencyHint' : playbackLatency * 10});
111 context2 =
112 new AudioContext({'latencyHint' : playbackLatency * 20});
113 },
114 "creating two high latency contexts")
115 .notThrow();
116 should(context1.baseLatency, "high latency context baseLatency")
117 .beEqualTo(context2.baseLatency);
118 closingPromises.push(context1.close());
119 closingPromises.push(context2.close());
120
121 // Verify that invalid latencyHint values are rejected.
122 should(
123 function(){context = new AudioContext({'latencyHint' : 'foo'})},
124 "context = new AudioContext({'latencyHint': 'foo'})")
125 .throw("TypeError");
126
127 // Verify that no extra options can be passed into the
128 // AudioContextOptions.
129 should(function(){context = new AudioContext('latencyHint')},
130 "context = new AudioContext('latencyHint')")
131 .throw("TypeError");
132
133 Promise.all(closingPromises).then(function() { task.done(); });
134 });
135
136 audit.run();
137 </script>
138 </body>
139 </html>
OLDNEW
« no previous file with comments | « third_party/WebKit/LayoutTests/webaudio/AudioContext/audiocontextoptions.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698