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

Side by Side Diff: chromecast/browser/cast_media_blocker_unittest.cc

Issue 2623953002: [Chromecast] Fix media session blocking tests. (Closed)
Patch Set: [Chromecast] Fix media session blocking tests. Created 3 years, 10 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 | « no previous file | content/browser/media/session/media_session_impl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "chromecast/browser/cast_media_blocker.h" 5 #include "chromecast/browser/cast_media_blocker.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/memory/ptr_util.h" 9 #include "base/memory/ptr_util.h"
10 #include "content/public/browser/media_session.h" 10 #include "content/public/browser/media_session.h"
11 #include "content/public/browser/web_contents.h"
12 #include "content/public/test/test_content_client_initializer.h" 11 #include "content/public/test/test_content_client_initializer.h"
13 #include "content/public/test/test_renderer_host.h" 12 #include "content/public/test/test_renderer_host.h"
14 #include "content/public/test/web_contents_tester.h"
15 #include "testing/gmock/include/gmock/gmock.h" 13 #include "testing/gmock/include/gmock/gmock.h"
16 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
15 #include "ui/gl/test/gl_surface_test_support.h"
17 16
18 namespace chromecast { 17 namespace chromecast {
19 namespace shell { 18 namespace shell {
20 19
21 using ::testing::_; 20 using ::testing::_;
22 using ::testing::Invoke; 21 using ::testing::Invoke;
23 22
23 namespace {
24
24 class MockMediaSession : public content::MediaSession { 25 class MockMediaSession : public content::MediaSession {
25 public: 26 public:
26 explicit MockMediaSession(content::MediaSession* session) { 27 MockMediaSession() {}
27 // Delegate the calls to the real MediaSession. 28 ~MockMediaSession() override {}
28 ON_CALL(*this, Resume(_))
29 .WillByDefault(Invoke(session, &MediaSession::Resume));
30 ON_CALL(*this, Suspend(_))
31 .WillByDefault(Invoke(session, &MediaSession::Suspend));
32 ON_CALL(*this, Stop(_)).WillByDefault(Invoke(session, &MediaSession::Stop));
33 ON_CALL(*this, DidReceiveAction(_))
34 .WillByDefault(Invoke(session, &MediaSession::DidReceiveAction));
35 }
36 ~MockMediaSession() {}
37 29
38 MOCK_METHOD1(Resume, void(content::MediaSession::SuspendType)); 30 MOCK_METHOD1(Resume, void(content::MediaSession::SuspendType));
39 MOCK_METHOD1(Suspend, void(content::MediaSession::SuspendType)); 31 MOCK_METHOD1(Suspend, void(content::MediaSession::SuspendType));
40 MOCK_METHOD1(Stop, void(content::MediaSession::SuspendType)); 32 MOCK_METHOD1(Stop, void(content::MediaSession::SuspendType));
41 MOCK_METHOD0(StartDucking, void()); 33 MOCK_METHOD0(StartDucking, void());
42 MOCK_METHOD0(StopDucking, void()); 34 MOCK_METHOD0(StopDucking, void());
43 MOCK_METHOD1(DidReceiveAction, void(blink::mojom::MediaSessionAction)); 35 MOCK_METHOD1(DidReceiveAction, void(blink::mojom::MediaSessionAction));
36 MOCK_METHOD1(AddObserver, void(content::MediaSessionObserver*));
37 MOCK_METHOD1(RemoveObserver, void(content::MediaSessionObserver*));
44 38
45 private: 39 private:
46 DISALLOW_COPY_AND_ASSIGN(MockMediaSession); 40 DISALLOW_COPY_AND_ASSIGN(MockMediaSession);
47 }; 41 };
48 42
43 } // namespace
44
49 class CastMediaBlockerTest : public content::RenderViewHostTestHarness { 45 class CastMediaBlockerTest : public content::RenderViewHostTestHarness {
50 public: 46 public:
51 CastMediaBlockerTest() {} 47 CastMediaBlockerTest() {}
52 ~CastMediaBlockerTest() override {} 48 ~CastMediaBlockerTest() override {}
53 49
54 void SetUp() override { 50 void SetUp() override {
51 gl::GLSurfaceTestSupport::InitializeOneOff();
55 initializer_ = base::MakeUnique<content::TestContentClientInitializer>(); 52 initializer_ = base::MakeUnique<content::TestContentClientInitializer>();
56 content::RenderViewHostTestHarness::SetUp(); 53 content::RenderViewHostTestHarness::SetUp();
57 media_session_ = base::MakeUnique<MockMediaSession>( 54 media_session_ = base::MakeUnique<MockMediaSession>();
58 content::MediaSession::Get(web_contents()));
59 media_blocker_ = base::MakeUnique<CastMediaBlocker>(media_session_.get()); 55 media_blocker_ = base::MakeUnique<CastMediaBlocker>(media_session_.get());
60
61 content::WebContentsTester::For(web_contents())
62 ->NavigateAndCommit(GURL("https://www.youtube.com"));
63 } 56 }
64 57
65 void TearDown() override { content::RenderViewHostTestHarness::TearDown(); } 58 void TearDown() override { content::RenderViewHostTestHarness::TearDown(); }
66 59
67 void MediaSessionChanged(bool controllable, bool suspended) { 60 void MediaSessionChanged(bool controllable, bool suspended) {
68 media_blocker_->MediaSessionStateChanged(controllable, suspended); 61 media_blocker_->MediaSessionStateChanged(controllable, suspended);
69 } 62 }
70 63
71 protected: 64 protected:
72 std::unique_ptr<content::TestContentClientInitializer> initializer_; 65 std::unique_ptr<content::TestContentClientInitializer> initializer_;
73 std::unique_ptr<MockMediaSession> media_session_; 66 std::unique_ptr<MockMediaSession> media_session_;
74 std::unique_ptr<CastMediaBlocker> media_blocker_; 67 std::unique_ptr<CastMediaBlocker> media_blocker_;
75 68
76 private: 69 private:
77 DISALLOW_COPY_AND_ASSIGN(CastMediaBlockerTest); 70 DISALLOW_COPY_AND_ASSIGN(CastMediaBlockerTest);
78 }; 71 };
79 72
80 // TODO(derekjchow): Make the tests pass on cast testbots.
81 // crbug.com/665118
82 73
83 TEST_F(CastMediaBlockerTest, DISABLED_Block_Unblock_Suspended) { 74 TEST_F(CastMediaBlockerTest, Block_Unblock_Suspended) {
84 // Testing block/unblock operations do nothing if media never plays. 75 // Testing block/unblock operations do nothing if media never plays.
85 EXPECT_CALL(*media_session_, Suspend(_)).Times(0); 76 EXPECT_CALL(*media_session_, Suspend(_)).Times(0);
86 EXPECT_CALL(*media_session_, Resume(_)).Times(0); 77 EXPECT_CALL(*media_session_, Resume(_)).Times(0);
87 media_blocker_->BlockMediaLoading(true); 78 media_blocker_->BlockMediaLoading(true);
88 media_blocker_->BlockMediaLoading(false); 79 media_blocker_->BlockMediaLoading(false);
89 80
90 MediaSessionChanged(true, true); 81 MediaSessionChanged(true, true);
91 media_blocker_->BlockMediaLoading(true); 82 media_blocker_->BlockMediaLoading(true);
92 media_blocker_->BlockMediaLoading(false); 83 media_blocker_->BlockMediaLoading(false);
93 84
94 media_blocker_->BlockMediaLoading(true); 85 media_blocker_->BlockMediaLoading(true);
95 MediaSessionChanged(false, true); 86 MediaSessionChanged(false, true);
96 media_blocker_->BlockMediaLoading(false); 87 media_blocker_->BlockMediaLoading(false);
97 } 88 }
98 89
99 TEST_F(CastMediaBlockerTest, DISABLED_No_Block) { 90 TEST_F(CastMediaBlockerTest, No_Block) {
100 // Tests CastMediaBlocker does nothing if block/unblock is not called. 91 // Tests CastMediaBlocker does nothing if block/unblock is not called.
101 EXPECT_CALL(*media_session_, Suspend(_)).Times(0); 92 EXPECT_CALL(*media_session_, Suspend(_)).Times(0);
102 EXPECT_CALL(*media_session_, Resume(_)).Times(0); 93 EXPECT_CALL(*media_session_, Resume(_)).Times(0);
103 94
104 // Media becomes controllable/uncontrollable. 95 // Media becomes controllable/uncontrollable.
105 MediaSessionChanged(true, true); 96 MediaSessionChanged(true, true);
106 MediaSessionChanged(false, true); 97 MediaSessionChanged(false, true);
107 98
108 // Media starts and stops. 99 // Media starts and stops.
109 MediaSessionChanged(false, false); 100 MediaSessionChanged(false, false);
110 MediaSessionChanged(false, true); 101 MediaSessionChanged(false, true);
111 102
112 // Media starts, changes controllability and stops. 103 // Media starts, changes controllability and stops.
113 MediaSessionChanged(false, false); 104 MediaSessionChanged(false, false);
114 MediaSessionChanged(true, false); 105 MediaSessionChanged(true, false);
115 MediaSessionChanged(false, false); 106 MediaSessionChanged(false, false);
116 MediaSessionChanged(false, true); 107 MediaSessionChanged(false, true);
117 108
118 // Media starts, changes controllability and stops. 109 // Media starts, changes controllability and stops.
119 MediaSessionChanged(false, false); 110 MediaSessionChanged(false, false);
120 MediaSessionChanged(true, false); 111 MediaSessionChanged(true, false);
121 MediaSessionChanged(true, true); 112 MediaSessionChanged(true, true);
122 } 113 }
123 114
124 TEST_F(CastMediaBlockerTest, DISABLED_Block_Before_Controllable) { 115 TEST_F(CastMediaBlockerTest, Block_Before_Controllable) {
125 // Tests CastMediaBlocker only suspends when controllable. 116 // Tests CastMediaBlocker only suspends when controllable.
126 EXPECT_CALL(*media_session_, Suspend(_)).Times(0); 117 EXPECT_CALL(*media_session_, Suspend(_)).Times(0);
127 EXPECT_CALL(*media_session_, Resume(_)).Times(0); 118 EXPECT_CALL(*media_session_, Resume(_)).Times(0);
128 media_blocker_->BlockMediaLoading(true); 119 media_blocker_->BlockMediaLoading(true);
129 testing::Mock::VerifyAndClearExpectations(media_session_.get()); 120 testing::Mock::VerifyAndClearExpectations(media_session_.get());
130 121
131 // Session becomes controllable 122 // Session becomes controllable
132 EXPECT_CALL(*media_session_, Suspend(_)).Times(1); 123 EXPECT_CALL(*media_session_, Suspend(_)).Times(1);
133 EXPECT_CALL(*media_session_, Resume(_)).Times(0); 124 EXPECT_CALL(*media_session_, Resume(_)).Times(0);
134 MediaSessionChanged(true, false); 125 MediaSessionChanged(true, false);
135 } 126 }
136 127
137 TEST_F(CastMediaBlockerTest, DISABLED_Block_After_Controllable) { 128 TEST_F(CastMediaBlockerTest, Block_After_Controllable) {
138 // Tests CastMediaBlocker suspends immediately on block if controllable. 129 // Tests CastMediaBlocker suspends immediately on block if controllable.
139 EXPECT_CALL(*media_session_, Suspend(_)).Times(0); 130 EXPECT_CALL(*media_session_, Suspend(_)).Times(0);
140 EXPECT_CALL(*media_session_, Resume(_)).Times(0); 131 EXPECT_CALL(*media_session_, Resume(_)).Times(0);
141 MediaSessionChanged(true, false); 132 MediaSessionChanged(true, false);
142 testing::Mock::VerifyAndClearExpectations(media_session_.get()); 133 testing::Mock::VerifyAndClearExpectations(media_session_.get());
143 134
144 // Block when media is playing 135 // Block when media is playing
145 EXPECT_CALL(*media_session_, Suspend(_)).Times(1); 136 EXPECT_CALL(*media_session_, Suspend(_)).Times(1);
146 EXPECT_CALL(*media_session_, Resume(_)).Times(0); 137 EXPECT_CALL(*media_session_, Resume(_)).Times(0);
147 media_blocker_->BlockMediaLoading(true); 138 media_blocker_->BlockMediaLoading(true);
148 MediaSessionChanged(true, true); 139 MediaSessionChanged(true, true);
149 testing::Mock::VerifyAndClearExpectations(media_session_.get()); 140 testing::Mock::VerifyAndClearExpectations(media_session_.get());
150 141
151 // Unblock 142 // Unblock
152 EXPECT_CALL(*media_session_, Suspend(_)).Times(0); 143 EXPECT_CALL(*media_session_, Suspend(_)).Times(0);
153 EXPECT_CALL(*media_session_, Resume(_)).Times(1); 144 EXPECT_CALL(*media_session_, Resume(_)).Times(1);
154 media_blocker_->BlockMediaLoading(false); 145 media_blocker_->BlockMediaLoading(false);
155 } 146 }
156 147
157 TEST_F(CastMediaBlockerTest, DISABLED_Block_Multiple) { 148 TEST_F(CastMediaBlockerTest, Block_Multiple) {
158 // Tests CastMediaBlocker repeatively suspends when blocked. 149 // Tests CastMediaBlocker repeatively suspends when blocked.
159 EXPECT_CALL(*media_session_, Suspend(_)).Times(0); 150 EXPECT_CALL(*media_session_, Suspend(_)).Times(0);
160 EXPECT_CALL(*media_session_, Resume(_)).Times(0); 151 EXPECT_CALL(*media_session_, Resume(_)).Times(0);
161 media_blocker_->BlockMediaLoading(true); 152 media_blocker_->BlockMediaLoading(true);
162 MediaSessionChanged(false, false); 153 MediaSessionChanged(false, false);
163 testing::Mock::VerifyAndClearExpectations(media_session_.get()); 154 testing::Mock::VerifyAndClearExpectations(media_session_.get());
164 155
165 EXPECT_CALL(*media_session_, Suspend(_)).Times(1); 156 EXPECT_CALL(*media_session_, Suspend(_)).Times(1);
166 EXPECT_CALL(*media_session_, Resume(_)).Times(0); 157 EXPECT_CALL(*media_session_, Resume(_)).Times(0);
167 MediaSessionChanged(true, false); 158 MediaSessionChanged(true, false);
168 MediaSessionChanged(true, true); 159 MediaSessionChanged(true, true);
169 testing::Mock::VerifyAndClearExpectations(media_session_.get()); 160 testing::Mock::VerifyAndClearExpectations(media_session_.get());
170 161
171 EXPECT_CALL(*media_session_, Suspend(_)).Times(1); 162 EXPECT_CALL(*media_session_, Suspend(_)).Times(1);
172 EXPECT_CALL(*media_session_, Resume(_)).Times(0); 163 EXPECT_CALL(*media_session_, Resume(_)).Times(0);
173 MediaSessionChanged(true, false); 164 MediaSessionChanged(true, false);
174 testing::Mock::VerifyAndClearExpectations(media_session_.get()); 165 testing::Mock::VerifyAndClearExpectations(media_session_.get());
175 MediaSessionChanged(true, true); 166 MediaSessionChanged(true, true);
176 167
177 EXPECT_CALL(*media_session_, Suspend(_)).Times(0); 168 EXPECT_CALL(*media_session_, Suspend(_)).Times(0);
178 EXPECT_CALL(*media_session_, Resume(_)).Times(0); 169 EXPECT_CALL(*media_session_, Resume(_)).Times(0);
179 MediaSessionChanged(false, true); 170 MediaSessionChanged(false, true);
180 MediaSessionChanged(false, false); 171 MediaSessionChanged(false, false);
181 MediaSessionChanged(false, true); 172 MediaSessionChanged(false, true);
182 testing::Mock::VerifyAndClearExpectations(media_session_.get()); 173 testing::Mock::VerifyAndClearExpectations(media_session_.get());
183 } 174 }
184 175
185 TEST_F(CastMediaBlockerTest, DISABLED_Block_Unblock_Uncontrollable) { 176 TEST_F(CastMediaBlockerTest, Block_Unblock_Uncontrollable) {
186 // Tests CastMediaBlocker does not suspend or resume when uncontrollable. 177 // Tests CastMediaBlocker does not suspend or resume when uncontrollable.
187 EXPECT_CALL(*media_session_, Suspend(_)).Times(0); 178 EXPECT_CALL(*media_session_, Suspend(_)).Times(0);
188 EXPECT_CALL(*media_session_, Resume(_)).Times(0); 179 EXPECT_CALL(*media_session_, Resume(_)).Times(0);
189 media_blocker_->BlockMediaLoading(true); 180 media_blocker_->BlockMediaLoading(true);
190 MediaSessionChanged(false, false); 181 MediaSessionChanged(false, false);
191 media_blocker_->BlockMediaLoading(false); 182 media_blocker_->BlockMediaLoading(false);
192 media_blocker_->BlockMediaLoading(true); 183 media_blocker_->BlockMediaLoading(true);
193 MediaSessionChanged(false, true); 184 MediaSessionChanged(false, true);
194 media_blocker_->BlockMediaLoading(false); 185 media_blocker_->BlockMediaLoading(false);
195 media_blocker_->BlockMediaLoading(true); 186 media_blocker_->BlockMediaLoading(true);
196 testing::Mock::VerifyAndClearExpectations(media_session_.get()); 187 testing::Mock::VerifyAndClearExpectations(media_session_.get());
197 } 188 }
198 189
199 TEST_F(CastMediaBlockerTest, DISABLED_Block_Unblock_Uncontrollable2) { 190 TEST_F(CastMediaBlockerTest, Block_Unblock_Uncontrollable2) {
200 EXPECT_CALL(*media_session_, Suspend(_)).Times(1); 191 EXPECT_CALL(*media_session_, Suspend(_)).Times(1);
201 EXPECT_CALL(*media_session_, Resume(_)).Times(0); 192 EXPECT_CALL(*media_session_, Resume(_)).Times(0);
202 MediaSessionChanged(true, true); 193 MediaSessionChanged(true, true);
203 media_blocker_->BlockMediaLoading(true); 194 media_blocker_->BlockMediaLoading(true);
204 MediaSessionChanged(false, true); 195 MediaSessionChanged(false, true);
205 MediaSessionChanged(true, true); 196 MediaSessionChanged(true, true);
206 MediaSessionChanged(true, false); 197 MediaSessionChanged(true, false);
207 testing::Mock::VerifyAndClearExpectations(media_session_.get()); 198 testing::Mock::VerifyAndClearExpectations(media_session_.get());
208 199
209 EXPECT_CALL(*media_session_, Suspend(_)).Times(1); 200 EXPECT_CALL(*media_session_, Suspend(_)).Times(1);
210 EXPECT_CALL(*media_session_, Resume(_)).Times(0); 201 EXPECT_CALL(*media_session_, Resume(_)).Times(0);
211 MediaSessionChanged(false, false); 202 MediaSessionChanged(false, false);
212 MediaSessionChanged(false, true); 203 MediaSessionChanged(false, true);
213 MediaSessionChanged(true, true); 204 MediaSessionChanged(true, true);
214 MediaSessionChanged(true, false); 205 MediaSessionChanged(true, false);
215 testing::Mock::VerifyAndClearExpectations(media_session_.get()); 206 testing::Mock::VerifyAndClearExpectations(media_session_.get());
216 207
217 EXPECT_CALL(*media_session_, Suspend(_)).Times(0); 208 EXPECT_CALL(*media_session_, Suspend(_)).Times(0);
218 EXPECT_CALL(*media_session_, Resume(_)).Times(0); 209 EXPECT_CALL(*media_session_, Resume(_)).Times(0);
219 media_blocker_->BlockMediaLoading(false); 210 media_blocker_->BlockMediaLoading(false);
220 } 211 }
221 212
222 TEST_F(CastMediaBlockerTest, DISABLED_Resume_When_Controllable) { 213 TEST_F(CastMediaBlockerTest, Resume_When_Controllable) {
223 // Tests CastMediaBlocker will only resume after unblock when controllable. 214 // Tests CastMediaBlocker will only resume after unblock when controllable.
224 EXPECT_CALL(*media_session_, Suspend(_)).Times(1); 215 EXPECT_CALL(*media_session_, Suspend(_)).Times(1);
225 EXPECT_CALL(*media_session_, Resume(_)).Times(0); 216 EXPECT_CALL(*media_session_, Resume(_)).Times(0);
226 MediaSessionChanged(true, false); 217 MediaSessionChanged(true, false);
227 media_blocker_->BlockMediaLoading(true); 218 media_blocker_->BlockMediaLoading(true);
228 MediaSessionChanged(true, true); 219 MediaSessionChanged(true, true);
229 MediaSessionChanged(false, true); 220 MediaSessionChanged(false, true);
230 media_blocker_->BlockMediaLoading(false); 221 media_blocker_->BlockMediaLoading(false);
231 testing::Mock::VerifyAndClearExpectations(media_session_.get()); 222 testing::Mock::VerifyAndClearExpectations(media_session_.get());
232 223
233 EXPECT_CALL(*media_session_, Suspend(_)).Times(0); 224 EXPECT_CALL(*media_session_, Suspend(_)).Times(0);
234 EXPECT_CALL(*media_session_, Resume(_)).Times(1); 225 EXPECT_CALL(*media_session_, Resume(_)).Times(1);
235 MediaSessionChanged(true, true); 226 MediaSessionChanged(true, true);
236 } 227 }
237 228
238 TEST_F(CastMediaBlockerTest, DISABLED_No_Resume) { 229 TEST_F(CastMediaBlockerTest, No_Resume) {
239 // Tests CastMediaBlocker will not resume if media starts playing by itself 230 // Tests CastMediaBlocker will not resume if media starts playing by itself
240 // after unblock. 231 // after unblock.
241 EXPECT_CALL(*media_session_, Suspend(_)).Times(1); 232 EXPECT_CALL(*media_session_, Suspend(_)).Times(1);
242 EXPECT_CALL(*media_session_, Resume(_)).Times(0); 233 EXPECT_CALL(*media_session_, Resume(_)).Times(0);
243 MediaSessionChanged(true, false); 234 MediaSessionChanged(true, false);
244 media_blocker_->BlockMediaLoading(true); 235 media_blocker_->BlockMediaLoading(true);
245 MediaSessionChanged(true, true); 236 MediaSessionChanged(true, true);
246 MediaSessionChanged(false, true); 237 MediaSessionChanged(false, true);
247 media_blocker_->BlockMediaLoading(false); 238 media_blocker_->BlockMediaLoading(false);
248 testing::Mock::VerifyAndClearExpectations(media_session_.get()); 239 testing::Mock::VerifyAndClearExpectations(media_session_.get());
249 240
250 EXPECT_CALL(*media_session_, Suspend(_)).Times(0); 241 EXPECT_CALL(*media_session_, Suspend(_)).Times(0);
251 EXPECT_CALL(*media_session_, Resume(_)).Times(0); 242 EXPECT_CALL(*media_session_, Resume(_)).Times(0);
252 MediaSessionChanged(false, false); 243 MediaSessionChanged(false, false);
253 } 244 }
254 245
255 TEST_F(CastMediaBlockerTest, DISABLED_Block_Before_Resume) { 246 TEST_F(CastMediaBlockerTest, Block_Before_Resume) {
256 // Tests CastMediaBlocker does not resume if blocked again after an unblock. 247 // Tests CastMediaBlocker does not resume if blocked again after an unblock.
257 EXPECT_CALL(*media_session_, Suspend(_)).Times(1); 248 EXPECT_CALL(*media_session_, Suspend(_)).Times(1);
258 EXPECT_CALL(*media_session_, Resume(_)).Times(0); 249 EXPECT_CALL(*media_session_, Resume(_)).Times(0);
259 MediaSessionChanged(true, false); 250 MediaSessionChanged(true, false);
260 media_blocker_->BlockMediaLoading(true); 251 media_blocker_->BlockMediaLoading(true);
261 MediaSessionChanged(true, true); 252 MediaSessionChanged(true, true);
262 MediaSessionChanged(false, true); 253 MediaSessionChanged(false, true);
263 media_blocker_->BlockMediaLoading(false); 254 media_blocker_->BlockMediaLoading(false);
264 testing::Mock::VerifyAndClearExpectations(media_session_.get()); 255 testing::Mock::VerifyAndClearExpectations(media_session_.get());
265 256
266 EXPECT_CALL(*media_session_, Suspend(_)).Times(0); 257 EXPECT_CALL(*media_session_, Suspend(_)).Times(0);
267 EXPECT_CALL(*media_session_, Resume(_)).Times(0); 258 EXPECT_CALL(*media_session_, Resume(_)).Times(0);
268 media_blocker_->BlockMediaLoading(true); 259 media_blocker_->BlockMediaLoading(true);
269 MediaSessionChanged(true, true); 260 MediaSessionChanged(true, true);
270 } 261 }
271 262
272 TEST_F(CastMediaBlockerTest, DISABLED_Unblocked_Already_Playing) { 263 TEST_F(CastMediaBlockerTest, Unblocked_Already_Playing) {
273 // Tests CastMediaBlocker does not resume if unblocked and media is playing. 264 // Tests CastMediaBlocker does not resume if unblocked and media is playing.
274 EXPECT_CALL(*media_session_, Suspend(_)).Times(1); 265 EXPECT_CALL(*media_session_, Suspend(_)).Times(1);
275 EXPECT_CALL(*media_session_, Resume(_)).Times(0); 266 EXPECT_CALL(*media_session_, Resume(_)).Times(0);
276 MediaSessionChanged(true, false); 267 MediaSessionChanged(true, false);
277 media_blocker_->BlockMediaLoading(true); 268 media_blocker_->BlockMediaLoading(true);
278 media_blocker_->BlockMediaLoading(false); 269 media_blocker_->BlockMediaLoading(false);
279 } 270 }
280 271
281 } // namespace shell 272 } // namespace shell
282 } // namespace chromecast 273 } // namespace chromecast
OLDNEW
« no previous file with comments | « no previous file | content/browser/media/session/media_session_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698