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

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

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

Powered by Google App Engine
This is Rietveld 408576698