Index: content/browser/media/session/media_session_browsertest.cc |
diff --git a/content/browser/media/android/media_session_browsertest.cc b/content/browser/media/session/media_session_browsertest.cc |
similarity index 93% |
rename from content/browser/media/android/media_session_browsertest.cc |
rename to content/browser/media/session/media_session_browsertest.cc |
index f613c6783dee5511742b30ccf61da74556ea586e..f75342d7bfd8ff81f8eec1adfd0d025e877f79da 100644 |
--- a/content/browser/media/android/media_session_browsertest.cc |
+++ b/content/browser/media/session/media_session_browsertest.cc |
@@ -2,7 +2,7 @@ |
// 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 "content/browser/media/session/media_session.h" |
#include <stddef.h> |
@@ -13,7 +13,8 @@ |
#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/browser/media/session/media_session_delegate.h" |
+#include "content/browser/media/session/mock_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" |
@@ -23,93 +24,23 @@ |
using content::WebContents; |
using content::WebContentsObserver; |
using content::MediaSession; |
+using content::MediaSessionDelegate; |
using content::MediaSessionObserver; |
using content::MediaSessionUmaHelper; |
+using content::MockMediaSessionObserver; |
using ::testing::Expectation; |
namespace { |
-class MockMediaSessionObserver : public MediaSessionObserver { |
+class MockMediaSessionDelegate : public MediaSessionDelegate { |
public: |
- MockMediaSessionObserver() |
- : received_resume_calls_(0), |
- received_suspend_calls_(0) { |
+ bool RequestAudioFocus(MediaSession::Type) override { |
+ return true; |
} |
- ~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; |
+ void AbandonAudioFocus() override { |
} |
- |
- 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 { |
@@ -133,7 +64,8 @@ class MediaSessionBrowserTest : public content::ContentBrowserTest { |
mock_web_contents_observer_.reset( |
new MockWebContentsObserver(shell()->web_contents())); |
media_session_ = MediaSession::Get(shell()->web_contents()); |
- media_session_->ResetJavaRefForTest(); |
+ media_session_->SetDelegateForTests( |
+ scoped_ptr<MediaSessionDelegate>(new MockMediaSessionDelegate())); |
ASSERT_TRUE(media_session_); |
} |
@@ -186,24 +118,26 @@ class MediaSessionBrowserTest : public content::ContentBrowserTest { |
bool IsSuspended() { return media_session_->IsSuspended(); } |
void UIResume() { |
- media_session_->Resume(); |
+ media_session_->Resume(MediaSession::SuspendType::UI); |
} |
void SystemResume() { |
- media_session_->OnResume(nullptr, nullptr); |
+ media_session_->OnResumeInternal(MediaSession::SuspendType::SYSTEM); |
} |
void UISuspend() { |
- media_session_->Suspend(); |
+ media_session_->Suspend(MediaSession::SuspendType::UI); |
} |
void SystemSuspend(bool temporary) { |
- media_session_->OnSuspend(nullptr, nullptr, temporary); |
+ media_session_->OnSuspendInternal( |
+ MediaSession::SuspendType::SYSTEM, |
+ temporary ? MediaSession::State::SUSPENDED |
+ : MediaSession::State::INACTIVE); |
} |
void SystemSetVolumeMultiplier(double volume_multiplier) { |
- media_session_->OnSetVolumeMultiplier( |
- nullptr, nullptr, volume_multiplier); |
+ media_session_->SetVolumeMultiplier(volume_multiplier); |
} |
MockWebContentsObserver* mock_web_contents_observer() { |
@@ -364,7 +298,7 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, StopGivesAwayAudioFocus) { |
StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); |
- media_session_->Stop(); |
+ media_session_->Stop(MediaSession::SuspendType::UI); |
EXPECT_FALSE(HasAudioFocus()); |
} |
@@ -797,7 +731,7 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, |
StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); |
- media_session_->Stop(); |
+ media_session_->Stop(MediaSession::SuspendType::UI); |
EXPECT_FALSE(IsControllable()); |
EXPECT_TRUE(IsSuspended()); |
@@ -1080,7 +1014,7 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, UMA_Suspended_Stop) { |
base::HistogramTester tester; |
StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); |
- media_session_->Stop(); |
+ media_session_->Stop(MediaSession::SuspendType::UI); |
scoped_ptr<base::HistogramSamples> samples( |
tester.GetHistogramSamplesSinceCreation("Media.Session.Suspended")); |
@@ -1117,7 +1051,7 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, |
StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); |
clock->Advance(base::TimeDelta::FromMilliseconds(1000)); |
- media_session_->Stop(); |
+ media_session_->Stop(MediaSession::SuspendType::UI); |
scoped_ptr<base::HistogramSamples> samples( |
tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime")); |
@@ -1146,7 +1080,7 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, |
UIResume(); |
clock->Advance(base::TimeDelta::FromMilliseconds(1000)); |
- media_session_->Stop(); |
+ media_session_->Stop(MediaSession::SuspendType::UI); |
scoped_ptr<base::HistogramSamples> samples( |
tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime")); |
@@ -1175,7 +1109,7 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, |
SystemResume(); |
clock->Advance(base::TimeDelta::FromMilliseconds(1000)); |
- media_session_->Stop(); |
+ media_session_->Stop(MediaSession::SuspendType::UI); |
scoped_ptr<base::HistogramSamples> samples( |
tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime")); |
@@ -1231,12 +1165,12 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, |
StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); |
clock->Advance(base::TimeDelta::FromMilliseconds(500)); |
SystemSuspend(true); |
- media_session_->Stop(); |
+ media_session_->Stop(MediaSession::SuspendType::UI); |
StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); |
clock->Advance(base::TimeDelta::FromMilliseconds(5000)); |
SystemResume(); |
- media_session_->Stop(); |
+ media_session_->Stop(MediaSession::SuspendType::UI); |
scoped_ptr<base::HistogramSamples> samples( |
tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime")); |
@@ -1263,7 +1197,7 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, |
StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); |
clock->Advance(base::TimeDelta::FromMilliseconds(1000)); |
- media_session_->Stop(); |
+ media_session_->Stop(MediaSession::SuspendType::UI); |
scoped_ptr<base::HistogramSamples> samples( |
tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime")); |