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

Unified Diff: media/audio/audio_manager_unittest.cc

Issue 2273653002: Add groupid for media devices. Group audio devices. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rename variables 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: 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

Powered by Google App Engine
This is Rietveld 408576698