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

Unified Diff: media/audio/audio_manager_unittest.cc

Issue 2563653002: Replace AudioManager::GetAudio*DeviceNames with AudioManager::GetAudio*DeviceDescriptions (Closed)
Patch Set: nit fixes Created 4 years 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 d1b8dd60b9c3daa6157a71c36821f33c6873e1a9..97c784e09bc040785022c9a8b4eeae5176551c7c 100644
--- a/media/audio/audio_manager_unittest.cc
+++ b/media/audio/audio_manager_unittest.cc
@@ -17,6 +17,7 @@
#include "base/threading/thread_task_runner_handle.h"
#include "build/build_config.h"
#include "media/audio/audio_device_description.h"
+#include "media/audio/audio_device_name.h"
#include "media/audio/audio_output_proxy.h"
#include "media/audio/audio_unittest_util.h"
#include "media/audio/fake_audio_log_factory.h"
@@ -253,10 +254,11 @@ class AudioManagerTest : public ::testing::Test {
// Helper method which verifies that the device list starts with a valid
// default record followed by non-default device names.
- static void CheckDeviceNames(const AudioDeviceNames& device_names) {
- DVLOG(2) << "Got " << device_names.size() << " audio devices.";
- if (!device_names.empty()) {
- AudioDeviceNames::const_iterator it = device_names.begin();
+ static void CheckDeviceDescriptions(
+ const AudioDeviceDescriptions& device_descriptions) {
+ DVLOG(2) << "Got " << device_descriptions.size() << " audio devices.";
+ if (!device_descriptions.empty()) {
+ AudioDeviceDescriptions::const_iterator it = device_descriptions.begin();
// The first device in the list should always be the default device.
EXPECT_EQ(AudioDeviceDescription::GetDefaultDeviceName(),
@@ -267,11 +269,13 @@ class AudioManagerTest : public ::testing::Test {
// Other devices should have non-empty name and id and should not contain
// default name or id.
- while (it != device_names.end()) {
+ while (it != device_descriptions.end()) {
EXPECT_FALSE(it->device_name.empty());
EXPECT_FALSE(it->unique_id.empty());
+ EXPECT_FALSE(it->group_id.empty());
DVLOG(2) << "Device ID(" << it->unique_id
- << "), label: " << it->device_name;
+ << "), label: " << it->device_name
+ << "group: " << it->group_id;
EXPECT_NE(AudioDeviceDescription::GetDefaultDeviceName(),
it->device_name);
EXPECT_NE(std::string(AudioDeviceDescription::kDefaultDeviceId),
@@ -289,12 +293,12 @@ class AudioManagerTest : public ::testing::Test {
#if defined(USE_CRAS)
// Helper method for (USE_CRAS) which verifies that the device list starts
// with a valid default record followed by physical device names.
- static void CheckDeviceNamesCras(
- const AudioDeviceNames& device_names,
+ static void CheckDeviceDescriptionsCras(
+ const AudioDeviceDescriptions& device_descriptions,
const std::map<uint64_t, std::string>& expectation) {
- DVLOG(2) << "Got " << device_names.size() << " audio devices.";
- if (!device_names.empty()) {
- AudioDeviceNames::const_iterator it = device_names.begin();
+ DVLOG(2) << "Got " << device_descriptions.size() << " audio devices.";
+ if (!device_descriptions.empty()) {
+ AudioDeviceDescriptions::const_iterator it = device_descriptions.begin();
// The first device in the list should always be the default device.
EXPECT_EQ(AudioDeviceDescription::GetDefaultDeviceName(),
@@ -302,17 +306,20 @@ class AudioManagerTest : public ::testing::Test {
EXPECT_EQ(std::string(AudioDeviceDescription::kDefaultDeviceId),
it->unique_id);
- // |device_names|'size should be |expectation|'s size plus one because of
+ // |device_descriptions|'size should be |expectation|'s size plus one
+ // because of
// default device.
- EXPECT_EQ(device_names.size(), expectation.size() + 1);
+ EXPECT_EQ(device_descriptions.size(), expectation.size() + 1);
++it;
// Check other devices that should have non-empty name and id, and should
// be contained in expectation.
- while (it != device_names.end()) {
+ while (it != device_descriptions.end()) {
EXPECT_FALSE(it->device_name.empty());
EXPECT_FALSE(it->unique_id.empty());
+ EXPECT_FALSE(it->group_id.empty());
DVLOG(2) << "Device ID(" << it->unique_id
- << "), label: " << it->device_name;
+ << "), label: " << it->device_name
+ << "group: " << it->group_id;
uint64_t key;
EXPECT_TRUE(base::StringToUint64(it->unique_id, &key));
EXPECT_TRUE(expectation.find(key) != expectation.end());
@@ -389,9 +396,9 @@ TEST_F(AudioManagerTest, DISABLED_EnumerateInputDevicesCras) {
DVLOG(2) << "Testing AudioManagerCras.";
CreateAudioManagerForTesting<AudioManagerCras>();
- AudioDeviceNames device_names;
- audio_manager_->GetAudioInputDeviceNames(&device_names);
- CheckDeviceNamesCras(device_names, expectation);
+ AudioDeviceDescriptions device_descriptions;
+ audio_manager_->GetAudioInputDeviceDescriptions(&device_descriptions);
+ CheckDeviceDescriptionsCras(device_descriptions, expectation);
}
// TODO(warx): enable the test once crbug.com/554168 is fixed.
@@ -417,9 +424,9 @@ TEST_F(AudioManagerTest, DISABLED_EnumerateOutputDevicesCras) {
DVLOG(2) << "Testing AudioManagerCras.";
CreateAudioManagerForTesting<AudioManagerCras>();
- AudioDeviceNames device_names;
- audio_manager_->GetAudioOutputDeviceNames(&device_names);
- CheckDeviceNamesCras(device_names, expectation);
+ AudioDeviceDescriptions device_descriptions;
+ audio_manager_->GetAudioOutputDeviceDescriptions(&device_descriptions);
+ CheckDeviceDescriptionsCras(device_descriptions, expectation);
}
#else // !defined(USE_CRAS)
@@ -435,18 +442,18 @@ TEST_F(AudioManagerTest, HandleDefaultDeviceIDs) {
TEST_F(AudioManagerTest, EnumerateInputDevices) {
ABORT_AUDIO_TEST_IF_NOT(InputDevicesAvailable());
- AudioDeviceNames device_names;
- audio_manager_->GetAudioInputDeviceNames(&device_names);
- CheckDeviceNames(device_names);
+ AudioDeviceDescriptions device_descriptions;
+ audio_manager_->GetAudioInputDeviceDescriptions(&device_descriptions);
+ CheckDeviceDescriptions(device_descriptions);
}
// Test that devices can be enumerated.
TEST_F(AudioManagerTest, EnumerateOutputDevices) {
ABORT_AUDIO_TEST_IF_NOT(OutputDevicesAvailable());
- AudioDeviceNames device_names;
- audio_manager_->GetAudioOutputDeviceNames(&device_names);
- CheckDeviceNames(device_names);
+ AudioDeviceDescriptions device_descriptions;
+ audio_manager_->GetAudioOutputDeviceDescriptions(&device_descriptions);
+ CheckDeviceDescriptions(device_descriptions);
}
// Run additional tests for Windows since enumeration can be done using
@@ -459,27 +466,27 @@ TEST_F(AudioManagerTest, EnumerateOutputDevices) {
TEST_F(AudioManagerTest, EnumerateInputDevicesWinMMDevice) {
ABORT_AUDIO_TEST_IF_NOT(InputDevicesAvailable());
- AudioDeviceNames device_names;
+ AudioDeviceDescriptions device_descriptions;
if (!SetMMDeviceEnumeration()) {
// Usage of MMDevice will fail on XP and lower.
LOG(WARNING) << "MM device enumeration is not supported.";
return;
}
- audio_manager_->GetAudioInputDeviceNames(&device_names);
- CheckDeviceNames(device_names);
+ audio_manager_->GetAudioInputDeviceDescriptions(&device_descriptions);
+ CheckDeviceDescriptions(device_descriptions);
}
TEST_F(AudioManagerTest, EnumerateOutputDevicesWinMMDevice) {
ABORT_AUDIO_TEST_IF_NOT(OutputDevicesAvailable());
- AudioDeviceNames device_names;
+ AudioDeviceDescriptions device_descriptions;
if (!SetMMDeviceEnumeration()) {
// Usage of MMDevice will fail on XP and lower.
LOG(WARNING) << "MM device enumeration is not supported.";
return;
}
- audio_manager_->GetAudioOutputDeviceNames(&device_names);
- CheckDeviceNames(device_names);
+ audio_manager_->GetAudioOutputDeviceDescriptions(&device_descriptions);
+ CheckDeviceDescriptions(device_descriptions);
}
// Override default enumeration API and force usage of Windows Wave.
@@ -487,34 +494,33 @@ TEST_F(AudioManagerTest, EnumerateOutputDevicesWinMMDevice) {
TEST_F(AudioManagerTest, EnumerateInputDevicesWinWave) {
ABORT_AUDIO_TEST_IF_NOT(InputDevicesAvailable());
- AudioDeviceNames device_names;
+ AudioDeviceDescriptions device_descriptions;
SetWaveEnumeration();
- audio_manager_->GetAudioInputDeviceNames(&device_names);
- CheckDeviceNames(device_names);
+ audio_manager_->GetAudioInputDeviceDescriptions(&device_descriptions);
+ CheckDeviceDescriptions(device_descriptions);
}
TEST_F(AudioManagerTest, EnumerateOutputDevicesWinWave) {
ABORT_AUDIO_TEST_IF_NOT(OutputDevicesAvailable());
- AudioDeviceNames device_names;
+ AudioDeviceDescriptions device_descriptions;
SetWaveEnumeration();
- audio_manager_->GetAudioOutputDeviceNames(&device_names);
- CheckDeviceNames(device_names);
+ audio_manager_->GetAudioOutputDeviceDescriptions(&device_descriptions);
+ CheckDeviceDescriptions(device_descriptions);
}
TEST_F(AudioManagerTest, WinXPDeviceIdUnchanged) {
ABORT_AUDIO_TEST_IF_NOT(InputDevicesAvailable());
- AudioDeviceNames xp_device_names;
+ AudioDeviceDescriptions xp_device_descriptions;
SetWaveEnumeration();
- audio_manager_->GetAudioInputDeviceNames(&xp_device_names);
- CheckDeviceNames(xp_device_names);
+ audio_manager_->GetAudioInputDeviceDescriptions(&xp_device_descriptions);
+ CheckDeviceDescriptions(xp_device_descriptions);
// Device ID should remain unchanged, including the default device ID.
- for (AudioDeviceNames::iterator i = xp_device_names.begin();
- i != xp_device_names.end(); ++i) {
- EXPECT_EQ(i->unique_id,
- GetDeviceIdFromPCMWaveInAudioInputStream(i->unique_id));
+ for (const auto& description : xp_device_descriptions) {
+ EXPECT_EQ(description.unique_id,
+ GetDeviceIdFromPCMWaveInAudioInputStream(description.unique_id));
}
}
@@ -527,15 +533,15 @@ TEST_F(AudioManagerTest, ConvertToWinXPInputDeviceId) {
return;
}
- AudioDeviceNames device_names;
- audio_manager_->GetAudioInputDeviceNames(&device_names);
- CheckDeviceNames(device_names);
+ AudioDeviceDescriptions device_descriptions;
+ audio_manager_->GetAudioInputDeviceDescriptions(&device_descriptions);
+ CheckDeviceDescriptions(device_descriptions);
- for (AudioDeviceNames::iterator i = device_names.begin();
- i != device_names.end(); ++i) {
+ for (AudioDeviceDescriptions::iterator i = device_descriptions.begin();
+ i != device_descriptions.end(); ++i) {
std::string converted_id =
GetDeviceIdFromPCMWaveInAudioInputStream(i->unique_id);
- if (i == device_names.begin()) {
+ if (i == device_descriptions.begin()) {
// The first in the list is the default device ID, which should not be
// changed when passed to PCMWaveInAudioInputStream.
EXPECT_EQ(i->unique_id, converted_id);
@@ -559,9 +565,9 @@ TEST_F(AudioManagerTest, EnumerateInputDevicesPulseaudio) {
CreateAudioManagerForTesting<AudioManagerPulse>();
if (audio_manager_.get()) {
- AudioDeviceNames device_names;
- audio_manager_->GetAudioInputDeviceNames(&device_names);
- CheckDeviceNames(device_names);
+ AudioDeviceDescriptions device_descriptions;
+ audio_manager_->GetAudioInputDeviceDescriptions(&device_descriptions);
+ CheckDeviceDescriptions(device_descriptions);
} else {
LOG(WARNING) << "No pulseaudio on this system.";
}
@@ -572,9 +578,9 @@ TEST_F(AudioManagerTest, EnumerateOutputDevicesPulseaudio) {
CreateAudioManagerForTesting<AudioManagerPulse>();
if (audio_manager_.get()) {
- AudioDeviceNames device_names;
- audio_manager_->GetAudioOutputDeviceNames(&device_names);
- CheckDeviceNames(device_names);
+ AudioDeviceDescriptions device_descriptions;
+ audio_manager_->GetAudioOutputDeviceDescriptions(&device_descriptions);
+ CheckDeviceDescriptions(device_descriptions);
} else {
LOG(WARNING) << "No pulseaudio on this system.";
}
@@ -591,9 +597,9 @@ TEST_F(AudioManagerTest, EnumerateInputDevicesAlsa) {
DVLOG(2) << "Testing AudioManagerAlsa.";
CreateAudioManagerForTesting<AudioManagerAlsa>();
- AudioDeviceNames device_names;
- audio_manager_->GetAudioInputDeviceNames(&device_names);
- CheckDeviceNames(device_names);
+ AudioDeviceDescriptions device_descriptions;
+ audio_manager_->GetAudioInputDeviceDescriptions(&device_descriptions);
+ CheckDeviceDescriptions(device_descriptions);
}
TEST_F(AudioManagerTest, EnumerateOutputDevicesAlsa) {
@@ -601,9 +607,9 @@ TEST_F(AudioManagerTest, EnumerateOutputDevicesAlsa) {
DVLOG(2) << "Testing AudioManagerAlsa.";
CreateAudioManagerForTesting<AudioManagerAlsa>();
- AudioDeviceNames device_names;
- audio_manager_->GetAudioOutputDeviceNames(&device_names);
- CheckDeviceNames(device_names);
+ AudioDeviceDescriptions device_descriptions;
+ audio_manager_->GetAudioOutputDeviceDescriptions(&device_descriptions);
+ CheckDeviceDescriptions(device_descriptions);
}
#endif // defined(USE_ALSA)
@@ -621,18 +627,17 @@ TEST_F(AudioManagerTest, GetAssociatedOutputDeviceID) {
#if defined(OS_WIN) || defined(OS_MACOSX)
ABORT_AUDIO_TEST_IF_NOT(InputDevicesAvailable() && OutputDevicesAvailable());
- AudioDeviceNames device_names;
- audio_manager_->GetAudioInputDeviceNames(&device_names);
+ AudioDeviceDescriptions device_descriptions;
+ audio_manager_->GetAudioInputDeviceDescriptions(&device_descriptions);
bool found_an_associated_device = false;
- for (AudioDeviceNames::iterator it = device_names.begin();
- it != device_names.end();
- ++it) {
- EXPECT_FALSE(it->unique_id.empty());
- EXPECT_FALSE(it->device_name.empty());
+ for (const auto& description : device_descriptions) {
+ EXPECT_FALSE(description.unique_id.empty());
+ EXPECT_FALSE(description.device_name.empty());
+ EXPECT_FALSE(description.group_id.empty());
std::string output_device_id;
- GetAssociatedOutputDeviceID(it->unique_id, &output_device_id);
+ GetAssociatedOutputDeviceID(description.unique_id, &output_device_id);
if (!output_device_id.empty()) {
- DVLOG(2) << it->unique_id << " matches with " << output_device_id;
+ DVLOG(2) << description.unique_id << " matches with " << output_device_id;
found_an_associated_device = true;
}
}
@@ -654,6 +659,20 @@ class TestAudioManager : public FakeAudioManager {
AudioLogFactory* audio_log_factory)
: FakeAudioManager(task_runner, worker_task_runner, audio_log_factory) {}
+ 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 "";
+ }
+
+ private:
void GetAudioInputDeviceNames(AudioDeviceNames* device_names) override {
device_names->emplace_back("Input 1", "input1");
device_names->emplace_back("Input 2", "input2");
@@ -664,45 +683,33 @@ class TestAudioManager : public FakeAudioManager {
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 3", "output3");
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) {
+TEST_F(AudioManagerTest, GroupId) {
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"));
+ // input1, output1, default input
+ // input2, output2
+ // input3,
+ // output3
+ // output4, default output
+ AudioDeviceDescriptions inputs;
+ audio_manager_->GetAudioInputDeviceDescriptions(&inputs);
+ AudioDeviceDescriptions outputs;
+ audio_manager_->GetAudioOutputDeviceDescriptions(&outputs);
+ EXPECT_EQ(inputs[0].group_id, outputs[1].group_id);
+ EXPECT_EQ(inputs[1].group_id, outputs[1].group_id);
+ EXPECT_EQ(inputs[2].group_id, outputs[2].group_id);
+ EXPECT_NE(inputs[3].group_id, outputs[3].group_id);
+ EXPECT_EQ(outputs[4].group_id, outputs[0].group_id);
+ EXPECT_NE(inputs[0].group_id, outputs[0].group_id);
+ EXPECT_NE(inputs[1].group_id, outputs[2].group_id);
+ EXPECT_NE(inputs[2].group_id, outputs[3].group_id);
+ EXPECT_NE(inputs[1].group_id, outputs[3].group_id);
}
} // 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