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

Side by Side Diff: content/browser/renderer_host/media/audio_output_device_enumerator_unittest.cc

Issue 1901583005: Revert of Pass task runners to AudioManager constructor. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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 (c) 2015 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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/renderer_host/media/audio_output_device_enumerator.h" 5 #include "content/browser/renderer_host/media/audio_output_device_enumerator.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <string> 8 #include <string>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
11 #include "base/location.h" 11 #include "base/location.h"
12 #include "base/macros.h" 12 #include "base/macros.h"
13 #include "base/memory/ref_counted.h" 13 #include "base/memory/ref_counted.h"
14 #include "base/run_loop.h" 14 #include "base/run_loop.h"
15 #include "base/single_thread_task_runner.h"
15 #include "base/strings/string_number_conversions.h" 16 #include "base/strings/string_number_conversions.h"
16 #include "base/thread_task_runner_handle.h" 17 #include "base/thread_task_runner_handle.h"
17 #include "content/public/test/test_browser_thread_bundle.h" 18 #include "content/public/test/test_browser_thread_bundle.h"
18 #include "media/audio/audio_manager_base.h" 19 #include "media/audio/audio_manager_base.h"
19 #include "media/audio/fake_audio_log_factory.h" 20 #include "media/audio/fake_audio_log_factory.h"
20 #include "media/audio/fake_audio_manager.h" 21 #include "media/audio/fake_audio_manager.h"
21 #include "testing/gmock/include/gmock/gmock.h" 22 #include "testing/gmock/include/gmock/gmock.h"
22 #include "testing/gtest/include/gtest/gtest.h" 23 #include "testing/gtest/include/gtest/gtest.h"
23 24
24 using testing::_; 25 using testing::_;
25 26
26 namespace content { 27 namespace content {
27 28
28 namespace { 29 namespace {
29 30
30 class MockAudioManager : public media::FakeAudioManager { 31 class MockAudioManager : public media::FakeAudioManager {
31 public: 32 public:
32 MockAudioManager(size_t num_devices) 33 MockAudioManager(size_t num_devices)
33 : FakeAudioManager(base::ThreadTaskRunnerHandle::Get(), 34 : FakeAudioManager(&fake_audio_log_factory_), num_devices_(num_devices) {}
34 base::ThreadTaskRunnerHandle::Get(),
35 &fake_audio_log_factory_),
36 num_devices_(num_devices) {}
37 MockAudioManager() : MockAudioManager(0) {} 35 MockAudioManager() : MockAudioManager(0) {}
38 ~MockAudioManager() override {} 36 ~MockAudioManager() override {}
39 37
40 MOCK_METHOD1(MockGetAudioOutputDeviceNames, void(media::AudioDeviceNames*)); 38 MOCK_METHOD1(MockGetAudioOutputDeviceNames, void(media::AudioDeviceNames*));
41 39
42 void GetAudioOutputDeviceNames( 40 void GetAudioOutputDeviceNames(
43 media::AudioDeviceNames* device_names) override { 41 media::AudioDeviceNames* device_names) override {
44 DCHECK(device_names->empty()); 42 DCHECK(device_names->empty());
45 MockGetAudioOutputDeviceNames(device_names); 43 MockGetAudioOutputDeviceNames(device_names);
46 if (num_devices_ > 0) { 44 if (num_devices_ > 0) {
(...skipping 29 matching lines...) Expand all
76 } 74 }
77 75
78 private: 76 private:
79 DISALLOW_COPY_AND_ASSIGN(OnlyDefaultDeviceAudioManager); 77 DISALLOW_COPY_AND_ASSIGN(OnlyDefaultDeviceAudioManager);
80 }; 78 };
81 79
82 } // namespace 80 } // namespace
83 81
84 class AudioOutputDeviceEnumeratorTest : public ::testing::Test { 82 class AudioOutputDeviceEnumeratorTest : public ::testing::Test {
85 public: 83 public:
86 AudioOutputDeviceEnumeratorTest() {} 84 AudioOutputDeviceEnumeratorTest()
85 : thread_bundle_(), task_runner_(base::ThreadTaskRunnerHandle::Get()) {}
86
87 ~AudioOutputDeviceEnumeratorTest() override {} 87 ~AudioOutputDeviceEnumeratorTest() override {}
88 88
89 MOCK_METHOD1(MockCallback, void(const AudioOutputDeviceEnumeration&)); 89 MOCK_METHOD1(MockCallback, void(const AudioOutputDeviceEnumeration&));
90 90
91 // Performs n calls to MockCallback (one by QuitCallback) 91 // Performs n calls to MockCallback (one by QuitCallback)
92 // and n-1 calls to Enumerate 92 // and n-1 calls to Enumerate
93 void EnumerateCallback(AudioOutputDeviceEnumerator* enumerator, 93 void EnumerateCallback(AudioOutputDeviceEnumerator* enumerator,
94 int n, 94 int n,
95 const AudioOutputDeviceEnumeration& result) { 95 const AudioOutputDeviceEnumeration& result) {
96 MockCallback(result); 96 MockCallback(result);
97 if (n > 1) { 97 if (n > 1) {
98 enumerator->Enumerate( 98 enumerator->Enumerate(
99 base::Bind(&AudioOutputDeviceEnumeratorTest::EnumerateCallback, 99 base::Bind(&AudioOutputDeviceEnumeratorTest::EnumerateCallback,
100 base::Unretained(this), enumerator, n - 1)); 100 base::Unretained(this), enumerator, n - 1));
101 } else { 101 } else {
102 enumerator->Enumerate( 102 enumerator->Enumerate(
103 base::Bind(&AudioOutputDeviceEnumeratorTest::QuitCallback, 103 base::Bind(&AudioOutputDeviceEnumeratorTest::QuitCallback,
104 base::Unretained(this))); 104 base::Unretained(this)));
105 } 105 }
106 } 106 }
107 107
108 void EnumerateCountCallback(size_t num_entries_expected, 108 void EnumerateCountCallback(size_t num_entries_expected,
109 bool actual_devices_expected, 109 bool actual_devices_expected,
110 const AudioOutputDeviceEnumeration& result) { 110 const AudioOutputDeviceEnumeration& result) {
111 EXPECT_EQ(actual_devices_expected, result.has_actual_devices); 111 EXPECT_EQ(actual_devices_expected, result.has_actual_devices);
112 EXPECT_EQ(num_entries_expected, result.devices.size()); 112 EXPECT_EQ(num_entries_expected, result.devices.size());
113 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, 113 task_runner_->PostTask(FROM_HERE, run_loop_.QuitClosure());
114 run_loop_.QuitClosure());
115 } 114 }
116 115
117 void QuitCallback(const AudioOutputDeviceEnumeration& result) { 116 void QuitCallback(const AudioOutputDeviceEnumeration& result) {
118 MockCallback(result); 117 MockCallback(result);
119 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, 118 task_runner_->PostTask(FROM_HERE, run_loop_.QuitClosure());
120 run_loop_.QuitClosure());
121 } 119 }
122 120
123 protected: 121 protected:
122 std::unique_ptr<MockAudioManager> audio_manager_;
124 TestBrowserThreadBundle thread_bundle_; 123 TestBrowserThreadBundle thread_bundle_;
125 std::unique_ptr<MockAudioManager, media::AudioManagerDeleter> audio_manager_; 124 scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
126 base::RunLoop run_loop_; 125 base::RunLoop run_loop_;
127 126
128 private: 127 private:
129 DISALLOW_COPY_AND_ASSIGN(AudioOutputDeviceEnumeratorTest); 128 DISALLOW_COPY_AND_ASSIGN(AudioOutputDeviceEnumeratorTest);
130 }; 129 };
131 130
132 TEST_F(AudioOutputDeviceEnumeratorTest, EnumerateWithCache) { 131 TEST_F(AudioOutputDeviceEnumeratorTest, EnumerateWithCache) {
133 const int num_calls = 10; 132 const int num_calls = 10;
134 audio_manager_.reset(new MockAudioManager()); 133 audio_manager_.reset(new MockAudioManager());
135 EXPECT_CALL(*audio_manager_, MockGetAudioOutputDeviceNames(_)).Times(1); 134 EXPECT_CALL(*audio_manager_, MockGetAudioOutputDeviceNames(_)).Times(1);
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 AudioOutputDeviceEnumerator enumerator( 201 AudioOutputDeviceEnumerator enumerator(
203 audio_manager_.get(), 202 audio_manager_.get(),
204 AudioOutputDeviceEnumerator::CACHE_POLICY_NO_CACHING); 203 AudioOutputDeviceEnumerator::CACHE_POLICY_NO_CACHING);
205 enumerator.Enumerate( 204 enumerator.Enumerate(
206 base::Bind(&AudioOutputDeviceEnumeratorTest::EnumerateCountCallback, 205 base::Bind(&AudioOutputDeviceEnumeratorTest::EnumerateCountCallback,
207 base::Unretained(this), num_devices + 1, true)); 206 base::Unretained(this), num_devices + 1, true));
208 run_loop_.Run(); 207 run_loop_.Run();
209 } 208 }
210 209
211 } // namespace content 210 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698