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 |