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

Side by Side Diff: content/browser/media/session/media_session_impl_browsertest.cc

Issue 2758773003: Clean up MediaSessionImpl state interfaces (Closed)
Patch Set: fixed build Created 3 years, 9 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 | « content/browser/media/session/media_session_impl.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "content/browser/media/session/media_session_impl.h" 5 #include "content/browser/media/session/media_session_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <list> 9 #include <list>
10 #include <vector> 10 #include <vector>
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 111
112 void RemovePlayers(MockMediaSessionPlayerObserver* player_observer) { 112 void RemovePlayers(MockMediaSessionPlayerObserver* player_observer) {
113 media_session_->RemovePlayers(player_observer); 113 media_session_->RemovePlayers(player_observer);
114 } 114 }
115 115
116 void OnPlayerPaused(MockMediaSessionPlayerObserver* player_observer, 116 void OnPlayerPaused(MockMediaSessionPlayerObserver* player_observer,
117 int player_id) { 117 int player_id) {
118 media_session_->OnPlayerPaused(player_observer, player_id); 118 media_session_->OnPlayerPaused(player_observer, player_id);
119 } 119 }
120 120
121 bool HasAudioFocus() { return media_session_->IsActiveForTest(); } 121 bool IsActive() { return media_session_->IsActive(); }
122 122
123 content::AudioFocusManager::AudioFocusType GetSessionAudioFocusType() { 123 content::AudioFocusManager::AudioFocusType GetSessionAudioFocusType() {
124 return media_session_->audio_focus_type(); 124 return media_session_->audio_focus_type();
125 } 125 }
126 126
127 bool IsControllable() { return media_session_->IsControllable(); } 127 bool IsControllable() { return media_session_->IsControllable(); }
128 128
129 bool IsSuspended() { return media_session_->IsSuspended(); }
130
131 void UIResume() { media_session_->Resume(MediaSession::SuspendType::UI); } 129 void UIResume() { media_session_->Resume(MediaSession::SuspendType::UI); }
132 130
133 void SystemResume() { 131 void SystemResume() {
134 media_session_->OnResumeInternal(MediaSession::SuspendType::SYSTEM); 132 media_session_->OnResumeInternal(MediaSession::SuspendType::SYSTEM);
135 } 133 }
136 134
137 void UISuspend() { media_session_->Suspend(MediaSession::SuspendType::UI); } 135 void UISuspend() { media_session_->Suspend(MediaSession::SuspendType::UI); }
138 136
139 void SystemSuspend(bool temporary) { 137 void SystemSuspend(bool temporary) {
140 media_session_->OnSuspendInternal(MediaSession::SuspendType::SYSTEM, 138 media_session_->OnSuspendInternal(MediaSession::SuspendType::SYSTEM,
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
302 300
303 EXPECT_EQ(kDefaultVolumeMultiplier, player_observer->GetVolumeMultiplier(0)); 301 EXPECT_EQ(kDefaultVolumeMultiplier, player_observer->GetVolumeMultiplier(0));
304 EXPECT_EQ(kDefaultVolumeMultiplier, player_observer->GetVolumeMultiplier(1)); 302 EXPECT_EQ(kDefaultVolumeMultiplier, player_observer->GetVolumeMultiplier(1));
305 303
306 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 304 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
307 305
308 EXPECT_EQ(kDefaultVolumeMultiplier, player_observer->GetVolumeMultiplier(2)); 306 EXPECT_EQ(kDefaultVolumeMultiplier, player_observer->GetVolumeMultiplier(2));
309 } 307 }
310 308
311 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, AudioFocusInitialState) { 309 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, AudioFocusInitialState) {
312 EXPECT_FALSE(HasAudioFocus()); 310 EXPECT_FALSE(IsActive());
313 } 311 }
314 312
315 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, StartPlayerGivesFocus) { 313 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, StartPlayerGivesFocus) {
316 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 314 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
317 315
318 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 316 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
319 317
320 EXPECT_TRUE(HasAudioFocus()); 318 EXPECT_TRUE(IsActive());
321 } 319 }
322 320
323 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 321 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
324 SuspendGivesAwayAudioFocus) { 322 SuspendGivesAwayAudioFocus) {
325 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 323 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
326 324
327 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 325 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
328 326
329 SystemSuspend(true); 327 SystemSuspend(true);
330 328
331 EXPECT_FALSE(HasAudioFocus()); 329 EXPECT_FALSE(IsActive());
332 } 330 }
333 331
334 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, StopGivesAwayAudioFocus) { 332 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, StopGivesAwayAudioFocus) {
335 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 333 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
336 334
337 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 335 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
338 336
339 media_session_->Stop(MediaSession::SuspendType::UI); 337 media_session_->Stop(MediaSession::SuspendType::UI);
340 338
341 EXPECT_FALSE(HasAudioFocus()); 339 EXPECT_FALSE(IsActive());
342 } 340 }
343 341
344 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, ResumeGivesBackAudioFocus) { 342 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, ResumeGivesBackAudioFocus) {
345 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 343 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
346 344
347 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 345 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
348 346
349 SystemSuspend(true); 347 SystemSuspend(true);
350 SystemResume(); 348 SystemResume();
351 349
352 EXPECT_TRUE(HasAudioFocus()); 350 EXPECT_TRUE(IsActive());
353 } 351 }
354 352
355 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 353 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
356 RemovingLastPlayerDropsAudioFocus) { 354 RemovingLastPlayerDropsAudioFocus) {
357 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 355 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
358 356
359 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 357 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
360 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 358 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
361 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 359 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
362 360
363 RemovePlayer(player_observer.get(), 0); 361 RemovePlayer(player_observer.get(), 0);
364 EXPECT_TRUE(HasAudioFocus()); 362 EXPECT_TRUE(IsActive());
365 RemovePlayer(player_observer.get(), 1); 363 RemovePlayer(player_observer.get(), 1);
366 EXPECT_TRUE(HasAudioFocus()); 364 EXPECT_TRUE(IsActive());
367 RemovePlayer(player_observer.get(), 2); 365 RemovePlayer(player_observer.get(), 2);
368 EXPECT_FALSE(HasAudioFocus()); 366 EXPECT_FALSE(IsActive());
369 } 367 }
370 368
371 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 369 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
372 RemovingLastPlayerFromManyObserversDropsAudioFocus) { 370 RemovingLastPlayerFromManyObserversDropsAudioFocus) {
373 auto player_observer_1 = base::MakeUnique<MockMediaSessionPlayerObserver>(); 371 auto player_observer_1 = base::MakeUnique<MockMediaSessionPlayerObserver>();
374 auto player_observer_2 = base::MakeUnique<MockMediaSessionPlayerObserver>(); 372 auto player_observer_2 = base::MakeUnique<MockMediaSessionPlayerObserver>();
375 auto player_observer_3 = base::MakeUnique<MockMediaSessionPlayerObserver>(); 373 auto player_observer_3 = base::MakeUnique<MockMediaSessionPlayerObserver>();
376 374
377 StartNewPlayer(player_observer_1.get(), media::MediaContentType::Persistent); 375 StartNewPlayer(player_observer_1.get(), media::MediaContentType::Persistent);
378 StartNewPlayer(player_observer_2.get(), media::MediaContentType::Persistent); 376 StartNewPlayer(player_observer_2.get(), media::MediaContentType::Persistent);
379 StartNewPlayer(player_observer_3.get(), media::MediaContentType::Persistent); 377 StartNewPlayer(player_observer_3.get(), media::MediaContentType::Persistent);
380 378
381 RemovePlayer(player_observer_1.get(), 0); 379 RemovePlayer(player_observer_1.get(), 0);
382 EXPECT_TRUE(HasAudioFocus()); 380 EXPECT_TRUE(IsActive());
383 RemovePlayer(player_observer_2.get(), 0); 381 RemovePlayer(player_observer_2.get(), 0);
384 EXPECT_TRUE(HasAudioFocus()); 382 EXPECT_TRUE(IsActive());
385 RemovePlayer(player_observer_3.get(), 0); 383 RemovePlayer(player_observer_3.get(), 0);
386 EXPECT_FALSE(HasAudioFocus()); 384 EXPECT_FALSE(IsActive());
387 } 385 }
388 386
389 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 387 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
390 RemovingAllPlayersFromObserversDropsAudioFocus) { 388 RemovingAllPlayersFromObserversDropsAudioFocus) {
391 auto player_observer_1 = base::MakeUnique<MockMediaSessionPlayerObserver>(); 389 auto player_observer_1 = base::MakeUnique<MockMediaSessionPlayerObserver>();
392 auto player_observer_2 = base::MakeUnique<MockMediaSessionPlayerObserver>(); 390 auto player_observer_2 = base::MakeUnique<MockMediaSessionPlayerObserver>();
393 391
394 StartNewPlayer(player_observer_1.get(), media::MediaContentType::Persistent); 392 StartNewPlayer(player_observer_1.get(), media::MediaContentType::Persistent);
395 StartNewPlayer(player_observer_1.get(), media::MediaContentType::Persistent); 393 StartNewPlayer(player_observer_1.get(), media::MediaContentType::Persistent);
396 StartNewPlayer(player_observer_2.get(), media::MediaContentType::Persistent); 394 StartNewPlayer(player_observer_2.get(), media::MediaContentType::Persistent);
397 StartNewPlayer(player_observer_2.get(), media::MediaContentType::Persistent); 395 StartNewPlayer(player_observer_2.get(), media::MediaContentType::Persistent);
398 396
399 RemovePlayers(player_observer_1.get()); 397 RemovePlayers(player_observer_1.get());
400 EXPECT_TRUE(HasAudioFocus()); 398 EXPECT_TRUE(IsActive());
401 RemovePlayers(player_observer_2.get()); 399 RemovePlayers(player_observer_2.get());
402 EXPECT_FALSE(HasAudioFocus()); 400 EXPECT_FALSE(IsActive());
403 } 401 }
404 402
405 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, ResumePlayGivesAudioFocus) { 403 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, ResumePlayGivesAudioFocus) {
406 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 404 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
407 405
408 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 406 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
409 407
410 RemovePlayer(player_observer.get(), 0); 408 RemovePlayer(player_observer.get(), 0);
411 EXPECT_FALSE(HasAudioFocus()); 409 EXPECT_FALSE(IsActive());
412 410
413 EXPECT_TRUE( 411 EXPECT_TRUE(
414 AddPlayer(player_observer.get(), 0, media::MediaContentType::Persistent)); 412 AddPlayer(player_observer.get(), 0, media::MediaContentType::Persistent));
415 EXPECT_TRUE(HasAudioFocus()); 413 EXPECT_TRUE(IsActive());
416 } 414 }
417 415
418 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 416 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
419 ResumeSuspendAreSentOnlyOncePerPlayers) { 417 ResumeSuspendAreSentOnlyOncePerPlayers) {
420 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 418 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
421 419
422 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 420 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
423 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 421 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
424 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 422 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
425 423
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
521 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, ControlsShowForContent) { 519 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, ControlsShowForContent) {
522 EXPECT_CALL(*mock_media_session_observer(), 520 EXPECT_CALL(*mock_media_session_observer(),
523 MediaSessionStateChanged(true, false)); 521 MediaSessionStateChanged(true, false));
524 522
525 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 523 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
526 524
527 // Starting a player with a content type should show the media controls. 525 // Starting a player with a content type should show the media controls.
528 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 526 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
529 527
530 EXPECT_TRUE(IsControllable()); 528 EXPECT_TRUE(IsControllable());
531 EXPECT_FALSE(IsSuspended()); 529 EXPECT_TRUE(IsActive());
532 } 530 }
533 531
534 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 532 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
535 ControlsNoShowForTransient) { 533 ControlsNoShowForTransient) {
536 EXPECT_CALL(*mock_media_session_observer(), 534 EXPECT_CALL(*mock_media_session_observer(),
537 MediaSessionStateChanged(false, false)); 535 MediaSessionStateChanged(false, false));
538 536
539 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 537 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
540 538
541 // Starting a player with a transient type should not show the media controls. 539 // Starting a player with a transient type should not show the media controls.
542 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient); 540 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient);
543 541
544 EXPECT_FALSE(IsControllable()); 542 EXPECT_FALSE(IsControllable());
545 EXPECT_FALSE(IsSuspended()); 543 EXPECT_TRUE(IsActive());
546 } 544 }
547 545
548 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, ControlsHideWhenStopped) { 546 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, ControlsHideWhenStopped) {
549 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(), 547 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(),
550 MediaSessionStateChanged(true, false)); 548 MediaSessionStateChanged(true, false));
551 EXPECT_CALL(*mock_media_session_observer(), 549 EXPECT_CALL(*mock_media_session_observer(),
552 MediaSessionStateChanged(false, true)) 550 MediaSessionStateChanged(false, true))
553 .After(showControls); 551 .After(showControls);
554 552
555 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 553 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
556 554
557 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 555 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
558 556
559 RemovePlayers(player_observer.get()); 557 RemovePlayers(player_observer.get());
560 558
561 EXPECT_FALSE(IsControllable()); 559 EXPECT_FALSE(IsControllable());
562 EXPECT_TRUE(IsSuspended()); 560 EXPECT_FALSE(IsActive());
563 } 561 }
564 562
565 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 563 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
566 ControlsShownAcceptTransient) { 564 ControlsShownAcceptTransient) {
567 EXPECT_CALL(*mock_media_session_observer(), 565 EXPECT_CALL(*mock_media_session_observer(),
568 MediaSessionStateChanged(true, false)); 566 MediaSessionStateChanged(true, false));
569 567
570 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 568 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
571 569
572 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 570 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
573 571
574 // Transient player join the session without affecting the controls. 572 // Transient player join the session without affecting the controls.
575 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient); 573 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient);
576 574
577 EXPECT_TRUE(IsControllable()); 575 EXPECT_TRUE(IsControllable());
578 EXPECT_FALSE(IsSuspended()); 576 EXPECT_TRUE(IsActive());
579 } 577 }
580 578
581 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 579 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
582 ControlsShownAfterContentAdded) { 580 ControlsShownAfterContentAdded) {
583 Expectation dontShowControls = EXPECT_CALL( 581 Expectation dontShowControls = EXPECT_CALL(
584 *mock_media_session_observer(), MediaSessionStateChanged(false, false)); 582 *mock_media_session_observer(), MediaSessionStateChanged(false, false));
585 EXPECT_CALL(*mock_media_session_observer(), 583 EXPECT_CALL(*mock_media_session_observer(),
586 MediaSessionStateChanged(true, false)) 584 MediaSessionStateChanged(true, false))
587 .After(dontShowControls); 585 .After(dontShowControls);
588 586
589 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 587 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
590 588
591 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient); 589 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient);
592 590
593 // The controls are shown when the content player is added. 591 // The controls are shown when the content player is added.
594 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 592 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
595 593
596 EXPECT_TRUE(IsControllable()); 594 EXPECT_TRUE(IsControllable());
597 EXPECT_FALSE(IsSuspended()); 595 EXPECT_TRUE(IsActive());
598 } 596 }
599 597
600 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 598 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
601 ControlsStayIfOnlyOnePlayerHasBeenPaused) { 599 ControlsStayIfOnlyOnePlayerHasBeenPaused) {
602 EXPECT_CALL(*mock_media_session_observer(), 600 EXPECT_CALL(*mock_media_session_observer(),
603 MediaSessionStateChanged(true, false)); 601 MediaSessionStateChanged(true, false));
604 602
605 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 603 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
606 604
607 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 605 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
608 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient); 606 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient);
609 607
610 // Removing only content player doesn't hide the controls since the session 608 // Removing only content player doesn't hide the controls since the session
611 // is still active. 609 // is still active.
612 RemovePlayer(player_observer.get(), 0); 610 RemovePlayer(player_observer.get(), 0);
613 611
614 EXPECT_TRUE(IsControllable()); 612 EXPECT_TRUE(IsControllable());
615 EXPECT_FALSE(IsSuspended()); 613 EXPECT_TRUE(IsActive());
616 } 614 }
617 615
618 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 616 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
619 ControlsHideWhenTheLastPlayerIsRemoved) { 617 ControlsHideWhenTheLastPlayerIsRemoved) {
620 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(), 618 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(),
621 MediaSessionStateChanged(true, false)); 619 MediaSessionStateChanged(true, false));
622 EXPECT_CALL(*mock_media_session_observer(), 620 EXPECT_CALL(*mock_media_session_observer(),
623 MediaSessionStateChanged(false, true)) 621 MediaSessionStateChanged(false, true))
624 .After(showControls); 622 .After(showControls);
625 623
626 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 624 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
627 625
628 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 626 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
629 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 627 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
630 628
631 RemovePlayer(player_observer.get(), 0); 629 RemovePlayer(player_observer.get(), 0);
632 630
633 EXPECT_TRUE(IsControllable()); 631 EXPECT_TRUE(IsControllable());
634 EXPECT_FALSE(IsSuspended()); 632 EXPECT_TRUE(IsActive());
635 633
636 RemovePlayer(player_observer.get(), 1); 634 RemovePlayer(player_observer.get(), 1);
637 635
638 EXPECT_FALSE(IsControllable()); 636 EXPECT_FALSE(IsControllable());
639 EXPECT_TRUE(IsSuspended()); 637 EXPECT_FALSE(IsActive());
640 } 638 }
641 639
642 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 640 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
643 ControlsHideWhenAllThePlayersAreRemoved) { 641 ControlsHideWhenAllThePlayersAreRemoved) {
644 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(), 642 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(),
645 MediaSessionStateChanged(true, false)); 643 MediaSessionStateChanged(true, false));
646 EXPECT_CALL(*mock_media_session_observer(), 644 EXPECT_CALL(*mock_media_session_observer(),
647 MediaSessionStateChanged(false, true)) 645 MediaSessionStateChanged(false, true))
648 .After(showControls); 646 .After(showControls);
649 647
650 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 648 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
651 649
652 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 650 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
653 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 651 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
654 652
655 RemovePlayers(player_observer.get()); 653 RemovePlayers(player_observer.get());
656 654
657 EXPECT_FALSE(IsControllable()); 655 EXPECT_FALSE(IsControllable());
658 EXPECT_TRUE(IsSuspended()); 656 EXPECT_FALSE(IsActive());
659 } 657 }
660 658
661 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 659 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
662 ControlsNotHideWhenTheLastPlayerIsPaused) { 660 ControlsNotHideWhenTheLastPlayerIsPaused) {
663 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(), 661 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(),
664 MediaSessionStateChanged(true, false)); 662 MediaSessionStateChanged(true, false));
665 EXPECT_CALL(*mock_media_session_observer(), 663 EXPECT_CALL(*mock_media_session_observer(),
666 MediaSessionStateChanged(true, true)) 664 MediaSessionStateChanged(true, true))
667 .After(showControls); 665 .After(showControls);
668 666
669 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 667 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
670 668
671 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 669 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
672 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 670 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
673 671
674 OnPlayerPaused(player_observer.get(), 0); 672 OnPlayerPaused(player_observer.get(), 0);
675 673
676 EXPECT_TRUE(IsControllable()); 674 EXPECT_TRUE(IsControllable());
677 EXPECT_FALSE(IsSuspended()); 675 EXPECT_TRUE(IsActive());
678 676
679 OnPlayerPaused(player_observer.get(), 1); 677 OnPlayerPaused(player_observer.get(), 1);
680 678
681 EXPECT_TRUE(IsControllable()); 679 EXPECT_TRUE(IsControllable());
682 EXPECT_TRUE(IsSuspended()); 680 EXPECT_FALSE(IsActive());
683 } 681 }
684 682
685 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 683 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
686 SuspendTemporaryUpdatesControls) { 684 SuspendTemporaryUpdatesControls) {
687 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(), 685 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(),
688 MediaSessionStateChanged(true, false)); 686 MediaSessionStateChanged(true, false));
689 EXPECT_CALL(*mock_media_session_observer(), 687 EXPECT_CALL(*mock_media_session_observer(),
690 MediaSessionStateChanged(true, true)) 688 MediaSessionStateChanged(true, true))
691 .After(showControls); 689 .After(showControls);
692 690
693 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 691 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
694 692
695 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 693 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
696 694
697 SystemSuspend(true); 695 SystemSuspend(true);
698 696
699 EXPECT_TRUE(IsControllable()); 697 EXPECT_TRUE(IsControllable());
700 EXPECT_TRUE(IsSuspended()); 698 EXPECT_FALSE(IsActive());
701 } 699 }
702 700
703 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 701 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
704 ControlsUpdatedWhenResumed) { 702 ControlsUpdatedWhenResumed) {
705 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(), 703 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(),
706 MediaSessionStateChanged(true, false)); 704 MediaSessionStateChanged(true, false));
707 Expectation pauseControls = EXPECT_CALL(*mock_media_session_observer(), 705 Expectation pauseControls = EXPECT_CALL(*mock_media_session_observer(),
708 MediaSessionStateChanged(true, true)) 706 MediaSessionStateChanged(true, true))
709 .After(showControls); 707 .After(showControls);
710 EXPECT_CALL(*mock_media_session_observer(), 708 EXPECT_CALL(*mock_media_session_observer(),
711 MediaSessionStateChanged(true, false)) 709 MediaSessionStateChanged(true, false))
712 .After(pauseControls); 710 .After(pauseControls);
713 711
714 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 712 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
715 713
716 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 714 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
717 SystemSuspend(true); 715 SystemSuspend(true);
718 SystemResume(); 716 SystemResume();
719 717
720 EXPECT_TRUE(IsControllable()); 718 EXPECT_TRUE(IsControllable());
721 EXPECT_FALSE(IsSuspended()); 719 EXPECT_TRUE(IsActive());
722 } 720 }
723 721
724 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 722 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
725 ControlsHideWhenSessionSuspendedPermanently) { 723 ControlsHideWhenSessionSuspendedPermanently) {
726 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(), 724 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(),
727 MediaSessionStateChanged(true, false)); 725 MediaSessionStateChanged(true, false));
728 EXPECT_CALL(*mock_media_session_observer(), 726 EXPECT_CALL(*mock_media_session_observer(),
729 MediaSessionStateChanged(false, true)) 727 MediaSessionStateChanged(false, true))
730 .After(showControls); 728 .After(showControls);
731 729
732 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 730 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
733 731
734 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 732 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
735 733
736 SystemSuspend(false); 734 SystemSuspend(false);
737 735
738 EXPECT_FALSE(IsControllable()); 736 EXPECT_FALSE(IsControllable());
739 EXPECT_TRUE(IsSuspended()); 737 EXPECT_FALSE(IsActive());
740 } 738 }
741 739
742 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 740 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
743 ConstrolsHideWhenSessionStops) { 741 ConstrolsHideWhenSessionStops) {
744 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(), 742 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(),
745 MediaSessionStateChanged(true, false)); 743 MediaSessionStateChanged(true, false));
746 Expectation pauseControls = EXPECT_CALL(*mock_media_session_observer(), 744 Expectation pauseControls = EXPECT_CALL(*mock_media_session_observer(),
747 MediaSessionStateChanged(true, true)) 745 MediaSessionStateChanged(true, true))
748 .After(showControls); 746 .After(showControls);
749 EXPECT_CALL(*mock_media_session_observer(), 747 EXPECT_CALL(*mock_media_session_observer(),
750 MediaSessionStateChanged(false, true)) 748 MediaSessionStateChanged(false, true))
751 .After(pauseControls); 749 .After(pauseControls);
752 750
753 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 751 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
754 752
755 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 753 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
756 754
757 media_session_->Stop(MediaSession::SuspendType::UI); 755 media_session_->Stop(MediaSession::SuspendType::UI);
758 756
759 EXPECT_FALSE(IsControllable()); 757 EXPECT_FALSE(IsControllable());
760 EXPECT_TRUE(IsSuspended()); 758 EXPECT_FALSE(IsActive());
761 } 759 }
762 760
763 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 761 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
764 ControlsHideWhenSessionChangesFromContentToTransient) { 762 ControlsHideWhenSessionChangesFromContentToTransient) {
765 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(), 763 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(),
766 MediaSessionStateChanged(true, false)); 764 MediaSessionStateChanged(true, false));
767 Expectation pauseControls = EXPECT_CALL(*mock_media_session_observer(), 765 Expectation pauseControls = EXPECT_CALL(*mock_media_session_observer(),
768 MediaSessionStateChanged(true, true)) 766 MediaSessionStateChanged(true, true))
769 .After(showControls); 767 .After(showControls);
770 EXPECT_CALL(*mock_media_session_observer(), 768 EXPECT_CALL(*mock_media_session_observer(),
771 MediaSessionStateChanged(false, false)) 769 MediaSessionStateChanged(false, false))
772 .After(pauseControls); 770 .After(pauseControls);
773 771
774 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 772 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
775 773
776 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 774 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
777 SystemSuspend(true); 775 SystemSuspend(true);
778 776
779 // This should reset the session and change it to a transient, so 777 // This should reset the session and change it to a transient, so
780 // hide the controls. 778 // hide the controls.
781 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient); 779 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient);
782 780
783 EXPECT_FALSE(IsControllable()); 781 EXPECT_FALSE(IsControllable());
784 EXPECT_FALSE(IsSuspended()); 782 EXPECT_TRUE(IsActive());
785 } 783 }
786 784
787 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 785 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
788 ControlsUpdatedWhenNewPlayerResetsSession) { 786 ControlsUpdatedWhenNewPlayerResetsSession) {
789 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(), 787 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(),
790 MediaSessionStateChanged(true, false)); 788 MediaSessionStateChanged(true, false));
791 Expectation pauseControls = EXPECT_CALL(*mock_media_session_observer(), 789 Expectation pauseControls = EXPECT_CALL(*mock_media_session_observer(),
792 MediaSessionStateChanged(true, true)) 790 MediaSessionStateChanged(true, true))
793 .After(showControls); 791 .After(showControls);
794 EXPECT_CALL(*mock_media_session_observer(), 792 EXPECT_CALL(*mock_media_session_observer(),
795 MediaSessionStateChanged(true, false)) 793 MediaSessionStateChanged(true, false))
796 .After(pauseControls); 794 .After(pauseControls);
797 795
798 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 796 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
799 797
800 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 798 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
801 SystemSuspend(true); 799 SystemSuspend(true);
802 800
803 // This should reset the session and update the controls. 801 // This should reset the session and update the controls.
804 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 802 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
805 803
806 EXPECT_TRUE(IsControllable()); 804 EXPECT_TRUE(IsControllable());
807 EXPECT_FALSE(IsSuspended()); 805 EXPECT_TRUE(IsActive());
808 } 806 }
809 807
810 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 808 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
811 ControlsResumedWhenPlayerIsResumed) { 809 ControlsResumedWhenPlayerIsResumed) {
812 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(), 810 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(),
813 MediaSessionStateChanged(true, false)); 811 MediaSessionStateChanged(true, false));
814 Expectation pauseControls = EXPECT_CALL(*mock_media_session_observer(), 812 Expectation pauseControls = EXPECT_CALL(*mock_media_session_observer(),
815 MediaSessionStateChanged(true, true)) 813 MediaSessionStateChanged(true, true))
816 .After(showControls); 814 .After(showControls);
817 EXPECT_CALL(*mock_media_session_observer(), 815 EXPECT_CALL(*mock_media_session_observer(),
818 MediaSessionStateChanged(true, false)) 816 MediaSessionStateChanged(true, false))
819 .After(pauseControls); 817 .After(pauseControls);
820 818
821 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 819 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
822 820
823 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 821 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
824 SystemSuspend(true); 822 SystemSuspend(true);
825 823
826 // This should resume the session and update the controls. 824 // This should resume the session and update the controls.
827 AddPlayer(player_observer.get(), 0, media::MediaContentType::Persistent); 825 AddPlayer(player_observer.get(), 0, media::MediaContentType::Persistent);
828 826
829 EXPECT_TRUE(IsControllable()); 827 EXPECT_TRUE(IsControllable());
830 EXPECT_FALSE(IsSuspended()); 828 EXPECT_TRUE(IsActive());
831 } 829 }
832 830
833 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 831 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
834 ControlsUpdatedDueToResumeSessionAction) { 832 ControlsUpdatedDueToResumeSessionAction) {
835 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(), 833 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(),
836 MediaSessionStateChanged(true, false)); 834 MediaSessionStateChanged(true, false));
837 EXPECT_CALL(*mock_media_session_observer(), 835 EXPECT_CALL(*mock_media_session_observer(),
838 MediaSessionStateChanged(true, true)) 836 MediaSessionStateChanged(true, true))
839 .After(showControls); 837 .After(showControls);
840 838
841 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 839 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
842 840
843 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 841 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
844 UISuspend(); 842 UISuspend();
845 843
846 EXPECT_TRUE(IsControllable()); 844 EXPECT_TRUE(IsControllable());
847 EXPECT_TRUE(IsSuspended()); 845 EXPECT_FALSE(IsActive());
848 } 846 }
849 847
850 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 848 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
851 ControlsUpdatedDueToSuspendSessionAction) { 849 ControlsUpdatedDueToSuspendSessionAction) {
852 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(), 850 Expectation showControls = EXPECT_CALL(*mock_media_session_observer(),
853 MediaSessionStateChanged(true, false)); 851 MediaSessionStateChanged(true, false));
854 Expectation pauseControls = EXPECT_CALL(*mock_media_session_observer(), 852 Expectation pauseControls = EXPECT_CALL(*mock_media_session_observer(),
855 MediaSessionStateChanged(true, true)) 853 MediaSessionStateChanged(true, true))
856 .After(showControls); 854 .After(showControls);
857 EXPECT_CALL(*mock_media_session_observer(), 855 EXPECT_CALL(*mock_media_session_observer(),
858 MediaSessionStateChanged(true, false)) 856 MediaSessionStateChanged(true, false))
859 .After(pauseControls); 857 .After(pauseControls);
860 858
861 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 859 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
862 860
863 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 861 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
864 UISuspend(); 862 UISuspend();
865 UIResume(); 863 UIResume();
866 864
867 EXPECT_TRUE(IsControllable()); 865 EXPECT_TRUE(IsControllable());
868 EXPECT_FALSE(IsSuspended()); 866 EXPECT_TRUE(IsActive());
869 } 867 }
870 868
871 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 869 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
872 ControlsDontShowWhenOneShotIsPresent) { 870 ControlsDontShowWhenOneShotIsPresent) {
873 EXPECT_CALL(*mock_media_session_observer(), 871 EXPECT_CALL(*mock_media_session_observer(),
874 MediaSessionStateChanged(false, false)); 872 MediaSessionStateChanged(false, false));
875 873
876 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 874 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
877 875
878 StartNewPlayer(player_observer.get(), media::MediaContentType::OneShot); 876 StartNewPlayer(player_observer.get(), media::MediaContentType::OneShot);
879 877
880 EXPECT_FALSE(IsControllable()); 878 EXPECT_FALSE(IsControllable());
881 EXPECT_FALSE(IsSuspended()); 879 EXPECT_TRUE(IsActive());
882 880
883 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient); 881 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient);
884 EXPECT_FALSE(IsControllable()); 882 EXPECT_FALSE(IsControllable());
885 EXPECT_FALSE(IsSuspended()); 883 EXPECT_TRUE(IsActive());
886 884
887 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 885 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
888 EXPECT_FALSE(IsControllable()); 886 EXPECT_FALSE(IsControllable());
889 EXPECT_FALSE(IsSuspended()); 887 EXPECT_TRUE(IsActive());
890 } 888 }
891 889
892 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 890 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
893 ControlsHiddenAfterRemoveOneShotWithoutOtherPlayers) { 891 ControlsHiddenAfterRemoveOneShotWithoutOtherPlayers) {
894 Expectation expect_1 = EXPECT_CALL(*mock_media_session_observer(), 892 Expectation expect_1 = EXPECT_CALL(*mock_media_session_observer(),
895 MediaSessionStateChanged(false, false)); 893 MediaSessionStateChanged(false, false));
896 Expectation expect_2 = EXPECT_CALL(*mock_media_session_observer(), 894 Expectation expect_2 = EXPECT_CALL(*mock_media_session_observer(),
897 MediaSessionStateChanged(false, true)) 895 MediaSessionStateChanged(false, true))
898 .After(expect_1); 896 .After(expect_1);
899 EXPECT_CALL(*mock_media_session_observer(), MediaSessionStateChanged(true, _)) 897 EXPECT_CALL(*mock_media_session_observer(), MediaSessionStateChanged(true, _))
900 .Times(0) 898 .Times(0)
901 .After(expect_2); 899 .After(expect_2);
902 900
903 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 901 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
904 902
905 StartNewPlayer(player_observer.get(), media::MediaContentType::OneShot); 903 StartNewPlayer(player_observer.get(), media::MediaContentType::OneShot);
906 RemovePlayer(player_observer.get(), 0); 904 RemovePlayer(player_observer.get(), 0);
907 905
908 EXPECT_FALSE(IsControllable()); 906 EXPECT_FALSE(IsControllable());
909 EXPECT_TRUE(IsSuspended()); 907 EXPECT_FALSE(IsActive());
910 } 908 }
911 909
912 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 910 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
913 ControlsShowAfterRemoveOneShotWithPersistentPresent) { 911 ControlsShowAfterRemoveOneShotWithPersistentPresent) {
914 Expectation uncontrollable = EXPECT_CALL( 912 Expectation uncontrollable = EXPECT_CALL(
915 *mock_media_session_observer(), MediaSessionStateChanged(false, false)); 913 *mock_media_session_observer(), MediaSessionStateChanged(false, false));
916 914
917 EXPECT_CALL(*mock_media_session_observer(), 915 EXPECT_CALL(*mock_media_session_observer(),
918 MediaSessionStateChanged(true, false)) 916 MediaSessionStateChanged(true, false))
919 .After(uncontrollable); 917 .After(uncontrollable);
920 918
921 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 919 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
922 920
923 StartNewPlayer(player_observer.get(), media::MediaContentType::OneShot); 921 StartNewPlayer(player_observer.get(), media::MediaContentType::OneShot);
924 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient); 922 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient);
925 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 923 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
926 924
927 RemovePlayer(player_observer.get(), 0); 925 RemovePlayer(player_observer.get(), 0);
928 926
929 EXPECT_TRUE(IsControllable()); 927 EXPECT_TRUE(IsControllable());
930 EXPECT_FALSE(IsSuspended()); 928 EXPECT_TRUE(IsActive());
931 } 929 }
932 930
933 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 931 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
934 DontSuspendWhenOneShotIsPresent) { 932 DontSuspendWhenOneShotIsPresent) {
935 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 933 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
936 934
937 StartNewPlayer(player_observer.get(), media::MediaContentType::OneShot); 935 StartNewPlayer(player_observer.get(), media::MediaContentType::OneShot);
938 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient); 936 StartNewPlayer(player_observer.get(), media::MediaContentType::Transient);
939 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 937 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
940 938
941 SystemSuspend(false); 939 SystemSuspend(false);
942 940
943 EXPECT_FALSE(IsControllable()); 941 EXPECT_FALSE(IsControllable());
944 EXPECT_FALSE(IsSuspended()); 942 EXPECT_TRUE(IsActive());
945 943
946 EXPECT_EQ(0, player_observer->received_suspend_calls()); 944 EXPECT_EQ(0, player_observer->received_suspend_calls());
947 } 945 }
948 946
949 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 947 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
950 DontResumeBySystemUISuspendedSessions) { 948 DontResumeBySystemUISuspendedSessions) {
951 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 949 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
952 950
953 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 951 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
954 952
955 UISuspend(); 953 UISuspend();
956 EXPECT_TRUE(IsControllable()); 954 EXPECT_TRUE(IsControllable());
957 EXPECT_TRUE(IsSuspended()); 955 EXPECT_FALSE(IsActive());
958 956
959 SystemResume(); 957 SystemResume();
960 EXPECT_TRUE(IsControllable()); 958 EXPECT_TRUE(IsControllable());
961 EXPECT_TRUE(IsSuspended()); 959 EXPECT_FALSE(IsActive());
962 } 960 }
963 961
964 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, 962 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest,
965 AllowUIResumeForSystemSuspend) { 963 AllowUIResumeForSystemSuspend) {
966 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 964 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
967 965
968 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 966 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
969 967
970 SystemSuspend(true); 968 SystemSuspend(true);
971 EXPECT_TRUE(IsControllable()); 969 EXPECT_TRUE(IsControllable());
972 EXPECT_TRUE(IsSuspended()); 970 EXPECT_FALSE(IsActive());
973 971
974 UIResume(); 972 UIResume();
975 EXPECT_TRUE(IsControllable()); 973 EXPECT_TRUE(IsControllable());
976 EXPECT_FALSE(IsSuspended()); 974 EXPECT_TRUE(IsActive());
977 } 975 }
978 976
979 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, ResumeSuspendFromUI) { 977 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, ResumeSuspendFromUI) {
980 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 978 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
981 979
982 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 980 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
983 981
984 UISuspend(); 982 UISuspend();
985 EXPECT_TRUE(IsControllable()); 983 EXPECT_TRUE(IsControllable());
986 EXPECT_TRUE(IsSuspended()); 984 EXPECT_FALSE(IsActive());
987 985
988 UIResume(); 986 UIResume();
989 EXPECT_TRUE(IsControllable()); 987 EXPECT_TRUE(IsControllable());
990 EXPECT_FALSE(IsSuspended()); 988 EXPECT_TRUE(IsActive());
991 } 989 }
992 990
993 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, ResumeSuspendFromSystem) { 991 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, ResumeSuspendFromSystem) {
994 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 992 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
995 993
996 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent); 994 StartNewPlayer(player_observer.get(), media::MediaContentType::Persistent);
997 995
998 SystemSuspend(true); 996 SystemSuspend(true);
999 EXPECT_TRUE(IsControllable()); 997 EXPECT_TRUE(IsControllable());
1000 EXPECT_TRUE(IsSuspended()); 998 EXPECT_FALSE(IsActive());
1001 999
1002 SystemResume(); 1000 SystemResume();
1003 EXPECT_TRUE(IsControllable()); 1001 EXPECT_TRUE(IsControllable());
1004 EXPECT_FALSE(IsSuspended()); 1002 EXPECT_TRUE(IsActive());
1005 } 1003 }
1006 1004
1007 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, OneShotTakesGainFocus) { 1005 IN_PROC_BROWSER_TEST_F(MediaSessionImplBrowserTest, OneShotTakesGainFocus) {
1008 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>(); 1006 auto player_observer = base::MakeUnique<MockMediaSessionPlayerObserver>();
1009 1007
1010 EXPECT_CALL( 1008 EXPECT_CALL(
1011 *mock_audio_focus_delegate(), 1009 *mock_audio_focus_delegate(),
1012 RequestAudioFocus(content::AudioFocusManager::AudioFocusType::Gain)) 1010 RequestAudioFocus(content::AudioFocusManager::AudioFocusType::Gain))
1013 .Times(1); 1011 .Times(1);
1014 EXPECT_CALL(*mock_audio_focus_delegate(), 1012 EXPECT_CALL(*mock_audio_focus_delegate(),
(...skipping 439 matching lines...) Expand 10 before | Expand all | Expand 10 after
1454 // Check if the expectations are met when the observer is newly added. 1452 // Check if the expectations are met when the observer is newly added.
1455 media_session_->RemoveObserver(mock_media_session_observer()); 1453 media_session_->RemoveObserver(mock_media_session_observer());
1456 EXPECT_CALL(*mock_media_session_observer(), 1454 EXPECT_CALL(*mock_media_session_observer(),
1457 MediaSessionStateChanged(true, false)); 1455 MediaSessionStateChanged(true, false));
1458 EXPECT_CALL(*mock_media_session_observer(), 1456 EXPECT_CALL(*mock_media_session_observer(),
1459 MediaSessionMetadataChanged(Eq(metadata))); 1457 MediaSessionMetadataChanged(Eq(metadata)));
1460 EXPECT_CALL(*mock_media_session_observer(), 1458 EXPECT_CALL(*mock_media_session_observer(),
1461 MediaSessionActionsChanged(Eq(expectedActions))); 1459 MediaSessionActionsChanged(Eq(expectedActions)));
1462 media_session_->AddObserver(mock_media_session_observer()); 1460 media_session_->AddObserver(mock_media_session_observer());
1463 } 1461 }
OLDNEW
« no previous file with comments | « content/browser/media/session/media_session_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698