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

Side by Side Diff: third_party/WebKit/Source/modules/webaudio/BaseAudioContextTest.cpp

Issue 2588403002: TestingPlatformSupport: register Platform instance correctly (Closed)
Patch Set: review #32 Created 3 years, 11 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "modules/webaudio/BaseAudioContext.h" 5 #include "modules/webaudio/BaseAudioContext.h"
6 6
7 #include "core/dom/Document.h" 7 #include "core/dom/Document.h"
8 #include "core/dom/DocumentUserGestureToken.h" 8 #include "core/dom/DocumentUserGestureToken.h"
9 #include "core/frame/FrameOwner.h" 9 #include "core/frame/FrameOwner.h"
10 #include "core/frame/FrameTypes.h" 10 #include "core/frame/FrameTypes.h"
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 116
117 void recordAutoplayStatus(BaseAudioContext* audioContext) { 117 void recordAutoplayStatus(BaseAudioContext* audioContext) {
118 audioContext->recordAutoplayStatus(); 118 audioContext->recordAutoplayStatus();
119 } 119 }
120 120
121 private: 121 private:
122 std::unique_ptr<DummyPageHolder> m_dummyPageHolder; 122 std::unique_ptr<DummyPageHolder> m_dummyPageHolder;
123 Persistent<DummyFrameOwner> m_dummyFrameOwner; 123 Persistent<DummyFrameOwner> m_dummyFrameOwner;
124 124
125 Persistent<LocalFrame> m_childFrame; 125 Persistent<LocalFrame> m_childFrame;
126
127 BaseAudioContextTestPlatform m_testPlatform;
128 }; 126 };
129 127
130 TEST_F(BaseAudioContextTest, AutoplayMetrics_NoRestriction) { 128 TEST_F(BaseAudioContextTest, AutoplayMetrics_NoRestriction) {
129 ScopedTestingPlatformSupport<BaseAudioContextTestPlatform> platform;
131 HistogramTester histogramTester; 130 HistogramTester histogramTester;
132 131
133 BaseAudioContext* audioContext = 132 BaseAudioContext* audioContext =
134 BaseAudioContext::create(document(), ASSERT_NO_EXCEPTION); 133 BaseAudioContext::create(document(), ASSERT_NO_EXCEPTION);
135 recordAutoplayStatus(audioContext); 134 recordAutoplayStatus(audioContext);
136 135
137 histogramTester.expectTotalCount(kCrossOriginMetric, 0); 136 histogramTester.expectTotalCount(kCrossOriginMetric, 0);
138 } 137 }
139 138
140 TEST_F(BaseAudioContextTest, AutoplayMetrics_CreateNoGesture) { 139 TEST_F(BaseAudioContextTest, AutoplayMetrics_CreateNoGesture) {
140 ScopedTestingPlatformSupport<BaseAudioContextTestPlatform> platform;
141 HistogramTester histogramTester; 141 HistogramTester histogramTester;
142 createChildFrame(); 142 createChildFrame();
143 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true); 143 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true);
144 144
145 BaseAudioContext* audioContext = 145 BaseAudioContext* audioContext =
146 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION); 146 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION);
147 recordAutoplayStatus(audioContext); 147 recordAutoplayStatus(audioContext);
148 148
149 histogramTester.expectBucketCount(kCrossOriginMetric, 149 histogramTester.expectBucketCount(kCrossOriginMetric,
150 AutoplayStatus::AutoplayStatusFailed, 1); 150 AutoplayStatus::AutoplayStatusFailed, 1);
151 histogramTester.expectTotalCount(kCrossOriginMetric, 1); 151 histogramTester.expectTotalCount(kCrossOriginMetric, 1);
152 } 152 }
153 153
154 TEST_F(BaseAudioContextTest, AutoplayMetrics_CallResumeNoGesture) { 154 TEST_F(BaseAudioContextTest, AutoplayMetrics_CallResumeNoGesture) {
155 ScopedTestingPlatformSupport<BaseAudioContextTestPlatform> platform;
155 HistogramTester histogramTester; 156 HistogramTester histogramTester;
156 createChildFrame(); 157 createChildFrame();
157 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true); 158 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true);
158 159
159 ScriptState::Scope scope(getScriptStateFrom(childDocument())); 160 ScriptState::Scope scope(getScriptStateFrom(childDocument()));
160 161
161 BaseAudioContext* audioContext = 162 BaseAudioContext* audioContext =
162 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION); 163 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION);
163 audioContext->resumeContext(getScriptStateFrom(childDocument())); 164 audioContext->resumeContext(getScriptStateFrom(childDocument()));
164 rejectPendingResolvers(audioContext); 165 rejectPendingResolvers(audioContext);
165 recordAutoplayStatus(audioContext); 166 recordAutoplayStatus(audioContext);
166 167
167 histogramTester.expectBucketCount(kCrossOriginMetric, 168 histogramTester.expectBucketCount(kCrossOriginMetric,
168 AutoplayStatus::AutoplayStatusFailed, 1); 169 AutoplayStatus::AutoplayStatusFailed, 1);
169 histogramTester.expectTotalCount(kCrossOriginMetric, 1); 170 histogramTester.expectTotalCount(kCrossOriginMetric, 1);
170 } 171 }
171 172
172 TEST_F(BaseAudioContextTest, AutoplayMetrics_CreateGesture) { 173 TEST_F(BaseAudioContextTest, AutoplayMetrics_CreateGesture) {
174 ScopedTestingPlatformSupport<BaseAudioContextTestPlatform> platform;
173 HistogramTester histogramTester; 175 HistogramTester histogramTester;
174 createChildFrame(); 176 createChildFrame();
175 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true); 177 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true);
176 178
177 UserGestureIndicator userGestureScope(DocumentUserGestureToken::create( 179 UserGestureIndicator userGestureScope(DocumentUserGestureToken::create(
178 &childDocument(), UserGestureToken::NewGesture)); 180 &childDocument(), UserGestureToken::NewGesture));
179 181
180 BaseAudioContext* audioContext = 182 BaseAudioContext* audioContext =
181 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION); 183 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION);
182 recordAutoplayStatus(audioContext); 184 recordAutoplayStatus(audioContext);
183 185
184 histogramTester.expectBucketCount(kCrossOriginMetric, 186 histogramTester.expectBucketCount(kCrossOriginMetric,
185 AutoplayStatus::AutoplayStatusSucceeded, 1); 187 AutoplayStatus::AutoplayStatusSucceeded, 1);
186 histogramTester.expectTotalCount(kCrossOriginMetric, 1); 188 histogramTester.expectTotalCount(kCrossOriginMetric, 1);
187 } 189 }
188 190
189 TEST_F(BaseAudioContextTest, AutoplayMetrics_CallResumeGesture) { 191 TEST_F(BaseAudioContextTest, AutoplayMetrics_CallResumeGesture) {
192 ScopedTestingPlatformSupport<BaseAudioContextTestPlatform> platform;
190 HistogramTester histogramTester; 193 HistogramTester histogramTester;
191 createChildFrame(); 194 createChildFrame();
192 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true); 195 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true);
193 196
194 ScriptState::Scope scope(getScriptStateFrom(childDocument())); 197 ScriptState::Scope scope(getScriptStateFrom(childDocument()));
195 198
196 BaseAudioContext* audioContext = 199 BaseAudioContext* audioContext =
197 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION); 200 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION);
198 201
199 UserGestureIndicator userGestureScope(DocumentUserGestureToken::create( 202 UserGestureIndicator userGestureScope(DocumentUserGestureToken::create(
200 &childDocument(), UserGestureToken::NewGesture)); 203 &childDocument(), UserGestureToken::NewGesture));
201 204
202 audioContext->resumeContext(getScriptStateFrom(childDocument())); 205 audioContext->resumeContext(getScriptStateFrom(childDocument()));
203 rejectPendingResolvers(audioContext); 206 rejectPendingResolvers(audioContext);
204 recordAutoplayStatus(audioContext); 207 recordAutoplayStatus(audioContext);
205 208
206 histogramTester.expectBucketCount(kCrossOriginMetric, 209 histogramTester.expectBucketCount(kCrossOriginMetric,
207 AutoplayStatus::AutoplayStatusSucceeded, 1); 210 AutoplayStatus::AutoplayStatusSucceeded, 1);
208 histogramTester.expectTotalCount(kCrossOriginMetric, 1); 211 histogramTester.expectTotalCount(kCrossOriginMetric, 1);
209 } 212 }
210 213
211 TEST_F(BaseAudioContextTest, AutoplayMetrics_NodeStartNoGesture) { 214 TEST_F(BaseAudioContextTest, AutoplayMetrics_NodeStartNoGesture) {
215 ScopedTestingPlatformSupport<BaseAudioContextTestPlatform> platform;
212 HistogramTester histogramTester; 216 HistogramTester histogramTester;
213 createChildFrame(); 217 createChildFrame();
214 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true); 218 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true);
215 219
216 BaseAudioContext* audioContext = 220 BaseAudioContext* audioContext =
217 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION); 221 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION);
218 audioContext->maybeRecordStartAttempt(); 222 audioContext->maybeRecordStartAttempt();
219 recordAutoplayStatus(audioContext); 223 recordAutoplayStatus(audioContext);
220 224
221 histogramTester.expectBucketCount(kCrossOriginMetric, 225 histogramTester.expectBucketCount(kCrossOriginMetric,
222 AutoplayStatus::AutoplayStatusFailed, 1); 226 AutoplayStatus::AutoplayStatusFailed, 1);
223 histogramTester.expectTotalCount(kCrossOriginMetric, 1); 227 histogramTester.expectTotalCount(kCrossOriginMetric, 1);
224 } 228 }
225 229
226 TEST_F(BaseAudioContextTest, AutoplayMetrics_NodeStartGesture) { 230 TEST_F(BaseAudioContextTest, AutoplayMetrics_NodeStartGesture) {
231 ScopedTestingPlatformSupport<BaseAudioContextTestPlatform> platform;
227 HistogramTester histogramTester; 232 HistogramTester histogramTester;
228 createChildFrame(); 233 createChildFrame();
229 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true); 234 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true);
230 235
231 BaseAudioContext* audioContext = 236 BaseAudioContext* audioContext =
232 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION); 237 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION);
233 238
234 UserGestureIndicator userGestureScope(DocumentUserGestureToken::create( 239 UserGestureIndicator userGestureScope(DocumentUserGestureToken::create(
235 &childDocument(), UserGestureToken::NewGesture)); 240 &childDocument(), UserGestureToken::NewGesture));
236 audioContext->maybeRecordStartAttempt(); 241 audioContext->maybeRecordStartAttempt();
237 recordAutoplayStatus(audioContext); 242 recordAutoplayStatus(audioContext);
238 243
239 histogramTester.expectBucketCount( 244 histogramTester.expectBucketCount(
240 kCrossOriginMetric, AutoplayStatus::AutoplayStatusFailedWithStart, 1); 245 kCrossOriginMetric, AutoplayStatus::AutoplayStatusFailedWithStart, 1);
241 histogramTester.expectTotalCount(kCrossOriginMetric, 1); 246 histogramTester.expectTotalCount(kCrossOriginMetric, 1);
242 } 247 }
243 248
244 TEST_F(BaseAudioContextTest, AutoplayMetrics_NodeStartNoGestureThenSuccess) { 249 TEST_F(BaseAudioContextTest, AutoplayMetrics_NodeStartNoGestureThenSuccess) {
250 ScopedTestingPlatformSupport<BaseAudioContextTestPlatform> platform;
245 HistogramTester histogramTester; 251 HistogramTester histogramTester;
246 createChildFrame(); 252 createChildFrame();
247 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true); 253 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true);
248 254
249 ScriptState::Scope scope(getScriptStateFrom(childDocument())); 255 ScriptState::Scope scope(getScriptStateFrom(childDocument()));
250 256
251 BaseAudioContext* audioContext = 257 BaseAudioContext* audioContext =
252 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION); 258 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION);
253 audioContext->maybeRecordStartAttempt(); 259 audioContext->maybeRecordStartAttempt();
254 260
255 UserGestureIndicator userGestureScope(DocumentUserGestureToken::create( 261 UserGestureIndicator userGestureScope(DocumentUserGestureToken::create(
256 &childDocument(), UserGestureToken::NewGesture)); 262 &childDocument(), UserGestureToken::NewGesture));
257 audioContext->resumeContext(getScriptStateFrom(childDocument())); 263 audioContext->resumeContext(getScriptStateFrom(childDocument()));
258 rejectPendingResolvers(audioContext); 264 rejectPendingResolvers(audioContext);
259 recordAutoplayStatus(audioContext); 265 recordAutoplayStatus(audioContext);
260 266
261 histogramTester.expectBucketCount(kCrossOriginMetric, 267 histogramTester.expectBucketCount(kCrossOriginMetric,
262 AutoplayStatus::AutoplayStatusSucceeded, 1); 268 AutoplayStatus::AutoplayStatusSucceeded, 1);
263 histogramTester.expectTotalCount(kCrossOriginMetric, 1); 269 histogramTester.expectTotalCount(kCrossOriginMetric, 1);
264 } 270 }
265 271
266 TEST_F(BaseAudioContextTest, AutoplayMetrics_NodeStartGestureThenSucces) { 272 TEST_F(BaseAudioContextTest, AutoplayMetrics_NodeStartGestureThenSucces) {
273 ScopedTestingPlatformSupport<BaseAudioContextTestPlatform> platform;
267 HistogramTester histogramTester; 274 HistogramTester histogramTester;
268 createChildFrame(); 275 createChildFrame();
269 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true); 276 childDocument().settings()->setMediaPlaybackRequiresUserGesture(true);
270 277
271 ScriptState::Scope scope(getScriptStateFrom(childDocument())); 278 ScriptState::Scope scope(getScriptStateFrom(childDocument()));
272 279
273 BaseAudioContext* audioContext = 280 BaseAudioContext* audioContext =
274 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION); 281 BaseAudioContext::create(childDocument(), ASSERT_NO_EXCEPTION);
275 282
276 UserGestureIndicator userGestureScope(DocumentUserGestureToken::create( 283 UserGestureIndicator userGestureScope(DocumentUserGestureToken::create(
277 &childDocument(), UserGestureToken::NewGesture)); 284 &childDocument(), UserGestureToken::NewGesture));
278 audioContext->maybeRecordStartAttempt(); 285 audioContext->maybeRecordStartAttempt();
279 audioContext->resumeContext(getScriptStateFrom(childDocument())); 286 audioContext->resumeContext(getScriptStateFrom(childDocument()));
280 rejectPendingResolvers(audioContext); 287 rejectPendingResolvers(audioContext);
281 recordAutoplayStatus(audioContext); 288 recordAutoplayStatus(audioContext);
282 289
283 histogramTester.expectBucketCount(kCrossOriginMetric, 290 histogramTester.expectBucketCount(kCrossOriginMetric,
284 AutoplayStatus::AutoplayStatusSucceeded, 1); 291 AutoplayStatus::AutoplayStatusSucceeded, 1);
285 histogramTester.expectTotalCount(kCrossOriginMetric, 1); 292 histogramTester.expectTotalCount(kCrossOriginMetric, 1);
286 } 293 }
287 294
288 } // namespace blink 295 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698