Index: chromeos/audio/cras_audio_handler_unittest.cc |
diff --git a/chromeos/audio/cras_audio_handler_unittest.cc b/chromeos/audio/cras_audio_handler_unittest.cc |
index 4633d8773f0a4b19d76ab08866ea9b074d9662b8..79e73c6e1f007724f6a1f2bbd1c603da4db94fcf 100644 |
--- a/chromeos/audio/cras_audio_handler_unittest.cc |
+++ b/chromeos/audio/cras_audio_handler_unittest.cc |
@@ -41,6 +41,7 @@ const uint64 kUSBCameraInputId = 90007; |
const AudioNode kInternalSpeaker( |
false, |
kInternalSpeakerId, |
+ kInternalSpeakerId, |
"Fake Speaker", |
"INTERNAL_SPEAKER", |
"Speaker", |
@@ -51,6 +52,7 @@ const AudioNode kInternalSpeaker( |
const AudioNode kHeadphone( |
false, |
kHeadphoneId, |
+ kHeadphoneId, |
"Fake Headphone", |
"HEADPHONE", |
"Headphone", |
@@ -61,6 +63,7 @@ const AudioNode kHeadphone( |
const AudioNode kInternalMic( |
true, |
kInternalMicId, |
+ kInternalMicId, |
"Fake Mic", |
"INTERNAL_MIC", |
"Internal Mic", |
@@ -71,6 +74,7 @@ const AudioNode kInternalMic( |
const AudioNode kMicJack( |
true, |
kMicJackId, |
+ kMicJackId, |
"Fake Mic Jack", |
"MIC", |
"Mic Jack", |
@@ -81,6 +85,7 @@ const AudioNode kMicJack( |
const AudioNode kUSBMic( |
true, |
kUSBMicId, |
+ kUSBMicId, |
"Fake USB Mic", |
"USB", |
"USB Microphone", |
@@ -91,6 +96,7 @@ const AudioNode kUSBMic( |
const AudioNode kKeyboardMic( |
true, |
kKeyboardMicId, |
+ kKeyboardMicId, |
"Fake Keyboard Mic", |
"KEYBOARD_MIC", |
"Keyboard Mic", |
@@ -101,6 +107,7 @@ const AudioNode kKeyboardMic( |
const AudioNode kOtherTypeOutput( |
false, |
kOtherTypeOutputId, |
+ kOtherTypeOutputId, |
"Output Device", |
"SOME_OTHER_TYPE", |
"Other Type Output Device", |
@@ -111,6 +118,7 @@ const AudioNode kOtherTypeOutput( |
const AudioNode kOtherTypeInput( |
true, |
kOtherTypeInputId, |
+ kOtherTypeInputId, |
"Input Device", |
"SOME_OTHER_TYPE", |
"Other Type Input Device", |
@@ -120,6 +128,7 @@ const AudioNode kOtherTypeInput( |
const AudioNode kBluetoothHeadset(false, |
kBluetoothHeadsetId, |
+ kBluetoothHeadsetId, |
"Bluetooth Headset", |
"BLUETOOTH", |
"Bluetooth Headset 1", |
@@ -128,6 +137,7 @@ const AudioNode kBluetoothHeadset(false, |
const AudioNode kHDMIOutput(false, |
kHDMIOutputId, |
+ kHDMIOutputId, |
"HDMI output", |
"HDMI", |
"HDMI output", |
@@ -136,6 +146,7 @@ const AudioNode kHDMIOutput(false, |
const AudioNode kUSBHeadphone1(false, |
kUSBHeadphoneId1, |
+ kUSBHeadphoneId1, |
"USB Headphone", |
"USB", |
"USB Headphone 1", |
@@ -144,6 +155,7 @@ const AudioNode kUSBHeadphone1(false, |
const AudioNode kUSBHeadphone2(false, |
kUSBHeadphoneId2, |
+ kUSBHeadphoneId2, |
"USB Headphone", |
"USB", |
"USB Headphone 1", |
@@ -152,6 +164,7 @@ const AudioNode kUSBHeadphone2(false, |
const AudioNode kUSBJabraSpeakerOutput1(false, |
kUSBJabraSpeakerOutputId1, |
+ kUSBJabraSpeakerOutputId1, |
"Jabra Speaker 1", |
"USB", |
"Jabra Speaker 1", |
@@ -160,6 +173,7 @@ const AudioNode kUSBJabraSpeakerOutput1(false, |
const AudioNode kUSBJabraSpeakerOutput2(false, |
kUSBJabraSpeakerOutputId2, |
+ kUSBJabraSpeakerOutputId2, |
"Jabra Speaker 2", |
"USB", |
"Jabra Speaker 2", |
@@ -168,6 +182,7 @@ const AudioNode kUSBJabraSpeakerOutput2(false, |
const AudioNode kUSBJabraSpeakerInput1(true, |
kUSBJabraSpeakerInputId1, |
+ kUSBJabraSpeakerInputId1, |
"Jabra Speaker 1", |
"USB", |
"Jabra Speaker", |
@@ -176,6 +191,7 @@ const AudioNode kUSBJabraSpeakerInput1(true, |
const AudioNode kUSBJabraSpeakerInput2(true, |
kUSBJabraSpeakerInputId2, |
+ kUSBJabraSpeakerInputId2, |
"Jabra Speaker 2", |
"USB", |
"Jabra Speaker 2", |
@@ -184,6 +200,7 @@ const AudioNode kUSBJabraSpeakerInput2(true, |
const AudioNode kUSBCameraInput(true, |
kUSBCameraInputId, |
+ kUSBCameraInputId, |
"USB Camera", |
"USB", |
"USB Camera", |
@@ -2039,6 +2056,60 @@ TEST_F(CrasAudioHandlerTest, HandleOtherDeviceType) { |
EXPECT_TRUE(cras_audio_handler_->has_alternative_input()); |
} |
+TEST_F(CrasAudioHandlerTest, UnselectActiveDeviceAndPlugAnother) { |
jennyz
2015/12/17 22:50:21
The test case name can be changed to something mor
hychao
2015/12/29 10:57:25
Done.
This do sounds better, thanks.
|
+ AudioNodeList audio_nodes; |
+ AudioNode internal_speaker(kInternalSpeaker); |
+ audio_nodes.push_back(internal_speaker); |
+ AudioNode usb_headset(kUSBHeadphone1); |
+ usb_headset.plugged_time = 80000000; |
+ audio_nodes.push_back(usb_headset); |
+ SetUpCrasAudioHandler(audio_nodes); |
+ |
+ // Verify the audio devices size. |
+ AudioDeviceList audio_devices; |
+ cras_audio_handler_->GetAudioDevices(&audio_devices); |
+ EXPECT_EQ(audio_nodes.size(), audio_devices.size()); |
+ |
+ EXPECT_EQ(kUSBHeadphone1.id, |
+ cras_audio_handler_->GetPrimaryActiveOutputNode()); |
jennyz
2015/12/17 22:50:21
Add some comment will be more helpful to explain w
hychao
2015/12/29 10:57:25
Done.
|
+ |
+ AudioDevice speaker(kInternalSpeaker); |
+ cras_audio_handler_->SwitchToDevice(speaker, true); |
jennyz
2015/12/17 22:50:21
Please add a comment: Now change the active device
hychao
2015/12/29 10:57:25
Done.
Also added a check below to make sure USB is
|
+ |
+ // Unplug USB headset |
+ audio_nodes.clear(); |
+ internal_speaker.active = true; |
+ audio_nodes.push_back(internal_speaker); |
+ ChangeAudioNodes(audio_nodes); |
+ EXPECT_EQ(kInternalSpeaker.id, |
+ cras_audio_handler_->GetPrimaryActiveOutputNode()); |
+ |
+ // Plug the USB headset of the same device stable id, but with different id |
jennyz
2015/12/17 22:50:21
nits: add "." at the end. How about: Plug the same
hychao
2015/12/29 10:57:25
Done.
|
+ usb_headset.active = false; |
+ usb_headset.id = 98765; |
+ audio_nodes.push_back(usb_headset); |
+ ChangeAudioNodes(audio_nodes); |
+ EXPECT_EQ(kInternalSpeaker.id, |
+ cras_audio_handler_->GetPrimaryActiveOutputNode()); |
jennyz
2015/12/17 22:50:21
Please add a comment: "Since usb headset was inact
hychao
2015/12/29 10:57:25
Done.
|
+ |
+ // Plug the second USB headset |
+ AudioNode usb_headset2(kUSBHeadphone2); |
+ usb_headset2.plugged_time = 80000001; |
+ audio_nodes.push_back(usb_headset2); |
+ ChangeAudioNodes(audio_nodes); |
+ EXPECT_EQ(kUSBHeadphone2.id, |
+ cras_audio_handler_->GetPrimaryActiveOutputNode()); |
jennyz
2015/12/17 22:50:21
Please add a comment: Since the second usb headset
hychao
2015/12/29 10:57:25
Done.
|
+ |
+ // Unplug the second USB headset |
+ audio_nodes.clear(); |
+ internal_speaker.active = false; |
+ audio_nodes.push_back(internal_speaker); |
+ audio_nodes.push_back(usb_headset); |
+ ChangeAudioNodes(audio_nodes); |
+ EXPECT_EQ(usb_headset.id, |
+ cras_audio_handler_->GetPrimaryActiveOutputNode()); |
jennyz
2015/12/17 22:50:21
When hotplug a new audio device, there are three c
hychao
2015/12/29 10:57:25
Done.
|
+} |
+ |
TEST_F(CrasAudioHandlerTest, ChangeActiveNodesHotrodInit) { |
AudioNodeList audio_nodes; |
audio_nodes.push_back(kHDMIOutput); |