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

Unified Diff: content/browser/media/android/media_session_browsertest.cc

Issue 1698933004: Make MediaSession a runtime-enabled feature on Desktop. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/media/android/media_session_browsertest.cc
diff --git a/content/browser/media/android/media_session_browsertest.cc b/content/browser/media/android/media_session_browsertest.cc
deleted file mode 100644
index f613c6783dee5511742b30ccf61da74556ea586e..0000000000000000000000000000000000000000
--- a/content/browser/media/android/media_session_browsertest.cc
+++ /dev/null
@@ -1,1273 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "content/browser/media/android/media_session.h"
-
-#include <stddef.h>
-
-#include <list>
-#include <vector>
-
-#include "base/macros.h"
-#include "base/metrics/histogram_samples.h"
-#include "base/test/histogram_tester.h"
-#include "base/test/simple_test_clock.h"
-#include "content/browser/media/android/media_session_observer.h"
-#include "content/public/browser/web_contents.h"
-#include "content/public/browser/web_contents_observer.h"
-#include "content/public/test/content_browser_test.h"
-#include "content/shell/browser/shell.h"
-#include "testing/gmock/include/gmock/gmock.h"
-
-using content::WebContents;
-using content::WebContentsObserver;
-using content::MediaSession;
-using content::MediaSessionObserver;
-using content::MediaSessionUmaHelper;
-
-using ::testing::Expectation;
-
-namespace {
-
-class MockMediaSessionObserver : public MediaSessionObserver {
- public:
- MockMediaSessionObserver()
- : received_resume_calls_(0),
- received_suspend_calls_(0) {
- }
-
- ~MockMediaSessionObserver() override = default;
-
- // Implements MediaSessionObserver.
- void OnSuspend(int player_id) override {
- EXPECT_GE(player_id, 0);
- EXPECT_GT(players_.size(), static_cast<size_t>(player_id));
-
- ++received_suspend_calls_;
- players_[player_id].is_playing_ = false;
- }
-
- void OnResume(int player_id) override {
- EXPECT_GE(player_id, 0);
- EXPECT_GT(players_.size(), static_cast<size_t>(player_id));
-
- ++received_resume_calls_;
- players_[player_id].is_playing_ = true;
- }
-
- void OnSetVolumeMultiplier(int player_id, double volume_multiplier) override {
- EXPECT_GE(player_id, 0);
- EXPECT_GT(players_.size(), static_cast<size_t>(player_id));
-
- EXPECT_GE(volume_multiplier, 0.0f);
- EXPECT_LE(volume_multiplier, 1.0f);
-
- players_[player_id].volume_multiplier_ = volume_multiplier;
- }
-
- int StartNewPlayer() {
- players_.push_back(MockPlayer(true, 1.0f));
- return players_.size() - 1;
- }
-
- bool IsPlaying(size_t player_id) {
- EXPECT_GT(players_.size(), player_id);
- return players_[player_id].is_playing_;
- }
-
- double GetVolumeMultiplier(size_t player_id) {
- EXPECT_GT(players_.size(), player_id);
- return players_[player_id].volume_multiplier_;
- }
-
- void SetPlaying(size_t player_id, bool playing) {
- EXPECT_GT(players_.size(), player_id);
- players_[player_id].is_playing_ = playing;
- }
-
- int received_suspend_calls() const {
- return received_suspend_calls_;
- }
-
- int received_resume_calls() const {
- return received_resume_calls_;
- }
-
- private:
- struct MockPlayer {
- public:
- MockPlayer(bool is_playing = true, double volume_multiplier = 1.0f)
- : is_playing_(is_playing),
- volume_multiplier_(volume_multiplier) {}
- bool is_playing_;
- double volume_multiplier_;
- };
-
- // Basic representation of the players. The position in the vector is the
- // player_id. The value of the vector is the playing status and volume.
- std::vector<MockPlayer> players_;
-
- int received_resume_calls_;
- int received_suspend_calls_;
-};
-
-class MockWebContentsObserver : public WebContentsObserver {
- public:
- MockWebContentsObserver(WebContents* web_contents)
- : WebContentsObserver(web_contents) {}
-
- MOCK_METHOD2(MediaSessionStateChanged,
- void(bool is_controllable, bool is_suspended));
-};
-
-} // namespace
-
-class MediaSessionBrowserTest : public content::ContentBrowserTest {
- protected:
- MediaSessionBrowserTest() = default;
-
- void SetUpOnMainThread() override {
- ContentBrowserTest::SetUpOnMainThread();
-
- mock_web_contents_observer_.reset(
- new MockWebContentsObserver(shell()->web_contents()));
- media_session_ = MediaSession::Get(shell()->web_contents());
- media_session_->ResetJavaRefForTest();
- ASSERT_TRUE(media_session_);
- }
-
- void TearDownOnMainThread() override {
- mock_web_contents_observer_.reset();
-
- media_session_->RemoveAllPlayersForTest();
- media_session_ = nullptr;
-
- ContentBrowserTest::TearDownOnMainThread();
- }
-
- void StartNewPlayer(MockMediaSessionObserver* media_session_observer,
- MediaSession::Type type) {
- bool result = AddPlayer(
- media_session_observer,
- media_session_observer->StartNewPlayer(),
- type);
- EXPECT_TRUE(result);
- }
-
- bool AddPlayer(MockMediaSessionObserver* media_session_observer,
- int player_id,
- MediaSession::Type type) {
- return media_session_->AddPlayer(media_session_observer, player_id, type);
- }
-
- void RemovePlayer(MockMediaSessionObserver* media_session_observer,
- int player_id) {
- media_session_->RemovePlayer(media_session_observer, player_id);
- }
-
- void RemovePlayers(MockMediaSessionObserver* media_session_observer) {
- media_session_->RemovePlayers(media_session_observer);
- }
-
- void OnPlayerPaused(MockMediaSessionObserver* media_session_observer,
- int player_id) {
- media_session_->OnPlayerPaused(media_session_observer, player_id);
- }
-
- bool HasAudioFocus() { return media_session_->IsActiveForTest(); }
-
- MediaSession::Type GetSessionType() {
- return media_session_->audio_focus_type_for_test();
- }
-
- bool IsControllable() { return media_session_->IsControllable(); }
-
- bool IsSuspended() { return media_session_->IsSuspended(); }
-
- void UIResume() {
- media_session_->Resume();
- }
-
- void SystemResume() {
- media_session_->OnResume(nullptr, nullptr);
- }
-
- void UISuspend() {
- media_session_->Suspend();
- }
-
- void SystemSuspend(bool temporary) {
- media_session_->OnSuspend(nullptr, nullptr, temporary);
- }
-
- void SystemSetVolumeMultiplier(double volume_multiplier) {
- media_session_->OnSetVolumeMultiplier(
- nullptr, nullptr, volume_multiplier);
- }
-
- MockWebContentsObserver* mock_web_contents_observer() {
- return mock_web_contents_observer_.get();
- }
-
- scoped_ptr<MediaSession> CreateDummyMediaSession() {
- return scoped_ptr<MediaSession>(new MediaSession(nullptr));
- }
-
- MediaSessionUmaHelper* GetMediaSessionUMAHelper() {
- return media_session_->uma_helper_for_test();
- }
-
- protected:
- MediaSession* media_session_;
- scoped_ptr<MockWebContentsObserver> mock_web_contents_observer_;
-
- DISALLOW_COPY_AND_ASSIGN(MediaSessionBrowserTest);
-};
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- PlayersFromSameObserverDoNotStopEachOtherInSameSession) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- EXPECT_TRUE(media_session_observer->IsPlaying(0));
- EXPECT_TRUE(media_session_observer->IsPlaying(1));
- EXPECT_TRUE(media_session_observer->IsPlaying(2));
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- PlayersFromManyObserverDoNotStopEachOtherInSameSession) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer_1(
- new MockMediaSessionObserver);
- scoped_ptr<MockMediaSessionObserver> media_session_observer_2(
- new MockMediaSessionObserver);
- scoped_ptr<MockMediaSessionObserver> media_session_observer_3(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer_1.get(), MediaSession::Type::Content);
- StartNewPlayer(media_session_observer_2.get(), MediaSession::Type::Content);
- StartNewPlayer(media_session_observer_3.get(), MediaSession::Type::Content);
-
- EXPECT_TRUE(media_session_observer_1->IsPlaying(0));
- EXPECT_TRUE(media_session_observer_2->IsPlaying(0));
- EXPECT_TRUE(media_session_observer_3->IsPlaying(0));
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- SuspendedMediaSessionStopsPlayers) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- SystemSuspend(true);
-
- EXPECT_FALSE(media_session_observer->IsPlaying(0));
- EXPECT_FALSE(media_session_observer->IsPlaying(1));
- EXPECT_FALSE(media_session_observer->IsPlaying(2));
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- ResumedMediaSessionRestartsPlayers) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- SystemSuspend(true);
- SystemResume();
-
- EXPECT_TRUE(media_session_observer->IsPlaying(0));
- EXPECT_TRUE(media_session_observer->IsPlaying(1));
- EXPECT_TRUE(media_session_observer->IsPlaying(2));
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- StartedPlayerOnSuspendedSessionPlaysAlone) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- EXPECT_TRUE(media_session_observer->IsPlaying(0));
-
- SystemSuspend(true);
-
- EXPECT_FALSE(media_session_observer->IsPlaying(0));
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- EXPECT_FALSE(media_session_observer->IsPlaying(0));
- EXPECT_TRUE(media_session_observer->IsPlaying(1));
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- EXPECT_FALSE(media_session_observer->IsPlaying(0));
- EXPECT_TRUE(media_session_observer->IsPlaying(1));
- EXPECT_TRUE(media_session_observer->IsPlaying(2));
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- MediaSessionSetVolumeMultiplier) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- double volume_multiplier = 0.2f;
- SystemSetVolumeMultiplier(volume_multiplier);
-
- EXPECT_EQ(volume_multiplier, media_session_observer->GetVolumeMultiplier(0));
- EXPECT_EQ(volume_multiplier, media_session_observer->GetVolumeMultiplier(1));
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- EXPECT_EQ(volume_multiplier, media_session_observer->GetVolumeMultiplier(2));
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, AudioFocusInitialState) {
- EXPECT_FALSE(HasAudioFocus());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, StartPlayerGivesFocus) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- EXPECT_TRUE(HasAudioFocus());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, SuspendGivesAwayAudioFocus) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- SystemSuspend(true);
-
- EXPECT_FALSE(HasAudioFocus());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, StopGivesAwayAudioFocus) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- media_session_->Stop();
-
- EXPECT_FALSE(HasAudioFocus());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ResumeGivesBackAudioFocus) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- SystemSuspend(true);
- SystemResume();
-
- EXPECT_TRUE(HasAudioFocus());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- RemovingLastPlayerDropsAudioFocus) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- RemovePlayer(media_session_observer.get(), 0);
- EXPECT_TRUE(HasAudioFocus());
- RemovePlayer(media_session_observer.get(), 1);
- EXPECT_TRUE(HasAudioFocus());
- RemovePlayer(media_session_observer.get(), 2);
- EXPECT_FALSE(HasAudioFocus());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- RemovingLastPlayerFromManyObserversDropsAudioFocus) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer_1(
- new MockMediaSessionObserver);
- scoped_ptr<MockMediaSessionObserver> media_session_observer_2(
- new MockMediaSessionObserver);
- scoped_ptr<MockMediaSessionObserver> media_session_observer_3(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer_1.get(), MediaSession::Type::Content);
- StartNewPlayer(media_session_observer_2.get(), MediaSession::Type::Content);
- StartNewPlayer(media_session_observer_3.get(), MediaSession::Type::Content);
-
- RemovePlayer(media_session_observer_1.get(), 0);
- EXPECT_TRUE(HasAudioFocus());
- RemovePlayer(media_session_observer_2.get(), 0);
- EXPECT_TRUE(HasAudioFocus());
- RemovePlayer(media_session_observer_3.get(), 0);
- EXPECT_FALSE(HasAudioFocus());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- RemovingAllPlayersFromObserversDropsAudioFocus) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer_1(
- new MockMediaSessionObserver);
- scoped_ptr<MockMediaSessionObserver> media_session_observer_2(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer_1.get(), MediaSession::Type::Content);
- StartNewPlayer(media_session_observer_1.get(), MediaSession::Type::Content);
- StartNewPlayer(media_session_observer_2.get(), MediaSession::Type::Content);
- StartNewPlayer(media_session_observer_2.get(), MediaSession::Type::Content);
-
- RemovePlayers(media_session_observer_1.get());
- EXPECT_TRUE(HasAudioFocus());
- RemovePlayers(media_session_observer_2.get());
- EXPECT_FALSE(HasAudioFocus());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ResumePlayGivesAudioFocus) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- RemovePlayer(media_session_observer.get(), 0);
- EXPECT_FALSE(HasAudioFocus());
-
- EXPECT_TRUE(
- AddPlayer(media_session_observer.get(), 0, MediaSession::Type::Content));
- EXPECT_TRUE(HasAudioFocus());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- ResumeSuspendAreSentOnlyOncePerPlayers) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- EXPECT_EQ(0, media_session_observer->received_suspend_calls());
- EXPECT_EQ(0, media_session_observer->received_resume_calls());
-
- SystemSuspend(true);
- EXPECT_EQ(3, media_session_observer->received_suspend_calls());
-
- SystemResume();
- EXPECT_EQ(3, media_session_observer->received_resume_calls());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- ResumeSuspendAreSentOnlyOncePerPlayersAddedTwice) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- // Adding the three players above again.
- EXPECT_TRUE(
- AddPlayer(media_session_observer.get(), 0, MediaSession::Type::Content));
- EXPECT_TRUE(
- AddPlayer(media_session_observer.get(), 1, MediaSession::Type::Content));
- EXPECT_TRUE(
- AddPlayer(media_session_observer.get(), 2, MediaSession::Type::Content));
-
- EXPECT_EQ(0, media_session_observer->received_suspend_calls());
- EXPECT_EQ(0, media_session_observer->received_resume_calls());
-
- SystemSuspend(true);
- EXPECT_EQ(3, media_session_observer->received_suspend_calls());
-
- SystemResume();
- EXPECT_EQ(3, media_session_observer->received_resume_calls());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- RemovingTheSamePlayerTwiceIsANoop) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- RemovePlayer(media_session_observer.get(), 0);
- RemovePlayer(media_session_observer.get(), 0);
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, MediaSessionType) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- // Starting a player with a given type should set the session to that type.
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Transient);
- EXPECT_EQ(MediaSession::Type::Transient, GetSessionType());
-
- // Adding a player of the same type should have no effect on the type.
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Transient);
- EXPECT_EQ(MediaSession::Type::Transient, GetSessionType());
-
- // Adding a player of Content type should override the current type.
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- EXPECT_EQ(MediaSession::Type::Content, GetSessionType());
-
- // Adding a player of the Transient type should have no effect on the type.
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Transient);
- EXPECT_EQ(MediaSession::Type::Content, GetSessionType());
-
- EXPECT_TRUE(media_session_observer->IsPlaying(0));
- EXPECT_TRUE(media_session_observer->IsPlaying(1));
- EXPECT_TRUE(media_session_observer->IsPlaying(2));
- EXPECT_TRUE(media_session_observer->IsPlaying(3));
-
- SystemSuspend(true);
-
- EXPECT_FALSE(media_session_observer->IsPlaying(0));
- EXPECT_FALSE(media_session_observer->IsPlaying(1));
- EXPECT_FALSE(media_session_observer->IsPlaying(2));
- EXPECT_FALSE(media_session_observer->IsPlaying(3));
-
- EXPECT_EQ(MediaSession::Type::Content, GetSessionType());
-
- SystemResume();
-
- EXPECT_TRUE(media_session_observer->IsPlaying(0));
- EXPECT_TRUE(media_session_observer->IsPlaying(1));
- EXPECT_TRUE(media_session_observer->IsPlaying(2));
- EXPECT_TRUE(media_session_observer->IsPlaying(3));
-
- EXPECT_EQ(MediaSession::Type::Content, GetSessionType());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsShowForContent) {
- EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
-
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- // Starting a player with a content type should show the media controls.
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- EXPECT_TRUE(IsControllable());
- EXPECT_FALSE(IsSuspended());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsNoShowForTransient) {
- EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(false, false));
-
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- // Starting a player with a transient type should not show the media controls.
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Transient);
-
- EXPECT_FALSE(IsControllable());
- EXPECT_FALSE(IsSuspended());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsHideWhenStopped) {
- Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
- EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(false, true))
- .After(showControls);
-
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- RemovePlayers(media_session_observer.get());
-
- EXPECT_FALSE(IsControllable());
- EXPECT_TRUE(IsSuspended());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsShownAcceptTransient) {
- EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
-
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- // Transient player join the session without affecting the controls.
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Transient);
-
- EXPECT_TRUE(IsControllable());
- EXPECT_FALSE(IsSuspended());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- ControlsShownAfterContentAdded) {
- Expectation dontShowControls = EXPECT_CALL(
- *mock_web_contents_observer(), MediaSessionStateChanged(false, false));
- EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false))
- .After(dontShowControls);
-
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Transient);
-
- // The controls are shown when the content player is added.
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- EXPECT_TRUE(IsControllable());
- EXPECT_FALSE(IsSuspended());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- ControlsStayIfOnlyOnePlayerHasBeenPaused) {
- EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
-
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Transient);
-
- // Removing only content player doesn't hide the controls since the session
- // is still active.
- RemovePlayer(media_session_observer.get(), 0);
-
- EXPECT_TRUE(IsControllable());
- EXPECT_FALSE(IsSuspended());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- ControlsHideWhenTheLastPlayerIsRemoved) {
- Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
- EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(false, true))
- .After(showControls);
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- RemovePlayer(media_session_observer.get(), 0);
-
- EXPECT_TRUE(IsControllable());
- EXPECT_FALSE(IsSuspended());
-
- RemovePlayer(media_session_observer.get(), 1);
-
- EXPECT_FALSE(IsControllable());
- EXPECT_TRUE(IsSuspended());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- ControlsHideWhenAllThePlayersAreRemoved) {
- Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
- EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(false, true))
- .After(showControls);
-
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- RemovePlayers(media_session_observer.get());
-
- EXPECT_FALSE(IsControllable());
- EXPECT_TRUE(IsSuspended());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- ControlsNotHideWhenTheLastPlayerIsPaused) {
- Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
- EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, true))
- .After(showControls);
-
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- OnPlayerPaused(media_session_observer.get(), 0);
-
- EXPECT_TRUE(IsControllable());
- EXPECT_FALSE(IsSuspended());
-
- OnPlayerPaused(media_session_observer.get(), 1);
-
- EXPECT_TRUE(IsControllable());
- EXPECT_TRUE(IsSuspended());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- SuspendTemporaryUpdatesControls) {
- Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
- EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, true))
- .After(showControls);
-
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- SystemSuspend(true);
-
- EXPECT_TRUE(IsControllable());
- EXPECT_TRUE(IsSuspended());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsUpdatedWhenResumed) {
- Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
- Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, true))
- .After(showControls);
- EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false))
- .After(pauseControls);
-
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- SystemSuspend(true);
- SystemResume();
-
- EXPECT_TRUE(IsControllable());
- EXPECT_FALSE(IsSuspended());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- ControlsHideWhenSessionSuspendedPermanently) {
- Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
- EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(false, true))
- .After(showControls);
-
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- SystemSuspend(false);
-
- EXPECT_FALSE(IsControllable());
- EXPECT_TRUE(IsSuspended());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- ConstrolsHideWhenSessionStops) {
- Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
- Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, true))
- .After(showControls);
- EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(false, true))
- .After(pauseControls);
-
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- media_session_->Stop();
-
- EXPECT_FALSE(IsControllable());
- EXPECT_TRUE(IsSuspended());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- ControlsHideWhenSessionChangesFromContentToTransient) {
- Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
- Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, true))
- .After(showControls);
- EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(false, false))
- .After(pauseControls);
-
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- SystemSuspend(true);
-
- // This should reset the session and change it to a transient, so
- // hide the controls.
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Transient);
-
- EXPECT_FALSE(IsControllable());
- EXPECT_FALSE(IsSuspended());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- ControlsUpdatedWhenNewPlayerResetsSession) {
- Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
- Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, true))
- .After(showControls);
- EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false))
- .After(pauseControls);
-
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- SystemSuspend(true);
-
- // This should reset the session and update the controls.
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- EXPECT_TRUE(IsControllable());
- EXPECT_FALSE(IsSuspended());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- ControlsResumedWhenPlayerIsResumed) {
- Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
- Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, true))
- .After(showControls);
- EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false))
- .After(pauseControls);
-
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- SystemSuspend(true);
-
- // This should resume the session and update the controls.
- AddPlayer(media_session_observer.get(), 0, MediaSession::Type::Content);
-
- EXPECT_TRUE(IsControllable());
- EXPECT_FALSE(IsSuspended());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- ControlsUpdatedDueToResumeSessionAction) {
- Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
- EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, true)).After(showControls);
-
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- UISuspend();
-
- EXPECT_TRUE(IsControllable());
- EXPECT_TRUE(IsSuspended());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- ControlsUpdatedDueToSuspendSessionAction) {
- Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
- Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, true))
- .After(showControls);
- EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false))
- .After(pauseControls);
-
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- UISuspend();
- UIResume();
-
- EXPECT_TRUE(IsControllable());
- EXPECT_FALSE(IsSuspended());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- DontResumeBySystemUISuspendedSessions) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- UISuspend();
- EXPECT_TRUE(IsControllable());
- EXPECT_TRUE(IsSuspended());
-
- SystemResume();
- EXPECT_TRUE(IsControllable());
- EXPECT_TRUE(IsSuspended());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- AllowUIResumeForSystemSuspend) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- SystemSuspend(true);
- EXPECT_TRUE(IsControllable());
- EXPECT_TRUE(IsSuspended());
-
- UIResume();
- EXPECT_TRUE(IsControllable());
- EXPECT_FALSE(IsSuspended());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ResumeSuspendFromUI) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- UISuspend();
- EXPECT_TRUE(IsControllable());
- EXPECT_TRUE(IsSuspended());
-
- UIResume();
- EXPECT_TRUE(IsControllable());
- EXPECT_FALSE(IsSuspended());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ResumeSuspendFromSystem) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- SystemSuspend(true);
- EXPECT_TRUE(IsControllable());
- EXPECT_TRUE(IsSuspended());
-
- SystemResume();
- EXPECT_TRUE(IsControllable());
- EXPECT_FALSE(IsSuspended());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, UMA_Suspended_SystemTransient) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
- base::HistogramTester tester;
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- SystemSuspend(true);
-
- scoped_ptr<base::HistogramSamples> samples(
- tester.GetHistogramSamplesSinceCreation("Media.Session.Suspended"));
- EXPECT_EQ(1, samples->TotalCount());
- EXPECT_EQ(1, samples->GetCount(0)); // System Transient
- EXPECT_EQ(0, samples->GetCount(1)); // System Permanent
- EXPECT_EQ(0, samples->GetCount(2)); // UI
-}
-
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- UMA_Suspended_SystemPermantent) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
- base::HistogramTester tester;
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- SystemSuspend(false);
-
- scoped_ptr<base::HistogramSamples> samples(
- tester.GetHistogramSamplesSinceCreation("Media.Session.Suspended"));
- EXPECT_EQ(1, samples->TotalCount());
- EXPECT_EQ(0, samples->GetCount(0)); // System Transient
- EXPECT_EQ(1, samples->GetCount(1)); // System Permanent
- EXPECT_EQ(0, samples->GetCount(2)); // UI
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, UMA_Suspended_UI) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
- base::HistogramTester tester;
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- UISuspend();
-
- scoped_ptr<base::HistogramSamples> samples(
- tester.GetHistogramSamplesSinceCreation("Media.Session.Suspended"));
- EXPECT_EQ(1, samples->TotalCount());
- EXPECT_EQ(0, samples->GetCount(0)); // System Transient
- EXPECT_EQ(0, samples->GetCount(1)); // System Permanent
- EXPECT_EQ(1, samples->GetCount(2)); // UI
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, UMA_Suspended_Multiple) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
- base::HistogramTester tester;
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- UISuspend();
- UIResume();
-
- SystemSuspend(true);
- SystemResume();
-
- UISuspend();
- UIResume();
-
- SystemSuspend(false);
-
- scoped_ptr<base::HistogramSamples> samples(
- tester.GetHistogramSamplesSinceCreation("Media.Session.Suspended"));
- EXPECT_EQ(4, samples->TotalCount());
- EXPECT_EQ(1, samples->GetCount(0)); // System Transient
- EXPECT_EQ(1, samples->GetCount(1)); // System Permanent
- EXPECT_EQ(2, samples->GetCount(2)); // UI
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, UMA_Suspended_Crossing) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
- base::HistogramTester tester;
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- UISuspend();
- SystemSuspend(true);
- SystemSuspend(false);
- UIResume();
-
- SystemSuspend(true);
- SystemSuspend(true);
- SystemSuspend(false);
- SystemResume();
-
- scoped_ptr<base::HistogramSamples> samples(
- tester.GetHistogramSamplesSinceCreation("Media.Session.Suspended"));
- EXPECT_EQ(2, samples->TotalCount());
- EXPECT_EQ(1, samples->GetCount(0)); // System Transient
- EXPECT_EQ(0, samples->GetCount(1)); // System Permanent
- EXPECT_EQ(1, samples->GetCount(2)); // UI
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, UMA_Suspended_Stop) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
- base::HistogramTester tester;
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- media_session_->Stop();
-
- scoped_ptr<base::HistogramSamples> samples(
- tester.GetHistogramSamplesSinceCreation("Media.Session.Suspended"));
- EXPECT_EQ(1, samples->TotalCount());
- EXPECT_EQ(0, samples->GetCount(0)); // System Transient
- EXPECT_EQ(0, samples->GetCount(1)); // System Permanent
- EXPECT_EQ(1, samples->GetCount(2)); // UI
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, UMA_ActiveTime_NoActivation) {
- base::HistogramTester tester;
-
- scoped_ptr<MediaSession> media_session = CreateDummyMediaSession();
- media_session.reset();
-
- // A MediaSession that wasn't active doesn't register an active time.
- scoped_ptr<base::HistogramSamples> samples(
- tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime"));
- EXPECT_EQ(0, samples->TotalCount());
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- UMA_ActiveTime_SimpleActivation) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
- base::HistogramTester tester;
-
- MediaSessionUmaHelper* media_session_uma_helper = GetMediaSessionUMAHelper();
- base::SimpleTestClock* clock = new base::SimpleTestClock();
- clock->SetNow(base::Time::Now());
- media_session_uma_helper->SetClockForTest(
- scoped_ptr<base::SimpleTestClock>(clock));
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- clock->Advance(base::TimeDelta::FromMilliseconds(1000));
- media_session_->Stop();
-
- scoped_ptr<base::HistogramSamples> samples(
- tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime"));
- EXPECT_EQ(1, samples->TotalCount());
- EXPECT_EQ(1, samples->GetCount(1000));
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- UMA_ActiveTime_ActivationWithUISuspension) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
- base::HistogramTester tester;
-
- MediaSessionUmaHelper* media_session_uma_helper = GetMediaSessionUMAHelper();
- base::SimpleTestClock* clock = new base::SimpleTestClock();
- clock->SetNow(base::Time::Now());
- media_session_uma_helper->SetClockForTest(
- scoped_ptr<base::SimpleTestClock>(clock));
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- clock->Advance(base::TimeDelta::FromMilliseconds(1000));
- UISuspend();
-
- clock->Advance(base::TimeDelta::FromMilliseconds(2000));
- UIResume();
-
- clock->Advance(base::TimeDelta::FromMilliseconds(1000));
- media_session_->Stop();
-
- scoped_ptr<base::HistogramSamples> samples(
- tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime"));
- EXPECT_EQ(1, samples->TotalCount());
- EXPECT_EQ(1, samples->GetCount(2000));
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- UMA_ActiveTime_ActivationWithSystemSuspension) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
- base::HistogramTester tester;
-
- MediaSessionUmaHelper* media_session_uma_helper = GetMediaSessionUMAHelper();
- base::SimpleTestClock* clock = new base::SimpleTestClock();
- clock->SetNow(base::Time::Now());
- media_session_uma_helper->SetClockForTest(
- scoped_ptr<base::SimpleTestClock>(clock));
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
-
- clock->Advance(base::TimeDelta::FromMilliseconds(1000));
- SystemSuspend(true);
-
- clock->Advance(base::TimeDelta::FromMilliseconds(2000));
- SystemResume();
-
- clock->Advance(base::TimeDelta::FromMilliseconds(1000));
- media_session_->Stop();
-
- scoped_ptr<base::HistogramSamples> samples(
- tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime"));
- EXPECT_EQ(1, samples->TotalCount());
- EXPECT_EQ(1, samples->GetCount(2000));
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- UMA_ActiveTime_ActivateSuspendedButNotStopped) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
- base::HistogramTester tester;
-
- MediaSessionUmaHelper* media_session_uma_helper = GetMediaSessionUMAHelper();
- base::SimpleTestClock* clock = new base::SimpleTestClock();
- clock->SetNow(base::Time::Now());
- media_session_uma_helper->SetClockForTest(
- scoped_ptr<base::SimpleTestClock>(clock));
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- clock->Advance(base::TimeDelta::FromMilliseconds(500));
- SystemSuspend(true);
-
- {
- scoped_ptr<base::HistogramSamples> samples(
- tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime"));
- EXPECT_EQ(0, samples->TotalCount());
- }
-
- SystemResume();
- clock->Advance(base::TimeDelta::FromMilliseconds(5000));
- UISuspend();
-
- {
- scoped_ptr<base::HistogramSamples> samples(
- tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime"));
- EXPECT_EQ(0, samples->TotalCount());
- }
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- UMA_ActiveTime_ActivateSuspendStopTwice) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
- base::HistogramTester tester;
-
- MediaSessionUmaHelper* media_session_uma_helper = GetMediaSessionUMAHelper();
- base::SimpleTestClock* clock = new base::SimpleTestClock();
- clock->SetNow(base::Time::Now());
- media_session_uma_helper->SetClockForTest(
- scoped_ptr<base::SimpleTestClock>(clock));
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- clock->Advance(base::TimeDelta::FromMilliseconds(500));
- SystemSuspend(true);
- media_session_->Stop();
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- clock->Advance(base::TimeDelta::FromMilliseconds(5000));
- SystemResume();
- media_session_->Stop();
-
- scoped_ptr<base::HistogramSamples> samples(
- tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime"));
- EXPECT_EQ(2, samples->TotalCount());
- EXPECT_EQ(1, samples->GetCount(500));
- EXPECT_EQ(1, samples->GetCount(5000));
-}
-
-IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- UMA_ActiveTime_MultipleActivations) {
- scoped_ptr<MockMediaSessionObserver> media_session_observer(
- new MockMediaSessionObserver);
- base::HistogramTester tester;
-
- MediaSessionUmaHelper* media_session_uma_helper = GetMediaSessionUMAHelper();
- base::SimpleTestClock* clock = new base::SimpleTestClock();
- clock->SetNow(base::Time::Now());
- media_session_uma_helper->SetClockForTest(
- scoped_ptr<base::SimpleTestClock>(clock));
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- clock->Advance(base::TimeDelta::FromMilliseconds(10000));
- RemovePlayer(media_session_observer.get(), 0);
-
- StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content);
- clock->Advance(base::TimeDelta::FromMilliseconds(1000));
- media_session_->Stop();
-
- scoped_ptr<base::HistogramSamples> samples(
- tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime"));
- EXPECT_EQ(2, samples->TotalCount());
- EXPECT_EQ(1, samples->GetCount(1000));
- EXPECT_EQ(1, samples->GetCount(10000));
-}
« no previous file with comments | « content/browser/media/android/media_session.cc ('k') | content/browser/media/android/media_session_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698