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

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

Issue 2563423004: Always send a fail or finish notification for each navigation. (Closed)
Patch Set: fix unit tests Created 4 years 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 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 using AutoplayStatus = BaseAudioContext::AutoplayStatus; 80 using AutoplayStatus = BaseAudioContext::AutoplayStatus;
81 81
82 void SetUp() override { 82 void SetUp() override {
83 m_dummyPageHolder = DummyPageHolder::create(); 83 m_dummyPageHolder = DummyPageHolder::create();
84 m_dummyFrameOwner = DummyFrameOwner::create(); 84 m_dummyFrameOwner = DummyFrameOwner::create();
85 document().updateSecurityOrigin( 85 document().updateSecurityOrigin(
86 SecurityOrigin::create("https", "example.com", 80)); 86 SecurityOrigin::create("https", "example.com", 80));
87 } 87 }
88 88
89 void TearDown() override { 89 void TearDown() override {
90 if (m_childFrame) { 90 if (m_childFrame)
91 m_childDocumentLoader->detachFromFrame();
92 m_childDocumentLoader.clear();
dcheng 2016/12/14 23:01:28 Yay, simplification.
93 m_childFrame->detach(FrameDetachType::Remove); 91 m_childFrame->detach(FrameDetachType::Remove);
94 }
95 } 92 }
96 93
97 void createChildFrame() { 94 void createChildFrame() {
98 m_childFrame = LocalFrame::create( 95 m_childFrame = LocalFrame::create(
99 MockCrossOriginFrameLoaderClient::create(document().frame()), 96 MockCrossOriginFrameLoaderClient::create(document().frame()),
100 document().frame()->host(), m_dummyFrameOwner.get()); 97 document().frame()->host(), m_dummyFrameOwner.get());
101 m_childFrame->setView(FrameView::create(*m_childFrame, IntSize(500, 500))); 98 m_childFrame->setView(FrameView::create(*m_childFrame, IntSize(500, 500)));
102 m_childFrame->init(); 99 m_childFrame->init();
103 m_childDocumentLoader = DocumentLoader::create(
Nate Chapin 2016/12/12 21:40:38 This DocumentLoader isn't fully attached to the fr
104 m_childFrame.get(), ResourceRequest("https://www.example.com"),
105 SubstituteData(), ClientRedirectPolicy::NotClientRedirect);
106 100
107 childDocument().updateSecurityOrigin( 101 childDocument().updateSecurityOrigin(
108 SecurityOrigin::create("https", "cross-origin.com", 80)); 102 SecurityOrigin::create("https", "cross-origin.com", 80));
109 } 103 }
110 104
111 Document& document() { return m_dummyPageHolder->document(); } 105 Document& document() { return m_dummyPageHolder->document(); }
112 106
113 Document& childDocument() { return *m_childFrame->document(); } 107 Document& childDocument() { return *m_childFrame->document(); }
114 108
115 ScriptState* getScriptStateFrom(const Document& document) { 109 ScriptState* getScriptStateFrom(const Document& document) {
116 return ScriptState::forMainWorld(document.frame()); 110 return ScriptState::forMainWorld(document.frame());
117 } 111 }
118 112
119 void rejectPendingResolvers(BaseAudioContext* audioContext) { 113 void rejectPendingResolvers(BaseAudioContext* audioContext) {
120 audioContext->rejectPendingResolvers(); 114 audioContext->rejectPendingResolvers();
121 } 115 }
122 116
123 void recordAutoplayStatus(BaseAudioContext* audioContext) { 117 void recordAutoplayStatus(BaseAudioContext* audioContext) {
124 audioContext->recordAutoplayStatus(); 118 audioContext->recordAutoplayStatus();
125 } 119 }
126 120
127 private: 121 private:
128 std::unique_ptr<DummyPageHolder> m_dummyPageHolder; 122 std::unique_ptr<DummyPageHolder> m_dummyPageHolder;
129 Persistent<DummyFrameOwner> m_dummyFrameOwner; 123 Persistent<DummyFrameOwner> m_dummyFrameOwner;
130 124
131 Persistent<LocalFrame> m_childFrame; 125 Persistent<LocalFrame> m_childFrame;
132 Persistent<DocumentLoader> m_childDocumentLoader;
133 126
134 BaseAudioContextTestPlatform m_testPlatform; 127 BaseAudioContextTestPlatform m_testPlatform;
135 }; 128 };
136 129
137 TEST_F(BaseAudioContextTest, AutoplayMetrics_NoRestriction) { 130 TEST_F(BaseAudioContextTest, AutoplayMetrics_NoRestriction) {
138 HistogramTester histogramTester; 131 HistogramTester histogramTester;
139 132
140 BaseAudioContext* audioContext = 133 BaseAudioContext* audioContext =
141 BaseAudioContext::create(document(), ASSERT_NO_EXCEPTION); 134 BaseAudioContext::create(document(), ASSERT_NO_EXCEPTION);
142 recordAutoplayStatus(audioContext); 135 recordAutoplayStatus(audioContext);
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 audioContext->resumeContext(getScriptStateFrom(childDocument())); 279 audioContext->resumeContext(getScriptStateFrom(childDocument()));
287 rejectPendingResolvers(audioContext); 280 rejectPendingResolvers(audioContext);
288 recordAutoplayStatus(audioContext); 281 recordAutoplayStatus(audioContext);
289 282
290 histogramTester.expectBucketCount(kCrossOriginMetric, 283 histogramTester.expectBucketCount(kCrossOriginMetric,
291 AutoplayStatus::AutoplayStatusSucceeded, 1); 284 AutoplayStatus::AutoplayStatusSucceeded, 1);
292 histogramTester.expectTotalCount(kCrossOriginMetric, 1); 285 histogramTester.expectTotalCount(kCrossOriginMetric, 1);
293 } 286 }
294 287
295 } // namespace blink 288 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698