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

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

Issue 2411723002: Split MediaSessionStateChanged() and MediaSessionMetadataChanged() (Closed)
Patch Set: rebased Created 4 years, 2 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 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 45
46 void AbandonAudioFocus() override { 46 void AbandonAudioFocus() override {
47 } 47 }
48 }; 48 };
49 49
50 class MockWebContentsObserver : public WebContentsObserver { 50 class MockWebContentsObserver : public WebContentsObserver {
51 public: 51 public:
52 MockWebContentsObserver(WebContents* web_contents) 52 MockWebContentsObserver(WebContents* web_contents)
53 : WebContentsObserver(web_contents) {} 53 : WebContentsObserver(web_contents) {}
54 54
55 MOCK_METHOD3(MediaSessionStateChanged, 55 MOCK_METHOD2(MediaSessionStateChanged,
56 void(bool is_controllable, bool is_suspended, 56 void(bool is_controllable, bool is_suspended));
57 const base::Optional<content::MediaMetadata>& metadata));
58 }; 57 };
59 58
60 } // namespace 59 } // namespace
61 60
62 class MediaSessionBrowserTest : public content::ContentBrowserTest { 61 class MediaSessionBrowserTest : public content::ContentBrowserTest {
63 protected: 62 protected:
64 MediaSessionBrowserTest() = default; 63 MediaSessionBrowserTest() = default;
65 64
66 void SetUpOnMainThread() override { 65 void SetUpOnMainThread() override {
67 ContentBrowserTest::SetUpOnMainThread(); 66 ContentBrowserTest::SetUpOnMainThread();
(...skipping 513 matching lines...) Expand 10 before | Expand all | Expand 10 after
581 EXPECT_TRUE(media_session_observer->IsPlaying(1)); 580 EXPECT_TRUE(media_session_observer->IsPlaying(1));
582 EXPECT_TRUE(media_session_observer->IsPlaying(2)); 581 EXPECT_TRUE(media_session_observer->IsPlaying(2));
583 EXPECT_TRUE(media_session_observer->IsPlaying(3)); 582 EXPECT_TRUE(media_session_observer->IsPlaying(3));
584 583
585 EXPECT_EQ(content::AudioFocusManager::AudioFocusType::Gain, 584 EXPECT_EQ(content::AudioFocusManager::AudioFocusType::Gain,
586 GetSessionAudioFocusType()); 585 GetSessionAudioFocusType());
587 } 586 }
588 587
589 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsShowForContent) { 588 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsShowForContent) {
590 EXPECT_CALL(*mock_web_contents_observer(), 589 EXPECT_CALL(*mock_web_contents_observer(),
591 MediaSessionStateChanged(true, false, testing::_)); 590 MediaSessionStateChanged(true, false));
592 591
593 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 592 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
594 new MockMediaSessionObserver); 593 new MockMediaSessionObserver);
595 594
596 // Starting a player with a content type should show the media controls. 595 // Starting a player with a content type should show the media controls.
597 StartNewPlayer(media_session_observer.get(), 596 StartNewPlayer(media_session_observer.get(),
598 media::MediaContentType::Persistent); 597 media::MediaContentType::Persistent);
599 598
600 EXPECT_TRUE(IsControllable()); 599 EXPECT_TRUE(IsControllable());
601 EXPECT_FALSE(IsSuspended()); 600 EXPECT_FALSE(IsSuspended());
602 } 601 }
603 602
604 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsNoShowForTransient) { 603 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsNoShowForTransient) {
605 EXPECT_CALL(*mock_web_contents_observer(), 604 EXPECT_CALL(*mock_web_contents_observer(),
606 MediaSessionStateChanged(false, false, testing::_)); 605 MediaSessionStateChanged(false, false));
607 606
608 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 607 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
609 new MockMediaSessionObserver); 608 new MockMediaSessionObserver);
610 609
611 // Starting a player with a transient type should not show the media controls. 610 // Starting a player with a transient type should not show the media controls.
612 StartNewPlayer(media_session_observer.get(), 611 StartNewPlayer(media_session_observer.get(),
613 media::MediaContentType::Transient); 612 media::MediaContentType::Transient);
614 613
615 EXPECT_FALSE(IsControllable()); 614 EXPECT_FALSE(IsControllable());
616 EXPECT_FALSE(IsSuspended()); 615 EXPECT_FALSE(IsSuspended());
617 } 616 }
618 617
619 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsHideWhenStopped) { 618 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsHideWhenStopped) {
620 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 619 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
621 MediaSessionStateChanged(true, false, testing::_)); 620 MediaSessionStateChanged(true, false));
622 EXPECT_CALL(*mock_web_contents_observer(), 621 EXPECT_CALL(*mock_web_contents_observer(),
623 MediaSessionStateChanged(false, true, testing::_)) 622 MediaSessionStateChanged(false, true))
624 .After(showControls); 623 .After(showControls);
625 624
626 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 625 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
627 new MockMediaSessionObserver); 626 new MockMediaSessionObserver);
628 627
629 StartNewPlayer(media_session_observer.get(), 628 StartNewPlayer(media_session_observer.get(),
630 media::MediaContentType::Persistent); 629 media::MediaContentType::Persistent);
631 630
632 RemovePlayers(media_session_observer.get()); 631 RemovePlayers(media_session_observer.get());
633 632
634 EXPECT_FALSE(IsControllable()); 633 EXPECT_FALSE(IsControllable());
635 EXPECT_TRUE(IsSuspended()); 634 EXPECT_TRUE(IsSuspended());
636 } 635 }
637 636
638 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsShownAcceptTransient) { 637 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsShownAcceptTransient) {
639 EXPECT_CALL(*mock_web_contents_observer(), 638 EXPECT_CALL(*mock_web_contents_observer(),
640 MediaSessionStateChanged(true, false, testing::_)); 639 MediaSessionStateChanged(true, false));
641 640
642 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 641 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
643 new MockMediaSessionObserver); 642 new MockMediaSessionObserver);
644 643
645 StartNewPlayer(media_session_observer.get(), 644 StartNewPlayer(media_session_observer.get(),
646 media::MediaContentType::Persistent); 645 media::MediaContentType::Persistent);
647 646
648 // Transient player join the session without affecting the controls. 647 // Transient player join the session without affecting the controls.
649 StartNewPlayer(media_session_observer.get(), 648 StartNewPlayer(media_session_observer.get(),
650 media::MediaContentType::Transient); 649 media::MediaContentType::Transient);
651 650
652 EXPECT_TRUE(IsControllable()); 651 EXPECT_TRUE(IsControllable());
653 EXPECT_FALSE(IsSuspended()); 652 EXPECT_FALSE(IsSuspended());
654 } 653 }
655 654
656 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 655 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
657 ControlsShownAfterContentAdded) { 656 ControlsShownAfterContentAdded) {
658 Expectation dontShowControls = EXPECT_CALL(*mock_web_contents_observer(), 657 Expectation dontShowControls = EXPECT_CALL(
659 MediaSessionStateChanged(false, false, testing::_)); 658 *mock_web_contents_observer(), MediaSessionStateChanged(false, false));
660 EXPECT_CALL(*mock_web_contents_observer(), 659 EXPECT_CALL(*mock_web_contents_observer(),
661 MediaSessionStateChanged(true, false, testing::_)) 660 MediaSessionStateChanged(true, false))
662 .After(dontShowControls); 661 .After(dontShowControls);
663 662
664 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 663 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
665 new MockMediaSessionObserver); 664 new MockMediaSessionObserver);
666 665
667 StartNewPlayer(media_session_observer.get(), 666 StartNewPlayer(media_session_observer.get(),
668 media::MediaContentType::Transient); 667 media::MediaContentType::Transient);
669 668
670 // The controls are shown when the content player is added. 669 // The controls are shown when the content player is added.
671 StartNewPlayer(media_session_observer.get(), 670 StartNewPlayer(media_session_observer.get(),
672 media::MediaContentType::Persistent); 671 media::MediaContentType::Persistent);
673 672
674 EXPECT_TRUE(IsControllable()); 673 EXPECT_TRUE(IsControllable());
675 EXPECT_FALSE(IsSuspended()); 674 EXPECT_FALSE(IsSuspended());
676 } 675 }
677 676
678 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 677 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
679 ControlsStayIfOnlyOnePlayerHasBeenPaused) { 678 ControlsStayIfOnlyOnePlayerHasBeenPaused) {
680 EXPECT_CALL(*mock_web_contents_observer(), 679 EXPECT_CALL(*mock_web_contents_observer(),
681 MediaSessionStateChanged(true, false, testing::_)); 680 MediaSessionStateChanged(true, false));
682 681
683 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 682 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
684 new MockMediaSessionObserver); 683 new MockMediaSessionObserver);
685 684
686 StartNewPlayer(media_session_observer.get(), 685 StartNewPlayer(media_session_observer.get(),
687 media::MediaContentType::Persistent); 686 media::MediaContentType::Persistent);
688 StartNewPlayer(media_session_observer.get(), 687 StartNewPlayer(media_session_observer.get(),
689 media::MediaContentType::Transient); 688 media::MediaContentType::Transient);
690 689
691 // Removing only content player doesn't hide the controls since the session 690 // Removing only content player doesn't hide the controls since the session
692 // is still active. 691 // is still active.
693 RemovePlayer(media_session_observer.get(), 0); 692 RemovePlayer(media_session_observer.get(), 0);
694 693
695 EXPECT_TRUE(IsControllable()); 694 EXPECT_TRUE(IsControllable());
696 EXPECT_FALSE(IsSuspended()); 695 EXPECT_FALSE(IsSuspended());
697 } 696 }
698 697
699 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 698 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
700 ControlsHideWhenTheLastPlayerIsRemoved) { 699 ControlsHideWhenTheLastPlayerIsRemoved) {
701 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 700 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
702 MediaSessionStateChanged(true, false, testing::_)); 701 MediaSessionStateChanged(true, false));
703 EXPECT_CALL(*mock_web_contents_observer(), 702 EXPECT_CALL(*mock_web_contents_observer(),
704 MediaSessionStateChanged(false, true, testing::_)) 703 MediaSessionStateChanged(false, true))
705 .After(showControls); 704 .After(showControls);
706 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 705 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
707 new MockMediaSessionObserver); 706 new MockMediaSessionObserver);
708 707
709 StartNewPlayer(media_session_observer.get(), 708 StartNewPlayer(media_session_observer.get(),
710 media::MediaContentType::Persistent); 709 media::MediaContentType::Persistent);
711 StartNewPlayer(media_session_observer.get(), 710 StartNewPlayer(media_session_observer.get(),
712 media::MediaContentType::Persistent); 711 media::MediaContentType::Persistent);
713 712
714 RemovePlayer(media_session_observer.get(), 0); 713 RemovePlayer(media_session_observer.get(), 0);
715 714
716 EXPECT_TRUE(IsControllable()); 715 EXPECT_TRUE(IsControllable());
717 EXPECT_FALSE(IsSuspended()); 716 EXPECT_FALSE(IsSuspended());
718 717
719 RemovePlayer(media_session_observer.get(), 1); 718 RemovePlayer(media_session_observer.get(), 1);
720 719
721 EXPECT_FALSE(IsControllable()); 720 EXPECT_FALSE(IsControllable());
722 EXPECT_TRUE(IsSuspended()); 721 EXPECT_TRUE(IsSuspended());
723 } 722 }
724 723
725 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 724 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
726 ControlsHideWhenAllThePlayersAreRemoved) { 725 ControlsHideWhenAllThePlayersAreRemoved) {
727 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 726 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
728 MediaSessionStateChanged(true, false, testing::_)); 727 MediaSessionStateChanged(true, false));
729 EXPECT_CALL(*mock_web_contents_observer(), 728 EXPECT_CALL(*mock_web_contents_observer(),
730 MediaSessionStateChanged(false, true, testing::_)) 729 MediaSessionStateChanged(false, true))
731 .After(showControls); 730 .After(showControls);
732 731
733 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 732 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
734 new MockMediaSessionObserver); 733 new MockMediaSessionObserver);
735 734
736 StartNewPlayer(media_session_observer.get(), 735 StartNewPlayer(media_session_observer.get(),
737 media::MediaContentType::Persistent); 736 media::MediaContentType::Persistent);
738 StartNewPlayer(media_session_observer.get(), 737 StartNewPlayer(media_session_observer.get(),
739 media::MediaContentType::Persistent); 738 media::MediaContentType::Persistent);
740 739
741 RemovePlayers(media_session_observer.get()); 740 RemovePlayers(media_session_observer.get());
742 741
743 EXPECT_FALSE(IsControllable()); 742 EXPECT_FALSE(IsControllable());
744 EXPECT_TRUE(IsSuspended()); 743 EXPECT_TRUE(IsSuspended());
745 } 744 }
746 745
747 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 746 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
748 ControlsNotHideWhenTheLastPlayerIsPaused) { 747 ControlsNotHideWhenTheLastPlayerIsPaused) {
749 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 748 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
750 MediaSessionStateChanged(true, false, testing::_)); 749 MediaSessionStateChanged(true, false));
751 EXPECT_CALL(*mock_web_contents_observer(), 750 EXPECT_CALL(*mock_web_contents_observer(),
752 MediaSessionStateChanged(true, true, testing::_)) 751 MediaSessionStateChanged(true, true))
753 .After(showControls); 752 .After(showControls);
754 753
755 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 754 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
756 new MockMediaSessionObserver); 755 new MockMediaSessionObserver);
757 756
758 StartNewPlayer(media_session_observer.get(), 757 StartNewPlayer(media_session_observer.get(),
759 media::MediaContentType::Persistent); 758 media::MediaContentType::Persistent);
760 StartNewPlayer(media_session_observer.get(), 759 StartNewPlayer(media_session_observer.get(),
761 media::MediaContentType::Persistent); 760 media::MediaContentType::Persistent);
762 761
763 OnPlayerPaused(media_session_observer.get(), 0); 762 OnPlayerPaused(media_session_observer.get(), 0);
764 763
765 EXPECT_TRUE(IsControllable()); 764 EXPECT_TRUE(IsControllable());
766 EXPECT_FALSE(IsSuspended()); 765 EXPECT_FALSE(IsSuspended());
767 766
768 OnPlayerPaused(media_session_observer.get(), 1); 767 OnPlayerPaused(media_session_observer.get(), 1);
769 768
770 EXPECT_TRUE(IsControllable()); 769 EXPECT_TRUE(IsControllable());
771 EXPECT_TRUE(IsSuspended()); 770 EXPECT_TRUE(IsSuspended());
772 } 771 }
773 772
774 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 773 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
775 SuspendTemporaryUpdatesControls) { 774 SuspendTemporaryUpdatesControls) {
776 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 775 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
777 MediaSessionStateChanged(true, false, testing::_)); 776 MediaSessionStateChanged(true, false));
778 EXPECT_CALL(*mock_web_contents_observer(), 777 EXPECT_CALL(*mock_web_contents_observer(),
779 MediaSessionStateChanged(true, true, testing::_)) 778 MediaSessionStateChanged(true, true))
780 .After(showControls); 779 .After(showControls);
781 780
782 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 781 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
783 new MockMediaSessionObserver); 782 new MockMediaSessionObserver);
784 783
785 StartNewPlayer(media_session_observer.get(), 784 StartNewPlayer(media_session_observer.get(),
786 media::MediaContentType::Persistent); 785 media::MediaContentType::Persistent);
787 786
788 SystemSuspend(true); 787 SystemSuspend(true);
789 788
790 EXPECT_TRUE(IsControllable()); 789 EXPECT_TRUE(IsControllable());
791 EXPECT_TRUE(IsSuspended()); 790 EXPECT_TRUE(IsSuspended());
792 } 791 }
793 792
794 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsUpdatedWhenResumed) { 793 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsUpdatedWhenResumed) {
795 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 794 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
796 MediaSessionStateChanged(true, false, testing::_)); 795 MediaSessionStateChanged(true, false));
797 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(), 796 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
798 MediaSessionStateChanged(true, true, testing::_)).After(showControls); 797 MediaSessionStateChanged(true, true))
798 .After(showControls);
799 EXPECT_CALL(*mock_web_contents_observer(), 799 EXPECT_CALL(*mock_web_contents_observer(),
800 MediaSessionStateChanged(true, false, testing::_)) 800 MediaSessionStateChanged(true, false))
801 .After(pauseControls); 801 .After(pauseControls);
802 802
803 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 803 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
804 new MockMediaSessionObserver); 804 new MockMediaSessionObserver);
805 805
806 StartNewPlayer(media_session_observer.get(), 806 StartNewPlayer(media_session_observer.get(),
807 media::MediaContentType::Persistent); 807 media::MediaContentType::Persistent);
808 SystemSuspend(true); 808 SystemSuspend(true);
809 SystemResume(); 809 SystemResume();
810 810
811 EXPECT_TRUE(IsControllable()); 811 EXPECT_TRUE(IsControllable());
812 EXPECT_FALSE(IsSuspended()); 812 EXPECT_FALSE(IsSuspended());
813 } 813 }
814 814
815 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 815 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
816 ControlsHideWhenSessionSuspendedPermanently) { 816 ControlsHideWhenSessionSuspendedPermanently) {
817 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 817 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
818 MediaSessionStateChanged(true, false, testing::_)); 818 MediaSessionStateChanged(true, false));
819 EXPECT_CALL(*mock_web_contents_observer(), 819 EXPECT_CALL(*mock_web_contents_observer(),
820 MediaSessionStateChanged(false, true, testing::_)) 820 MediaSessionStateChanged(false, true))
821 .After(showControls); 821 .After(showControls);
822 822
823 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 823 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
824 new MockMediaSessionObserver); 824 new MockMediaSessionObserver);
825 825
826 StartNewPlayer(media_session_observer.get(), 826 StartNewPlayer(media_session_observer.get(),
827 media::MediaContentType::Persistent); 827 media::MediaContentType::Persistent);
828 828
829 SystemSuspend(false); 829 SystemSuspend(false);
830 830
831 EXPECT_FALSE(IsControllable()); 831 EXPECT_FALSE(IsControllable());
832 EXPECT_TRUE(IsSuspended()); 832 EXPECT_TRUE(IsSuspended());
833 } 833 }
834 834
835 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 835 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
836 ConstrolsHideWhenSessionStops) { 836 ConstrolsHideWhenSessionStops) {
837 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 837 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
838 MediaSessionStateChanged(true, false, testing::_)); 838 MediaSessionStateChanged(true, false));
839 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(), 839 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
840 MediaSessionStateChanged(true, true, testing::_)).After(showControls); 840 MediaSessionStateChanged(true, true))
841 .After(showControls);
841 EXPECT_CALL(*mock_web_contents_observer(), 842 EXPECT_CALL(*mock_web_contents_observer(),
842 MediaSessionStateChanged(false, true, testing::_)) 843 MediaSessionStateChanged(false, true))
843 .After(pauseControls); 844 .After(pauseControls);
844 845
845 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 846 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
846 new MockMediaSessionObserver); 847 new MockMediaSessionObserver);
847 848
848 StartNewPlayer(media_session_observer.get(), 849 StartNewPlayer(media_session_observer.get(),
849 media::MediaContentType::Persistent); 850 media::MediaContentType::Persistent);
850 851
851 media_session_->Stop(MediaSession::SuspendType::UI); 852 media_session_->Stop(MediaSession::SuspendType::UI);
852 853
853 EXPECT_FALSE(IsControllable()); 854 EXPECT_FALSE(IsControllable());
854 EXPECT_TRUE(IsSuspended()); 855 EXPECT_TRUE(IsSuspended());
855 } 856 }
856 857
857 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 858 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
858 ControlsHideWhenSessionChangesFromContentToTransient) { 859 ControlsHideWhenSessionChangesFromContentToTransient) {
859 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 860 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
860 MediaSessionStateChanged(true, false, testing::_)); 861 MediaSessionStateChanged(true, false));
861 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(), 862 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
862 MediaSessionStateChanged(true, true, testing::_)).After(showControls); 863 MediaSessionStateChanged(true, true))
864 .After(showControls);
863 EXPECT_CALL(*mock_web_contents_observer(), 865 EXPECT_CALL(*mock_web_contents_observer(),
864 MediaSessionStateChanged(false, false, testing::_)) 866 MediaSessionStateChanged(false, false))
865 .After(pauseControls); 867 .After(pauseControls);
866 868
867 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 869 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
868 new MockMediaSessionObserver); 870 new MockMediaSessionObserver);
869 871
870 StartNewPlayer(media_session_observer.get(), 872 StartNewPlayer(media_session_observer.get(),
871 media::MediaContentType::Persistent); 873 media::MediaContentType::Persistent);
872 SystemSuspend(true); 874 SystemSuspend(true);
873 875
874 // This should reset the session and change it to a transient, so 876 // This should reset the session and change it to a transient, so
875 // hide the controls. 877 // hide the controls.
876 StartNewPlayer(media_session_observer.get(), 878 StartNewPlayer(media_session_observer.get(),
877 media::MediaContentType::Transient); 879 media::MediaContentType::Transient);
878 880
879 EXPECT_FALSE(IsControllable()); 881 EXPECT_FALSE(IsControllable());
880 EXPECT_FALSE(IsSuspended()); 882 EXPECT_FALSE(IsSuspended());
881 } 883 }
882 884
883 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 885 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
884 ControlsUpdatedWhenNewPlayerResetsSession) { 886 ControlsUpdatedWhenNewPlayerResetsSession) {
885 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 887 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
886 MediaSessionStateChanged(true, false, testing::_)); 888 MediaSessionStateChanged(true, false));
887 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(), 889 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
888 MediaSessionStateChanged(true, true, testing::_)).After(showControls); 890 MediaSessionStateChanged(true, true))
891 .After(showControls);
889 EXPECT_CALL(*mock_web_contents_observer(), 892 EXPECT_CALL(*mock_web_contents_observer(),
890 MediaSessionStateChanged(true, false, testing::_)) 893 MediaSessionStateChanged(true, false))
891 .After(pauseControls); 894 .After(pauseControls);
892 895
893 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 896 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
894 new MockMediaSessionObserver); 897 new MockMediaSessionObserver);
895 898
896 StartNewPlayer(media_session_observer.get(), 899 StartNewPlayer(media_session_observer.get(),
897 media::MediaContentType::Persistent); 900 media::MediaContentType::Persistent);
898 SystemSuspend(true); 901 SystemSuspend(true);
899 902
900 // This should reset the session and update the controls. 903 // This should reset the session and update the controls.
901 StartNewPlayer(media_session_observer.get(), 904 StartNewPlayer(media_session_observer.get(),
902 media::MediaContentType::Persistent); 905 media::MediaContentType::Persistent);
903 906
904 EXPECT_TRUE(IsControllable()); 907 EXPECT_TRUE(IsControllable());
905 EXPECT_FALSE(IsSuspended()); 908 EXPECT_FALSE(IsSuspended());
906 } 909 }
907 910
908 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 911 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
909 ControlsResumedWhenPlayerIsResumed) { 912 ControlsResumedWhenPlayerIsResumed) {
910 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 913 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
911 MediaSessionStateChanged(true, false, testing::_)); 914 MediaSessionStateChanged(true, false));
912 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(), 915 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
913 MediaSessionStateChanged(true, true, testing::_)).After(showControls); 916 MediaSessionStateChanged(true, true))
917 .After(showControls);
914 EXPECT_CALL(*mock_web_contents_observer(), 918 EXPECT_CALL(*mock_web_contents_observer(),
915 MediaSessionStateChanged(true, false, testing::_)) 919 MediaSessionStateChanged(true, false))
916 .After(pauseControls); 920 .After(pauseControls);
917 921
918 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 922 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
919 new MockMediaSessionObserver); 923 new MockMediaSessionObserver);
920 924
921 StartNewPlayer(media_session_observer.get(), 925 StartNewPlayer(media_session_observer.get(),
922 media::MediaContentType::Persistent); 926 media::MediaContentType::Persistent);
923 SystemSuspend(true); 927 SystemSuspend(true);
924 928
925 // This should resume the session and update the controls. 929 // This should resume the session and update the controls.
926 AddPlayer(media_session_observer.get(), 0, 930 AddPlayer(media_session_observer.get(), 0,
927 media::MediaContentType::Persistent); 931 media::MediaContentType::Persistent);
928 932
929 EXPECT_TRUE(IsControllable()); 933 EXPECT_TRUE(IsControllable());
930 EXPECT_FALSE(IsSuspended()); 934 EXPECT_FALSE(IsSuspended());
931 } 935 }
932 936
933 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 937 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
934 ControlsUpdatedDueToResumeSessionAction) { 938 ControlsUpdatedDueToResumeSessionAction) {
935 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 939 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
936 MediaSessionStateChanged(true, false, testing::_)); 940 MediaSessionStateChanged(true, false));
937 EXPECT_CALL(*mock_web_contents_observer(), 941 EXPECT_CALL(*mock_web_contents_observer(),
938 MediaSessionStateChanged(true, true, testing::_)) 942 MediaSessionStateChanged(true, true))
939 .After(showControls); 943 .After(showControls);
940 944
941 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 945 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
942 new MockMediaSessionObserver); 946 new MockMediaSessionObserver);
943 947
944 StartNewPlayer(media_session_observer.get(), 948 StartNewPlayer(media_session_observer.get(),
945 media::MediaContentType::Persistent); 949 media::MediaContentType::Persistent);
946 UISuspend(); 950 UISuspend();
947 951
948 EXPECT_TRUE(IsControllable()); 952 EXPECT_TRUE(IsControllable());
949 EXPECT_TRUE(IsSuspended()); 953 EXPECT_TRUE(IsSuspended());
950 } 954 }
951 955
952 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 956 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
953 ControlsUpdatedDueToSuspendSessionAction) { 957 ControlsUpdatedDueToSuspendSessionAction) {
954 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 958 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
955 MediaSessionStateChanged(true, false, testing::_)); 959 MediaSessionStateChanged(true, false));
956 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(), 960 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
957 MediaSessionStateChanged(true, true, testing::_)).After(showControls); 961 MediaSessionStateChanged(true, true))
962 .After(showControls);
958 EXPECT_CALL(*mock_web_contents_observer(), 963 EXPECT_CALL(*mock_web_contents_observer(),
959 MediaSessionStateChanged(true, false, testing::_)) 964 MediaSessionStateChanged(true, false))
960 .After(pauseControls); 965 .After(pauseControls);
961 966
962 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 967 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
963 new MockMediaSessionObserver); 968 new MockMediaSessionObserver);
964 969
965 StartNewPlayer(media_session_observer.get(), 970 StartNewPlayer(media_session_observer.get(),
966 media::MediaContentType::Persistent); 971 media::MediaContentType::Persistent);
967 UISuspend(); 972 UISuspend();
968 UIResume(); 973 UIResume();
969 974
(...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after
1338 media::MediaContentType::Persistent); 1343 media::MediaContentType::Persistent);
1339 clock->Advance(base::TimeDelta::FromMilliseconds(1000)); 1344 clock->Advance(base::TimeDelta::FromMilliseconds(1000));
1340 media_session_->Stop(MediaSession::SuspendType::UI); 1345 media_session_->Stop(MediaSession::SuspendType::UI);
1341 1346
1342 std::unique_ptr<base::HistogramSamples> samples( 1347 std::unique_ptr<base::HistogramSamples> samples(
1343 tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime")); 1348 tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime"));
1344 EXPECT_EQ(2, samples->TotalCount()); 1349 EXPECT_EQ(2, samples->TotalCount());
1345 EXPECT_EQ(1, samples->GetCount(1000)); 1350 EXPECT_EQ(1, samples->GetCount(1000));
1346 EXPECT_EQ(1, samples->GetCount(10000)); 1351 EXPECT_EQ(1, samples->GetCount(10000));
1347 } 1352 }
OLDNEW
« no previous file with comments | « content/browser/media/session/media_session.cc ('k') | content/browser/web_contents/web_contents_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698