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

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

Issue 2291163002: Let MediaSession store duck state instead of volume multiplier (Closed)
Patch Set: addressed Anton's comments Created 4 years, 4 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/session/media_session_browsertest.cc
diff --git a/content/browser/media/session/media_session_browsertest.cc b/content/browser/media/session/media_session_browsertest.cc
index 699570f175e61589bca568911be3253821c67cc9..4c53b3b5dc5141edd6217421990807c0108f320e 100644
--- a/content/browser/media/session/media_session_browsertest.cc
+++ b/content/browser/media/session/media_session_browsertest.cc
@@ -34,6 +34,9 @@ using ::testing::Expectation;
namespace {
+const double kDefaultVolumeMultiplier = 1.0;
+const double kDuckingVolumeMultiplier = 0.2;
+
class MockMediaSessionDelegate : public MediaSessionDelegate {
public:
bool RequestAudioFocus(content::AudioFocusManager::AudioFocusType) override {
@@ -137,8 +140,12 @@ class MediaSessionBrowserTest : public content::ContentBrowserTest {
: MediaSession::State::INACTIVE);
}
- void SystemSetVolumeMultiplier(double volume_multiplier) {
- media_session_->SetVolumeMultiplier(volume_multiplier);
+ void SystemStartDucking() {
+ media_session_->StartDucking();
+ }
+
+ void SystemStopDucking() {
+ media_session_->StopDucking();
}
MockWebContentsObserver* mock_web_contents_observer() {
@@ -266,7 +273,24 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
}
IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
- MediaSessionSetVolumeMultiplier) {
+ InitialVolumeMultiplier) {
+ std::unique_ptr<MockMediaSessionObserver> media_session_observer(
+ new MockMediaSessionObserver);
+
+ StartNewPlayer(media_session_observer.get(),
+ media::MediaContentType::Persistent);
+ StartNewPlayer(media_session_observer.get(),
+ media::MediaContentType::Persistent);
+
+ EXPECT_EQ(kDefaultVolumeMultiplier,
+ media_session_observer->GetVolumeMultiplier(0));
+ EXPECT_EQ(kDefaultVolumeMultiplier,
+ media_session_observer->GetVolumeMultiplier(1));
+
+}
+
+IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
+ StartDuckingReducesVolumeMultiplier) {
std::unique_ptr<MockMediaSessionObserver> media_session_observer(
new MockMediaSessionObserver);
@@ -274,17 +298,42 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
media::MediaContentType::Persistent);
StartNewPlayer(media_session_observer.get(),
media::MediaContentType::Persistent);
+ SystemStartDucking();
- double volume_multiplier = 0.2f;
- SystemSetVolumeMultiplier(volume_multiplier);
+ EXPECT_EQ(kDuckingVolumeMultiplier,
+ media_session_observer->GetVolumeMultiplier(0));
+ EXPECT_EQ(kDuckingVolumeMultiplier,
+ media_session_observer->GetVolumeMultiplier(1));
+
+ StartNewPlayer(media_session_observer.get(),
+ media::MediaContentType::Persistent);
+
+ EXPECT_EQ(kDuckingVolumeMultiplier,
+ media_session_observer->GetVolumeMultiplier(2));
+}
+
+IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
+ StopDuckingRecoversVolumeMultiplier) {
+ std::unique_ptr<MockMediaSessionObserver> media_session_observer(
+ new MockMediaSessionObserver);
+
+ StartNewPlayer(media_session_observer.get(),
+ media::MediaContentType::Persistent);
+ StartNewPlayer(media_session_observer.get(),
+ media::MediaContentType::Persistent);
+ SystemStartDucking();
+ SystemStopDucking();
- EXPECT_EQ(volume_multiplier, media_session_observer->GetVolumeMultiplier(0));
- EXPECT_EQ(volume_multiplier, media_session_observer->GetVolumeMultiplier(1));
+ EXPECT_EQ(kDefaultVolumeMultiplier,
+ media_session_observer->GetVolumeMultiplier(0));
+ EXPECT_EQ(kDefaultVolumeMultiplier,
+ media_session_observer->GetVolumeMultiplier(1));
StartNewPlayer(media_session_observer.get(),
media::MediaContentType::Persistent);
- EXPECT_EQ(volume_multiplier, media_session_observer->GetVolumeMultiplier(2));
+ EXPECT_EQ(kDefaultVolumeMultiplier,
+ media_session_observer->GetVolumeMultiplier(2));
}
IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, AudioFocusInitialState) {
« no previous file with comments | « content/browser/media/session/media_session.cc ('k') | content/browser/media/session/media_session_delegate_android.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698