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

Unified Diff: media/audio/audio_manager_unittest.cc

Issue 2313663002: Reland of Add groupid for media devices. Group audio devices. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix. Created 4 years, 3 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
« no previous file with comments | « media/audio/audio_manager_base.cc ('k') | media/audio/mock_audio_manager.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..5cfaf6a84e91f4b05f7a9e90be574e808e4f19f9 100644
--- a/media/audio/audio_manager_unittest.cc
+++ b/media/audio/audio_manager_unittest.cc
@@ -5,6 +5,7 @@
#include "media/audio/audio_manager.h"
#include <memory>
+#include <vector>
#include "base/bind.h"
#include "base/environment.h"
@@ -16,7 +17,6 @@
#include "base/threading/thread_task_runner_handle.h"
#include "build/build_config.h"
#include "media/audio/audio_device_description.h"
-#include "media/audio/audio_manager.h"
#include "media/audio/audio_output_proxy.h"
#include "media/audio/audio_unittest_util.h"
#include "media/audio/fake_audio_log_factory.h"
@@ -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";
+ if (input_id == "input2")
+ return "output2";
+ 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
« no previous file with comments | « media/audio/audio_manager_base.cc ('k') | media/audio/mock_audio_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698