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

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

Issue 2677153002: Use TaskScheduler instead of blocking pool in render_widget_host_impl.cc. (Closed)
Patch Set: ScopedTaskSchedulers Created 3 years, 10 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/audio_focus_manager.h" 5 #include "content/browser/media/session/audio_focus_manager.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/run_loop.h"
8 #include "content/browser/media/session/media_session_impl.h" 9 #include "content/browser/media/session/media_session_impl.h"
9 #include "content/browser/media/session/media_session_player_observer.h" 10 #include "content/browser/media/session/media_session_player_observer.h"
10 #include "content/public/test/mock_render_process_host.h" 11 #include "content/public/test/mock_render_process_host.h"
11 #include "content/public/test/test_browser_context.h" 12 #include "content/public/test/test_browser_context.h"
12 #include "content/public/test/test_browser_thread.h" 13 #include "content/public/test/test_browser_thread_bundle.h"
13 #include "content/test/test_web_contents.h" 14 #include "content/test/test_web_contents.h"
14 #include "media/base/media_content_type.h" 15 #include "media/base/media_content_type.h"
15 #include "media/base/media_switches.h" 16 #include "media/base/media_switches.h"
16 17
17 namespace content { 18 namespace content {
18 19
19 namespace { 20 namespace {
20 21
21 class MockMediaSessionPlayerObserver : public MediaSessionPlayerObserver { 22 class MockMediaSessionPlayerObserver : public MediaSessionPlayerObserver {
22 public: 23 public:
23 void OnSuspend(int player_id) override {} 24 void OnSuspend(int player_id) override {}
24 void OnResume(int player_id) override {} 25 void OnResume(int player_id) override {}
25 void OnSetVolumeMultiplier( 26 void OnSetVolumeMultiplier(
26 int player_id, double volume_multiplier) override {} 27 int player_id, double volume_multiplier) override {}
27 RenderFrameHost* GetRenderFrameHost() const override { return nullptr; } 28 RenderFrameHost* GetRenderFrameHost() const override { return nullptr; }
28 }; 29 };
29 30
30 } // anonymous namespace 31 } // anonymous namespace
31 32
32 using AudioFocusType = AudioFocusManager::AudioFocusType; 33 using AudioFocusType = AudioFocusManager::AudioFocusType;
33 using SuspendType = MediaSession::SuspendType; 34 using SuspendType = MediaSession::SuspendType;
34 35
35 class AudioFocusManagerTest : public testing::Test { 36 class AudioFocusManagerTest : public testing::Test {
36 public: 37 public:
37 AudioFocusManagerTest() : ui_thread_(BrowserThread::UI, &message_loop_) {} 38 AudioFocusManagerTest() = default;
38 39
39 void SetUp() override { 40 void SetUp() override {
40 base::CommandLine::ForCurrentProcess()->AppendSwitch( 41 base::CommandLine::ForCurrentProcess()->AppendSwitch(
41 switches::kEnableDefaultMediaSession); 42 switches::kEnableDefaultMediaSession);
42 rph_factory_.reset(new MockRenderProcessHostFactory()); 43 rph_factory_.reset(new MockRenderProcessHostFactory());
43 SiteInstanceImpl::set_render_process_host_factory(rph_factory_.get()); 44 SiteInstanceImpl::set_render_process_host_factory(rph_factory_.get());
44 browser_context_.reset(new TestBrowserContext()); 45 browser_context_.reset(new TestBrowserContext());
45 pepper_observer_.reset(new MockMediaSessionPlayerObserver()); 46 pepper_observer_.reset(new MockMediaSessionPlayerObserver());
46 } 47 }
47 48
48 void TearDown() override { 49 void TearDown() override {
50 // Run pending tasks.
51 base::RunLoop().RunUntilIdle();
52
49 browser_context_.reset(); 53 browser_context_.reset();
50 SiteInstanceImpl::set_render_process_host_factory(nullptr); 54 SiteInstanceImpl::set_render_process_host_factory(nullptr);
51 rph_factory_.reset(); 55 rph_factory_.reset();
52 } 56 }
53 57
54 MediaSessionImpl* GetAudioFocusedSession() const { 58 MediaSessionImpl* GetAudioFocusedSession() const {
55 const auto& audio_focus_stack = 59 const auto& audio_focus_stack =
56 AudioFocusManager::GetInstance()->audio_focus_stack_; 60 AudioFocusManager::GetInstance()->audio_focus_stack_;
57 for (auto iter = audio_focus_stack.rbegin(); 61 for (auto iter = audio_focus_stack.rbegin();
58 iter != audio_focus_stack.rend(); ++iter) { 62 iter != audio_focus_stack.rend(); ++iter) {
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 } 98 }
95 99
96 WebContents* CreateWebContents() { 100 WebContents* CreateWebContents() {
97 return TestWebContents::Create(browser_context_.get(), 101 return TestWebContents::Create(browser_context_.get(),
98 SiteInstance::SiteInstance::Create(browser_context_.get())); 102 SiteInstance::SiteInstance::Create(browser_context_.get()));
99 } 103 }
100 104
101 std::unique_ptr<MediaSessionPlayerObserver> pepper_observer_; 105 std::unique_ptr<MediaSessionPlayerObserver> pepper_observer_;
102 106
103 private: 107 private:
104 base::MessageLoopForUI message_loop_; 108 TestBrowserThreadBundle test_browser_thread_bundle_;
105 TestBrowserThread ui_thread_;
106 109
107 std::unique_ptr<MockRenderProcessHostFactory> rph_factory_; 110 std::unique_ptr<MockRenderProcessHostFactory> rph_factory_;
108 std::unique_ptr<TestBrowserContext> browser_context_; 111 std::unique_ptr<TestBrowserContext> browser_context_;
109 }; 112 };
110 113
111 TEST_F(AudioFocusManagerTest, InstanceAvailableAndSame) { 114 TEST_F(AudioFocusManagerTest, InstanceAvailableAndSame) {
112 AudioFocusManager* audio_focus_manager = AudioFocusManager::GetInstance(); 115 AudioFocusManager* audio_focus_manager = AudioFocusManager::GetInstance();
113 ASSERT_TRUE(!!audio_focus_manager); 116 ASSERT_TRUE(!!audio_focus_manager);
114 ASSERT_EQ(audio_focus_manager, AudioFocusManager::GetInstance()); 117 ASSERT_EQ(audio_focus_manager, AudioFocusManager::GetInstance());
115 } 118 }
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after
450 ASSERT_EQ(media_session_3, GetAudioFocusedSession()); 453 ASSERT_EQ(media_session_3, GetAudioFocusedSession());
451 ASSERT_TRUE(media_session_2->IsReallySuspended()); 454 ASSERT_TRUE(media_session_2->IsReallySuspended());
452 ASSERT_TRUE(media_session_1->IsActive()); 455 ASSERT_TRUE(media_session_1->IsActive());
453 ASSERT_TRUE(IsSessionDucking(media_session_1)); 456 ASSERT_TRUE(IsSessionDucking(media_session_1));
454 457
455 AbandonAudioFocus(media_session_3); 458 AbandonAudioFocus(media_session_3);
456 ASSERT_EQ(media_session_1, GetAudioFocusedSession()); 459 ASSERT_EQ(media_session_1, GetAudioFocusedSession());
457 } 460 }
458 461
459 } // namespace content 462 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698