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

Side by Side Diff: media/blink/webmediaplayer_impl_unittest.cc

Issue 2289543005: Allow suspension prior to reaching kHaveFutureData. (Closed)
Patch Set: Created 4 years, 3 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 "media/blink/webmediaplayer_impl.h" 5 #include "media/blink/webmediaplayer_impl.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <memory> 9 #include <memory>
10 10
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 145
146 web_view_->close(); 146 web_view_->close();
147 web_local_frame_->close(); 147 web_local_frame_->close();
148 } 148 }
149 149
150 protected: 150 protected:
151 void SetReadyState(blink::WebMediaPlayer::ReadyState state) { 151 void SetReadyState(blink::WebMediaPlayer::ReadyState state) {
152 wmpi_->SetReadyState(state); 152 wmpi_->SetReadyState(state);
153 } 153 }
154 154
155 void SetPlaybackState(bool is_paused) {
156 wmpi_->client_playback_state_ =
157 is_paused ? blink::WebMediaPlayer::PlaybackState::Paused
158 : blink::WebMediaPlayer::PlaybackState::Playing;
159 }
160
155 void SetPaused(bool is_paused) { wmpi_->paused_ = is_paused; } 161 void SetPaused(bool is_paused) { wmpi_->paused_ = is_paused; }
156 void SetSeeking(bool is_seeking) { wmpi_->seeking_ = is_seeking; } 162 void SetSeeking(bool is_seeking) { wmpi_->seeking_ = is_seeking; }
157 void SetEnded(bool is_ended) { wmpi_->ended_ = is_ended; } 163 void SetEnded(bool is_ended) { wmpi_->ended_ = is_ended; }
158 164
159 void SetFullscreen(bool is_fullscreen) { 165 void SetFullscreen(bool is_fullscreen) {
160 wmpi_->overlay_enabled_ = is_fullscreen; 166 wmpi_->overlay_enabled_ = is_fullscreen;
161 } 167 }
162 168
163 void SetMetadata(bool has_audio, bool has_video) { 169 void SetMetadata(bool has_audio, bool has_video) {
164 wmpi_->SetNetworkState(blink::WebMediaPlayer::NetworkStateLoaded); 170 wmpi_->SetNetworkState(blink::WebMediaPlayer::NetworkStateLoaded);
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 scoped_refptr<MediaLog> media_log_; 236 scoped_refptr<MediaLog> media_log_;
231 linked_ptr<media::UrlIndex> url_index_; 237 linked_ptr<media::UrlIndex> url_index_;
232 238
233 // Audio hardware configuration. 239 // Audio hardware configuration.
234 AudioParameters audio_parameters_; 240 AudioParameters audio_parameters_;
235 241
236 // The client interface used by |wmpi_|. Just a dummy for now, but later we 242 // The client interface used by |wmpi_|. Just a dummy for now, but later we
237 // may want a mock or intelligent fake. 243 // may want a mock or intelligent fake.
238 DummyWebMediaPlayerClient client_; 244 DummyWebMediaPlayerClient client_;
239 245
240 MockWebMediaPlayerDelegate delegate_; 246 testing::NiceMock<MockWebMediaPlayerDelegate> delegate_;
241 247
242 // The WebMediaPlayerImpl instance under test. 248 // The WebMediaPlayerImpl instance under test.
243 std::unique_ptr<WebMediaPlayerImpl> wmpi_; 249 std::unique_ptr<WebMediaPlayerImpl> wmpi_;
244 250
245 private: 251 private:
246 DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerImplTest); 252 DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerImplTest);
247 }; 253 };
248 254
249 TEST_F(WebMediaPlayerImplTest, ConstructAndDestroy) {} 255 TEST_F(WebMediaPlayerImplTest, ConstructAndDestroy) {}
250 256
251 TEST_F(WebMediaPlayerImplTest, ComputePlayState_AfterConstruction) { 257 TEST_F(WebMediaPlayerImplTest, ComputePlayState_AfterConstruction) {
252 WebMediaPlayerImpl::PlayState state; 258 WebMediaPlayerImpl::PlayState state;
253 259
254 state = ComputePlayState(); 260 state = ComputePlayState();
255 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); 261 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state);
256 EXPECT_FALSE(state.is_memory_reporting_enabled); 262 EXPECT_FALSE(state.is_memory_reporting_enabled);
257 EXPECT_FALSE(state.is_suspended); 263 EXPECT_FALSE(state.is_suspended);
258 264
259 state = ComputeBackgroundedPlayState(); 265 state = ComputeBackgroundedPlayState();
260 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); 266 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state);
261 EXPECT_FALSE(state.is_memory_reporting_enabled); 267 EXPECT_FALSE(state.is_memory_reporting_enabled);
262 EXPECT_FALSE(state.is_suspended); 268 EXPECT_TRUE(state.is_suspended);
263 269
264 state = ComputeMustSuspendPlayState(); 270 state = ComputeMustSuspendPlayState();
265 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); 271 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state);
266 EXPECT_FALSE(state.is_memory_reporting_enabled); 272 EXPECT_FALSE(state.is_memory_reporting_enabled);
267 EXPECT_TRUE(state.is_suspended); 273 EXPECT_TRUE(state.is_suspended);
268 } 274 }
269 275
270 TEST_F(WebMediaPlayerImplTest, ComputePlayState_AfterMetadata) { 276 TEST_F(WebMediaPlayerImplTest, ComputePlayState_AfterMetadata) {
271 WebMediaPlayerImpl::PlayState state; 277 WebMediaPlayerImpl::PlayState state;
272 SetMetadata(true, true); 278 SetMetadata(true, true);
(...skipping 17 matching lines...) Expand all
290 TEST_F(WebMediaPlayerImplTest, ComputePlayState_AfterMetadata_AudioOnly) { 296 TEST_F(WebMediaPlayerImplTest, ComputePlayState_AfterMetadata_AudioOnly) {
291 WebMediaPlayerImpl::PlayState state; 297 WebMediaPlayerImpl::PlayState state;
292 SetMetadata(true, false); 298 SetMetadata(true, false);
293 299
294 state = ComputePlayState(); 300 state = ComputePlayState();
295 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); 301 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state);
296 EXPECT_FALSE(state.is_memory_reporting_enabled); 302 EXPECT_FALSE(state.is_memory_reporting_enabled);
297 EXPECT_FALSE(state.is_suspended); 303 EXPECT_FALSE(state.is_suspended);
298 304
299 SetPaused(false); 305 SetPaused(false);
306 SetPlaybackState(false);
300 state = ComputeBackgroundedPlayState(); 307 state = ComputeBackgroundedPlayState();
301 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); 308 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state);
302 EXPECT_FALSE(state.is_memory_reporting_enabled); 309 EXPECT_FALSE(state.is_memory_reporting_enabled);
303 EXPECT_FALSE(state.is_suspended); 310 EXPECT_FALSE(state.is_suspended);
304 311
305 state = ComputeMustSuspendPlayState(); 312 state = ComputeMustSuspendPlayState();
306 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); 313 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state);
307 EXPECT_FALSE(state.is_memory_reporting_enabled); 314 EXPECT_FALSE(state.is_memory_reporting_enabled);
308 EXPECT_TRUE(state.is_suspended); 315 EXPECT_TRUE(state.is_suspended);
309 } 316 }
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
466 state = ComputeIdlePlayState(); 473 state = ComputeIdlePlayState();
467 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::ENDED, state.delegate_state); 474 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::ENDED, state.delegate_state);
468 EXPECT_FALSE(state.is_memory_reporting_enabled); 475 EXPECT_FALSE(state.is_memory_reporting_enabled);
469 EXPECT_TRUE(state.is_suspended); 476 EXPECT_TRUE(state.is_suspended);
470 } 477 }
471 478
472 TEST_F(WebMediaPlayerImplTest, ComputePlayState_Suspended) { 479 TEST_F(WebMediaPlayerImplTest, ComputePlayState_Suspended) {
473 WebMediaPlayerImpl::PlayState state; 480 WebMediaPlayerImpl::PlayState state;
474 SetMetadata(true, true); 481 SetMetadata(true, true);
475 482
476 // Suspended players should be resumed unless we have reached the appropriate 483 SetPlaybackState(false);
477 // ready state and are not seeking.
478 SetPaused(true); 484 SetPaused(true);
479 state = ComputePlayStateSuspended(); 485 state = ComputePlayStateSuspended();
480 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); 486 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state);
481 EXPECT_FALSE(state.is_memory_reporting_enabled); 487 EXPECT_FALSE(state.is_memory_reporting_enabled);
482 EXPECT_FALSE(state.is_suspended); 488 EXPECT_FALSE(state.is_suspended);
483 489
484 SetPaused(false); 490 SetPlaybackState(true);
485 state = ComputePlayStateSuspended(); 491 state = ComputePlayStateSuspended();
486 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state); 492 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state);
487 EXPECT_FALSE(state.is_memory_reporting_enabled); 493 EXPECT_FALSE(state.is_memory_reporting_enabled);
494 EXPECT_TRUE(state.is_suspended);
495
496 // Suspended players should be resumed unless we have reached the appropriate
497 // ready state and are not seeking.
498 SetPaused(false);
499 SetPlaybackState(false);
500 state = ComputePlayStateSuspended();
501 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::GONE, state.delegate_state);
502 EXPECT_FALSE(state.is_memory_reporting_enabled);
488 EXPECT_FALSE(state.is_suspended); 503 EXPECT_FALSE(state.is_suspended);
489 504
490 SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData); 505 SetReadyState(blink::WebMediaPlayer::ReadyStateHaveFutureData);
491 506
492 // Paused players should stay suspended. 507 // Paused players should stay suspended.
493 SetPaused(true); 508 SetPaused(true);
494 state = ComputePlayStateSuspended(); 509 state = ComputePlayStateSuspended();
495 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::PAUSED, state.delegate_state); 510 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::PAUSED, state.delegate_state);
496 EXPECT_FALSE(state.is_memory_reporting_enabled); 511 EXPECT_FALSE(state.is_memory_reporting_enabled);
497 EXPECT_TRUE(state.is_suspended); 512 EXPECT_TRUE(state.is_suspended);
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
579 EXPECT_CALL(delegate_, IsPlayingBackgroundVideo()).WillOnce(Return(false)); 594 EXPECT_CALL(delegate_, IsPlayingBackgroundVideo()).WillOnce(Return(false));
580 EXPECT_CALL(delegate_, IsHidden()).WillRepeatedly(Return(true)); 595 EXPECT_CALL(delegate_, IsHidden()).WillRepeatedly(Return(true));
581 596
582 state = ComputeBackgroundedPlayState(); 597 state = ComputeBackgroundedPlayState();
583 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::PAUSED, state.delegate_state); 598 EXPECT_EQ(WebMediaPlayerImpl::DelegateState::PAUSED, state.delegate_state);
584 EXPECT_FALSE(state.is_memory_reporting_enabled); 599 EXPECT_FALSE(state.is_memory_reporting_enabled);
585 EXPECT_TRUE(state.is_suspended); 600 EXPECT_TRUE(state.is_suspended);
586 } 601 }
587 602
588 } // namespace media 603 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698