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

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

Issue 1458703003: Media Session API: use MediaMetadata in the browser process. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@media_session_browser_side
Patch Set: nits Created 4 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
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.h" 5 #include "content/browser/media/session/media_session.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 30 matching lines...) Expand all
41 41
42 void AbandonAudioFocus() override { 42 void AbandonAudioFocus() override {
43 } 43 }
44 }; 44 };
45 45
46 class MockWebContentsObserver : public WebContentsObserver { 46 class MockWebContentsObserver : public WebContentsObserver {
47 public: 47 public:
48 MockWebContentsObserver(WebContents* web_contents) 48 MockWebContentsObserver(WebContents* web_contents)
49 : WebContentsObserver(web_contents) {} 49 : WebContentsObserver(web_contents) {}
50 50
51 MOCK_METHOD2(MediaSessionStateChanged, 51 MOCK_METHOD3(MediaSessionStateChanged,
52 void(bool is_controllable, bool is_suspended)); 52 void(bool is_controllable, bool is_suspended,
53 const content::MediaMetadata& metadata));
53 }; 54 };
54 55
55 } // namespace 56 } // namespace
56 57
57 class MediaSessionBrowserTest : public content::ContentBrowserTest { 58 class MediaSessionBrowserTest : public content::ContentBrowserTest {
58 protected: 59 protected:
59 MediaSessionBrowserTest() = default; 60 MediaSessionBrowserTest() = default;
60 61
61 void SetUpOnMainThread() override { 62 void SetUpOnMainThread() override {
62 ContentBrowserTest::SetUpOnMainThread(); 63 ContentBrowserTest::SetUpOnMainThread();
(...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after
481 EXPECT_TRUE(media_session_observer->IsPlaying(0)); 482 EXPECT_TRUE(media_session_observer->IsPlaying(0));
482 EXPECT_TRUE(media_session_observer->IsPlaying(1)); 483 EXPECT_TRUE(media_session_observer->IsPlaying(1));
483 EXPECT_TRUE(media_session_observer->IsPlaying(2)); 484 EXPECT_TRUE(media_session_observer->IsPlaying(2));
484 EXPECT_TRUE(media_session_observer->IsPlaying(3)); 485 EXPECT_TRUE(media_session_observer->IsPlaying(3));
485 486
486 EXPECT_EQ(MediaSession::Type::Content, GetSessionType()); 487 EXPECT_EQ(MediaSession::Type::Content, GetSessionType());
487 } 488 }
488 489
489 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsShowForContent) { 490 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsShowForContent) {
490 EXPECT_CALL(*mock_web_contents_observer(), 491 EXPECT_CALL(*mock_web_contents_observer(),
491 MediaSessionStateChanged(true, false)); 492 MediaSessionStateChanged(true, false, testing::_));
492 493
493 scoped_ptr<MockMediaSessionObserver> media_session_observer( 494 scoped_ptr<MockMediaSessionObserver> media_session_observer(
494 new MockMediaSessionObserver); 495 new MockMediaSessionObserver);
495 496
496 // Starting a player with a content type should show the media controls. 497 // Starting a player with a content type should show the media controls.
497 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 498 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
498 499
499 EXPECT_TRUE(IsControllable()); 500 EXPECT_TRUE(IsControllable());
500 EXPECT_FALSE(IsSuspended()); 501 EXPECT_FALSE(IsSuspended());
501 } 502 }
502 503
503 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsNoShowForTransient) { 504 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsNoShowForTransient) {
504 EXPECT_CALL(*mock_web_contents_observer(), 505 EXPECT_CALL(*mock_web_contents_observer(),
505 MediaSessionStateChanged(false, false)); 506 MediaSessionStateChanged(false, false, testing::_));
506 507
507 scoped_ptr<MockMediaSessionObserver> media_session_observer( 508 scoped_ptr<MockMediaSessionObserver> media_session_observer(
508 new MockMediaSessionObserver); 509 new MockMediaSessionObserver);
509 510
510 // Starting a player with a transient type should not show the media controls. 511 // Starting a player with a transient type should not show the media controls.
511 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Transient); 512 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Transient);
512 513
513 EXPECT_FALSE(IsControllable()); 514 EXPECT_FALSE(IsControllable());
514 EXPECT_FALSE(IsSuspended()); 515 EXPECT_FALSE(IsSuspended());
515 } 516 }
516 517
517 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsHideWhenStopped) { 518 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsHideWhenStopped) {
518 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 519 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
519 MediaSessionStateChanged(true, false)); 520 MediaSessionStateChanged(true, false, testing::_));
520 EXPECT_CALL(*mock_web_contents_observer(), 521 EXPECT_CALL(*mock_web_contents_observer(),
521 MediaSessionStateChanged(false, true)) 522 MediaSessionStateChanged(false, true, testing::_))
522 .After(showControls); 523 .After(showControls);
523 524
524 scoped_ptr<MockMediaSessionObserver> media_session_observer( 525 scoped_ptr<MockMediaSessionObserver> media_session_observer(
525 new MockMediaSessionObserver); 526 new MockMediaSessionObserver);
526 527
527 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 528 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
528 529
529 RemovePlayers(media_session_observer.get()); 530 RemovePlayers(media_session_observer.get());
530 531
531 EXPECT_FALSE(IsControllable()); 532 EXPECT_FALSE(IsControllable());
532 EXPECT_TRUE(IsSuspended()); 533 EXPECT_TRUE(IsSuspended());
533 } 534 }
534 535
535 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsShownAcceptTransient) { 536 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsShownAcceptTransient) {
536 EXPECT_CALL(*mock_web_contents_observer(), 537 EXPECT_CALL(*mock_web_contents_observer(),
537 MediaSessionStateChanged(true, false)); 538 MediaSessionStateChanged(true, false, testing::_));
538 539
539 scoped_ptr<MockMediaSessionObserver> media_session_observer( 540 scoped_ptr<MockMediaSessionObserver> media_session_observer(
540 new MockMediaSessionObserver); 541 new MockMediaSessionObserver);
541 542
542 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 543 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
543 544
544 // Transient player join the session without affecting the controls. 545 // Transient player join the session without affecting the controls.
545 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Transient); 546 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Transient);
546 547
547 EXPECT_TRUE(IsControllable()); 548 EXPECT_TRUE(IsControllable());
548 EXPECT_FALSE(IsSuspended()); 549 EXPECT_FALSE(IsSuspended());
549 } 550 }
550 551
551 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 552 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
552 ControlsShownAfterContentAdded) { 553 ControlsShownAfterContentAdded) {
553 Expectation dontShowControls = EXPECT_CALL( 554 Expectation dontShowControls = EXPECT_CALL(*mock_web_contents_observer(),
554 *mock_web_contents_observer(), MediaSessionStateChanged(false, false)); 555 MediaSessionStateChanged(false, false, testing::_));
555 EXPECT_CALL(*mock_web_contents_observer(), 556 EXPECT_CALL(*mock_web_contents_observer(),
556 MediaSessionStateChanged(true, false)) 557 MediaSessionStateChanged(true, false, testing::_))
557 .After(dontShowControls); 558 .After(dontShowControls);
558 559
559 scoped_ptr<MockMediaSessionObserver> media_session_observer( 560 scoped_ptr<MockMediaSessionObserver> media_session_observer(
560 new MockMediaSessionObserver); 561 new MockMediaSessionObserver);
561 562
562 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Transient); 563 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Transient);
563 564
564 // The controls are shown when the content player is added. 565 // The controls are shown when the content player is added.
565 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 566 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
566 567
567 EXPECT_TRUE(IsControllable()); 568 EXPECT_TRUE(IsControllable());
568 EXPECT_FALSE(IsSuspended()); 569 EXPECT_FALSE(IsSuspended());
569 } 570 }
570 571
571 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 572 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
572 ControlsStayIfOnlyOnePlayerHasBeenPaused) { 573 ControlsStayIfOnlyOnePlayerHasBeenPaused) {
573 EXPECT_CALL(*mock_web_contents_observer(), 574 EXPECT_CALL(*mock_web_contents_observer(),
574 MediaSessionStateChanged(true, false)); 575 MediaSessionStateChanged(true, false, testing::_));
575 576
576 scoped_ptr<MockMediaSessionObserver> media_session_observer( 577 scoped_ptr<MockMediaSessionObserver> media_session_observer(
577 new MockMediaSessionObserver); 578 new MockMediaSessionObserver);
578 579
579 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 580 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
580 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Transient); 581 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Transient);
581 582
582 // Removing only content player doesn't hide the controls since the session 583 // Removing only content player doesn't hide the controls since the session
583 // is still active. 584 // is still active.
584 RemovePlayer(media_session_observer.get(), 0); 585 RemovePlayer(media_session_observer.get(), 0);
585 586
586 EXPECT_TRUE(IsControllable()); 587 EXPECT_TRUE(IsControllable());
587 EXPECT_FALSE(IsSuspended()); 588 EXPECT_FALSE(IsSuspended());
588 } 589 }
589 590
590 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 591 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
591 ControlsHideWhenTheLastPlayerIsRemoved) { 592 ControlsHideWhenTheLastPlayerIsRemoved) {
592 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 593 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
593 MediaSessionStateChanged(true, false)); 594 MediaSessionStateChanged(true, false, testing::_));
594 EXPECT_CALL(*mock_web_contents_observer(), 595 EXPECT_CALL(*mock_web_contents_observer(),
595 MediaSessionStateChanged(false, true)) 596 MediaSessionStateChanged(false, true, testing::_))
596 .After(showControls); 597 .After(showControls);
597 scoped_ptr<MockMediaSessionObserver> media_session_observer( 598 scoped_ptr<MockMediaSessionObserver> media_session_observer(
598 new MockMediaSessionObserver); 599 new MockMediaSessionObserver);
599 600
600 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 601 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
601 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 602 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
602 603
603 RemovePlayer(media_session_observer.get(), 0); 604 RemovePlayer(media_session_observer.get(), 0);
604 605
605 EXPECT_TRUE(IsControllable()); 606 EXPECT_TRUE(IsControllable());
606 EXPECT_FALSE(IsSuspended()); 607 EXPECT_FALSE(IsSuspended());
607 608
608 RemovePlayer(media_session_observer.get(), 1); 609 RemovePlayer(media_session_observer.get(), 1);
609 610
610 EXPECT_FALSE(IsControllable()); 611 EXPECT_FALSE(IsControllable());
611 EXPECT_TRUE(IsSuspended()); 612 EXPECT_TRUE(IsSuspended());
612 } 613 }
613 614
614 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 615 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
615 ControlsHideWhenAllThePlayersAreRemoved) { 616 ControlsHideWhenAllThePlayersAreRemoved) {
616 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 617 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
617 MediaSessionStateChanged(true, false)); 618 MediaSessionStateChanged(true, false, testing::_));
618 EXPECT_CALL(*mock_web_contents_observer(), 619 EXPECT_CALL(*mock_web_contents_observer(),
619 MediaSessionStateChanged(false, true)) 620 MediaSessionStateChanged(false, true, testing::_))
620 .After(showControls); 621 .After(showControls);
621 622
622 scoped_ptr<MockMediaSessionObserver> media_session_observer( 623 scoped_ptr<MockMediaSessionObserver> media_session_observer(
623 new MockMediaSessionObserver); 624 new MockMediaSessionObserver);
624 625
625 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 626 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
626 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 627 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
627 628
628 RemovePlayers(media_session_observer.get()); 629 RemovePlayers(media_session_observer.get());
629 630
630 EXPECT_FALSE(IsControllable()); 631 EXPECT_FALSE(IsControllable());
631 EXPECT_TRUE(IsSuspended()); 632 EXPECT_TRUE(IsSuspended());
632 } 633 }
633 634
634 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 635 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
635 ControlsNotHideWhenTheLastPlayerIsPaused) { 636 ControlsNotHideWhenTheLastPlayerIsPaused) {
636 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 637 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
637 MediaSessionStateChanged(true, false)); 638 MediaSessionStateChanged(true, false, testing::_));
638 EXPECT_CALL(*mock_web_contents_observer(), 639 EXPECT_CALL(*mock_web_contents_observer(),
639 MediaSessionStateChanged(true, true)) 640 MediaSessionStateChanged(true, true, testing::_))
640 .After(showControls); 641 .After(showControls);
641 642
642 scoped_ptr<MockMediaSessionObserver> media_session_observer( 643 scoped_ptr<MockMediaSessionObserver> media_session_observer(
643 new MockMediaSessionObserver); 644 new MockMediaSessionObserver);
644 645
645 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 646 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
646 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 647 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
647 648
648 OnPlayerPaused(media_session_observer.get(), 0); 649 OnPlayerPaused(media_session_observer.get(), 0);
649 650
650 EXPECT_TRUE(IsControllable()); 651 EXPECT_TRUE(IsControllable());
651 EXPECT_FALSE(IsSuspended()); 652 EXPECT_FALSE(IsSuspended());
652 653
653 OnPlayerPaused(media_session_observer.get(), 1); 654 OnPlayerPaused(media_session_observer.get(), 1);
654 655
655 EXPECT_TRUE(IsControllable()); 656 EXPECT_TRUE(IsControllable());
656 EXPECT_TRUE(IsSuspended()); 657 EXPECT_TRUE(IsSuspended());
657 } 658 }
658 659
659 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 660 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
660 SuspendTemporaryUpdatesControls) { 661 SuspendTemporaryUpdatesControls) {
661 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 662 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
662 MediaSessionStateChanged(true, false)); 663 MediaSessionStateChanged(true, false, testing::_));
663 EXPECT_CALL(*mock_web_contents_observer(), 664 EXPECT_CALL(*mock_web_contents_observer(),
664 MediaSessionStateChanged(true, true)) 665 MediaSessionStateChanged(true, true, testing::_))
665 .After(showControls); 666 .After(showControls);
666 667
667 scoped_ptr<MockMediaSessionObserver> media_session_observer( 668 scoped_ptr<MockMediaSessionObserver> media_session_observer(
668 new MockMediaSessionObserver); 669 new MockMediaSessionObserver);
669 670
670 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 671 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
671 672
672 SystemSuspend(true); 673 SystemSuspend(true);
673 674
674 EXPECT_TRUE(IsControllable()); 675 EXPECT_TRUE(IsControllable());
675 EXPECT_TRUE(IsSuspended()); 676 EXPECT_TRUE(IsSuspended());
676 } 677 }
677 678
678 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsUpdatedWhenResumed) { 679 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsUpdatedWhenResumed) {
679 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 680 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
680 MediaSessionStateChanged(true, false)); 681 MediaSessionStateChanged(true, false, testing::_));
681 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(), 682 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
682 MediaSessionStateChanged(true, true)) 683 MediaSessionStateChanged(true, true, testing::_)).After(showControls);
683 .After(showControls);
684 EXPECT_CALL(*mock_web_contents_observer(), 684 EXPECT_CALL(*mock_web_contents_observer(),
685 MediaSessionStateChanged(true, false)) 685 MediaSessionStateChanged(true, false, testing::_))
686 .After(pauseControls); 686 .After(pauseControls);
687 687
688 scoped_ptr<MockMediaSessionObserver> media_session_observer( 688 scoped_ptr<MockMediaSessionObserver> media_session_observer(
689 new MockMediaSessionObserver); 689 new MockMediaSessionObserver);
690 690
691 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 691 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
692 SystemSuspend(true); 692 SystemSuspend(true);
693 SystemResume(); 693 SystemResume();
694 694
695 EXPECT_TRUE(IsControllable()); 695 EXPECT_TRUE(IsControllable());
696 EXPECT_FALSE(IsSuspended()); 696 EXPECT_FALSE(IsSuspended());
697 } 697 }
698 698
699 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 699 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
700 ControlsHideWhenSessionSuspendedPermanently) { 700 ControlsHideWhenSessionSuspendedPermanently) {
701 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 701 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
702 MediaSessionStateChanged(true, false)); 702 MediaSessionStateChanged(true, false, testing::_));
703 EXPECT_CALL(*mock_web_contents_observer(), 703 EXPECT_CALL(*mock_web_contents_observer(),
704 MediaSessionStateChanged(false, true)) 704 MediaSessionStateChanged(false, true, testing::_))
705 .After(showControls); 705 .After(showControls);
706 706
707 scoped_ptr<MockMediaSessionObserver> media_session_observer( 707 scoped_ptr<MockMediaSessionObserver> media_session_observer(
708 new MockMediaSessionObserver); 708 new MockMediaSessionObserver);
709 709
710 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 710 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
711 711
712 SystemSuspend(false); 712 SystemSuspend(false);
713 713
714 EXPECT_FALSE(IsControllable()); 714 EXPECT_FALSE(IsControllable());
715 EXPECT_TRUE(IsSuspended()); 715 EXPECT_TRUE(IsSuspended());
716 } 716 }
717 717
718 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 718 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
719 ConstrolsHideWhenSessionStops) { 719 ConstrolsHideWhenSessionStops) {
720 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 720 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
721 MediaSessionStateChanged(true, false)); 721 MediaSessionStateChanged(true, false, testing::_));
722 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(), 722 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
723 MediaSessionStateChanged(true, true)) 723 MediaSessionStateChanged(true, true, testing::_)).After(showControls);
724 .After(showControls);
725 EXPECT_CALL(*mock_web_contents_observer(), 724 EXPECT_CALL(*mock_web_contents_observer(),
726 MediaSessionStateChanged(false, true)) 725 MediaSessionStateChanged(false, true, testing::_))
727 .After(pauseControls); 726 .After(pauseControls);
728 727
729 scoped_ptr<MockMediaSessionObserver> media_session_observer( 728 scoped_ptr<MockMediaSessionObserver> media_session_observer(
730 new MockMediaSessionObserver); 729 new MockMediaSessionObserver);
731 730
732 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 731 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
733 732
734 media_session_->Stop(MediaSession::SuspendType::UI); 733 media_session_->Stop(MediaSession::SuspendType::UI);
735 734
736 EXPECT_FALSE(IsControllable()); 735 EXPECT_FALSE(IsControllable());
737 EXPECT_TRUE(IsSuspended()); 736 EXPECT_TRUE(IsSuspended());
738 } 737 }
739 738
740 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 739 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
741 ControlsHideWhenSessionChangesFromContentToTransient) { 740 ControlsHideWhenSessionChangesFromContentToTransient) {
742 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 741 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
743 MediaSessionStateChanged(true, false)); 742 MediaSessionStateChanged(true, false, testing::_));
744 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(), 743 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
745 MediaSessionStateChanged(true, true)) 744 MediaSessionStateChanged(true, true, testing::_)).After(showControls);
746 .After(showControls);
747 EXPECT_CALL(*mock_web_contents_observer(), 745 EXPECT_CALL(*mock_web_contents_observer(),
748 MediaSessionStateChanged(false, false)) 746 MediaSessionStateChanged(false, false, testing::_))
749 .After(pauseControls); 747 .After(pauseControls);
750 748
751 scoped_ptr<MockMediaSessionObserver> media_session_observer( 749 scoped_ptr<MockMediaSessionObserver> media_session_observer(
752 new MockMediaSessionObserver); 750 new MockMediaSessionObserver);
753 751
754 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 752 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
755 SystemSuspend(true); 753 SystemSuspend(true);
756 754
757 // This should reset the session and change it to a transient, so 755 // This should reset the session and change it to a transient, so
758 // hide the controls. 756 // hide the controls.
759 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Transient); 757 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Transient);
760 758
761 EXPECT_FALSE(IsControllable()); 759 EXPECT_FALSE(IsControllable());
762 EXPECT_FALSE(IsSuspended()); 760 EXPECT_FALSE(IsSuspended());
763 } 761 }
764 762
765 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 763 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
766 ControlsUpdatedWhenNewPlayerResetsSession) { 764 ControlsUpdatedWhenNewPlayerResetsSession) {
767 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 765 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
768 MediaSessionStateChanged(true, false)); 766 MediaSessionStateChanged(true, false, testing::_));
769 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(), 767 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
770 MediaSessionStateChanged(true, true)) 768 MediaSessionStateChanged(true, true, testing::_)).After(showControls);
771 .After(showControls);
772 EXPECT_CALL(*mock_web_contents_observer(), 769 EXPECT_CALL(*mock_web_contents_observer(),
773 MediaSessionStateChanged(true, false)) 770 MediaSessionStateChanged(true, false, testing::_))
774 .After(pauseControls); 771 .After(pauseControls);
775 772
776 scoped_ptr<MockMediaSessionObserver> media_session_observer( 773 scoped_ptr<MockMediaSessionObserver> media_session_observer(
777 new MockMediaSessionObserver); 774 new MockMediaSessionObserver);
778 775
779 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 776 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
780 SystemSuspend(true); 777 SystemSuspend(true);
781 778
782 // This should reset the session and update the controls. 779 // This should reset the session and update the controls.
783 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 780 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
784 781
785 EXPECT_TRUE(IsControllable()); 782 EXPECT_TRUE(IsControllable());
786 EXPECT_FALSE(IsSuspended()); 783 EXPECT_FALSE(IsSuspended());
787 } 784 }
788 785
789 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 786 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
790 ControlsResumedWhenPlayerIsResumed) { 787 ControlsResumedWhenPlayerIsResumed) {
791 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 788 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
792 MediaSessionStateChanged(true, false)); 789 MediaSessionStateChanged(true, false, testing::_));
793 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(), 790 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
794 MediaSessionStateChanged(true, true)) 791 MediaSessionStateChanged(true, true, testing::_)).After(showControls);
795 .After(showControls);
796 EXPECT_CALL(*mock_web_contents_observer(), 792 EXPECT_CALL(*mock_web_contents_observer(),
797 MediaSessionStateChanged(true, false)) 793 MediaSessionStateChanged(true, false, testing::_))
798 .After(pauseControls); 794 .After(pauseControls);
799 795
800 scoped_ptr<MockMediaSessionObserver> media_session_observer( 796 scoped_ptr<MockMediaSessionObserver> media_session_observer(
801 new MockMediaSessionObserver); 797 new MockMediaSessionObserver);
802 798
803 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 799 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
804 SystemSuspend(true); 800 SystemSuspend(true);
805 801
806 // This should resume the session and update the controls. 802 // This should resume the session and update the controls.
807 AddPlayer(media_session_observer.get(), 0, MediaSession::Type::Content); 803 AddPlayer(media_session_observer.get(), 0, MediaSession::Type::Content);
808 804
809 EXPECT_TRUE(IsControllable()); 805 EXPECT_TRUE(IsControllable());
810 EXPECT_FALSE(IsSuspended()); 806 EXPECT_FALSE(IsSuspended());
811 } 807 }
812 808
813 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 809 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
814 ControlsUpdatedDueToResumeSessionAction) { 810 ControlsUpdatedDueToResumeSessionAction) {
815 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 811 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
816 MediaSessionStateChanged(true, false)); 812 MediaSessionStateChanged(true, false, testing::_));
817 EXPECT_CALL(*mock_web_contents_observer(), 813 EXPECT_CALL(*mock_web_contents_observer(),
818 MediaSessionStateChanged(true, true)).After(showControls); 814 MediaSessionStateChanged(true, true, testing::_))
815 .After(showControls);
819 816
820 scoped_ptr<MockMediaSessionObserver> media_session_observer( 817 scoped_ptr<MockMediaSessionObserver> media_session_observer(
821 new MockMediaSessionObserver); 818 new MockMediaSessionObserver);
822 819
823 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 820 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
824 UISuspend(); 821 UISuspend();
825 822
826 EXPECT_TRUE(IsControllable()); 823 EXPECT_TRUE(IsControllable());
827 EXPECT_TRUE(IsSuspended()); 824 EXPECT_TRUE(IsSuspended());
828 } 825 }
829 826
830 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 827 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
831 ControlsUpdatedDueToSuspendSessionAction) { 828 ControlsUpdatedDueToSuspendSessionAction) {
832 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 829 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
833 MediaSessionStateChanged(true, false)); 830 MediaSessionStateChanged(true, false, testing::_));
834 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(), 831 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
835 MediaSessionStateChanged(true, true)) 832 MediaSessionStateChanged(true, true, testing::_)).After(showControls);
836 .After(showControls);
837 EXPECT_CALL(*mock_web_contents_observer(), 833 EXPECT_CALL(*mock_web_contents_observer(),
838 MediaSessionStateChanged(true, false)) 834 MediaSessionStateChanged(true, false, testing::_))
839 .After(pauseControls); 835 .After(pauseControls);
840 836
841 scoped_ptr<MockMediaSessionObserver> media_session_observer( 837 scoped_ptr<MockMediaSessionObserver> media_session_observer(
842 new MockMediaSessionObserver); 838 new MockMediaSessionObserver);
843 839
844 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 840 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
845 UISuspend(); 841 UISuspend();
846 UIResume(); 842 UIResume();
847 843
848 EXPECT_TRUE(IsControllable()); 844 EXPECT_TRUE(IsControllable());
(...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after
1198 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 1194 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
1199 clock->Advance(base::TimeDelta::FromMilliseconds(1000)); 1195 clock->Advance(base::TimeDelta::FromMilliseconds(1000));
1200 media_session_->Stop(MediaSession::SuspendType::UI); 1196 media_session_->Stop(MediaSession::SuspendType::UI);
1201 1197
1202 scoped_ptr<base::HistogramSamples> samples( 1198 scoped_ptr<base::HistogramSamples> samples(
1203 tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime")); 1199 tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime"));
1204 EXPECT_EQ(2, samples->TotalCount()); 1200 EXPECT_EQ(2, samples->TotalCount());
1205 EXPECT_EQ(1, samples->GetCount(1000)); 1201 EXPECT_EQ(1, samples->GetCount(1000));
1206 EXPECT_EQ(1, samples->GetCount(10000)); 1202 EXPECT_EQ(1, samples->GetCount(10000));
1207 } 1203 }
OLDNEW
« no previous file with comments | « content/browser/media/session/media_session.h ('k') | content/browser/web_contents/web_contents_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698