Chromium Code Reviews| Index: media/audio/audio_manager_unittest.cc |
| diff --git a/media/audio/audio_manager_unittest.cc b/media/audio/audio_manager_unittest.cc |
| index b878861d54d6ce66d605e2eef9a85e9186abf52e..daa3346b3c46adf500bb1b1b5cdd6fac494e9ae9 100644 |
| --- a/media/audio/audio_manager_unittest.cc |
| +++ b/media/audio/audio_manager_unittest.cc |
| @@ -640,4 +640,67 @@ TEST_F(AudioManagerTest, GetAssociatedOutputDeviceID) { |
| } |
| #endif // defined(USE_CRAS) |
| +class TestAudioManager : public FakeAudioManager { |
| + // For testing the default implementation of GetGroupId(Input|Output) |
| + // input$i is associated to output$i, if both exist. |
| + // Default input is input1. |
| + // Default output is output2. |
| + public: |
| + TestAudioManager( |
| + scoped_refptr<base::SingleThreadTaskRunner> task_runner, |
| + scoped_refptr<base::SingleThreadTaskRunner> worker_task_runner, |
| + AudioLogFactory* audio_log_factory) |
| + : FakeAudioManager(task_runner, worker_task_runner, audio_log_factory) {} |
| + |
| + void GetAudioInputDeviceNames(AudioDeviceNames* device_names) override { |
| + device_names->emplace_back("Input 1", "input1"); |
| + device_names->emplace_back("Input 2", "input2"); |
| + device_names->emplace_back("Input 3", "input3"); |
| + device_names->push_front(AudioDeviceName::CreateDefault()); |
| + } |
| + |
| + void GetAudioOutputDeviceNames(AudioDeviceNames* device_names) override { |
| + device_names->emplace_back("Output 1", "output1"); |
| + device_names->emplace_back("Output 2", "output2"); |
| + device_names->emplace_back("Output 4", "output4"); |
| + device_names->push_front(AudioDeviceName::CreateDefault()); |
| + } |
| + |
| + std::string GetDefaultOutputDeviceID() override { return "output4"; } |
| + |
| + std::string GetAssociatedOutputDeviceID( |
| + const std::string& input_id) override { |
| + if (input_id == "input1") |
| + return "output1"; |
| + else if (input_id == "input2") |
|
tommi (sloooow) - chröme
2016/08/29 16:19:53
nit: 'else' isn't needed.
Max Morin
2016/08/30 08:17:45
Done.
|
| + return "output2"; |
| + else if (input_id == "default") |
| + return "output1"; |
| + return ""; |
| + } |
| +}; |
| + |
| +TEST_F(AudioManagerTest, GetGroupId) { |
| + CreateAudioManagerForTesting<TestAudioManager>(); |
| + // Groups: |
| + // 0: input1, output1, default input |
| + // 1: input2, output2 |
| + // 2: input3, |
| + // 3: output4, default output |
| + std::vector<std::string> group; |
| + group.push_back(audio_manager_->GetGroupIDInput("input1")); |
| + group.push_back(audio_manager_->GetGroupIDInput("input2")); |
| + group.push_back(audio_manager_->GetGroupIDInput("input3")); |
| + group.push_back(audio_manager_->GetGroupIDOutput("output4")); |
| + for (size_t i = 0; i < group.size(); ++i) { |
| + for (size_t j = i + 1; j < group.size(); ++j) { |
| + EXPECT_NE(group[i], group[j]); |
| + } |
| + } |
| + EXPECT_EQ(group[0], audio_manager_->GetGroupIDOutput("output1")); |
| + EXPECT_EQ(group[0], audio_manager_->GetGroupIDInput("default")); |
| + EXPECT_EQ(group[1], audio_manager_->GetGroupIDOutput("output2")); |
| + EXPECT_EQ(group[3], audio_manager_->GetGroupIDOutput("default")); |
| +} |
| + |
| } // namespace media |