| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |