| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chromeos/audio/cras_audio_handler.h" | 5 #include "chromeos/audio/cras_audio_handler.h" |
| 6 | 6 |
| 7 #include "base/memory/ref_counted.h" | 7 #include "base/memory/ref_counted.h" |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
| 10 #include "base/values.h" | 10 #include "base/values.h" |
| 11 #include "chromeos/audio/audio_devices_pref_handler_stub.h" | 11 #include "chromeos/audio/audio_devices_pref_handler_stub.h" |
| 12 #include "chromeos/dbus/audio_node.h" | 12 #include "chromeos/dbus/audio_node.h" |
| 13 #include "chromeos/dbus/cras_audio_client_stub_impl.h" | |
| 14 #include "chromeos/dbus/dbus_thread_manager.h" | 13 #include "chromeos/dbus/dbus_thread_manager.h" |
| 14 #include "chromeos/dbus/fake_cras_audio_client.h" |
| 15 #include "testing/gtest/include/gtest/gtest.h" | 15 #include "testing/gtest/include/gtest/gtest.h" |
| 16 | 16 |
| 17 namespace chromeos { | 17 namespace chromeos { |
| 18 | 18 |
| 19 const uint64 kInternalSpeakerId = 10001; | 19 const uint64 kInternalSpeakerId = 10001; |
| 20 const uint64 kHeadphoneId = 10002; | 20 const uint64 kHeadphoneId = 10002; |
| 21 const uint64 kInternalMicId = 10003; | 21 const uint64 kInternalMicId = 10003; |
| 22 const uint64 kUSBMicId = 10004; | 22 const uint64 kUSBMicId = 10004; |
| 23 const uint64 kBluetoothHeadsetId = 10005; | 23 const uint64 kBluetoothHeadsetId = 10005; |
| 24 const uint64 kHDMIOutputId = 10006; | 24 const uint64 kHDMIOutputId = 10006; |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 229 int input_mute_changed_count_; | 229 int input_mute_changed_count_; |
| 230 int output_volume_changed_count_; | 230 int output_volume_changed_count_; |
| 231 int input_gain_changed_count_; | 231 int input_gain_changed_count_; |
| 232 | 232 |
| 233 DISALLOW_COPY_AND_ASSIGN(TestObserver); | 233 DISALLOW_COPY_AND_ASSIGN(TestObserver); |
| 234 }; | 234 }; |
| 235 | 235 |
| 236 class CrasAudioHandlerTest : public testing::Test { | 236 class CrasAudioHandlerTest : public testing::Test { |
| 237 public: | 237 public: |
| 238 CrasAudioHandlerTest() : cras_audio_handler_(NULL), | 238 CrasAudioHandlerTest() : cras_audio_handler_(NULL), |
| 239 cras_audio_client_stub_(NULL) { | 239 fake_cras_audio_client_(NULL) { |
| 240 } | 240 } |
| 241 virtual ~CrasAudioHandlerTest() {} | 241 virtual ~CrasAudioHandlerTest() {} |
| 242 | 242 |
| 243 virtual void SetUp() override { | 243 virtual void SetUp() override { |
| 244 } | 244 } |
| 245 | 245 |
| 246 virtual void TearDown() override { | 246 virtual void TearDown() override { |
| 247 cras_audio_handler_->RemoveAudioObserver(test_observer_.get()); | 247 cras_audio_handler_->RemoveAudioObserver(test_observer_.get()); |
| 248 test_observer_.reset(); | 248 test_observer_.reset(); |
| 249 CrasAudioHandler::Shutdown(); | 249 CrasAudioHandler::Shutdown(); |
| 250 audio_pref_handler_ = NULL; | 250 audio_pref_handler_ = NULL; |
| 251 DBusThreadManager::Shutdown(); | 251 DBusThreadManager::Shutdown(); |
| 252 } | 252 } |
| 253 | 253 |
| 254 void SetUpCrasAudioHandler(const AudioNodeList& audio_nodes) { | 254 void SetUpCrasAudioHandler(const AudioNodeList& audio_nodes) { |
| 255 DBusThreadManager::Initialize(); | 255 DBusThreadManager::Initialize(); |
| 256 cras_audio_client_stub_ = static_cast<CrasAudioClientStubImpl*>( | 256 fake_cras_audio_client_ = static_cast<FakeCrasAudioClient*>( |
| 257 DBusThreadManager::Get()->GetCrasAudioClient()); | 257 DBusThreadManager::Get()->GetCrasAudioClient()); |
| 258 cras_audio_client_stub_->SetAudioNodesForTesting(audio_nodes); | 258 fake_cras_audio_client_->SetAudioNodesForTesting(audio_nodes); |
| 259 audio_pref_handler_ = new AudioDevicesPrefHandlerStub(); | 259 audio_pref_handler_ = new AudioDevicesPrefHandlerStub(); |
| 260 CrasAudioHandler::Initialize(audio_pref_handler_); | 260 CrasAudioHandler::Initialize(audio_pref_handler_); |
| 261 cras_audio_handler_ = CrasAudioHandler::Get(); | 261 cras_audio_handler_ = CrasAudioHandler::Get(); |
| 262 test_observer_.reset(new TestObserver); | 262 test_observer_.reset(new TestObserver); |
| 263 cras_audio_handler_->AddAudioObserver(test_observer_.get()); | 263 cras_audio_handler_->AddAudioObserver(test_observer_.get()); |
| 264 message_loop_.RunUntilIdle(); | 264 message_loop_.RunUntilIdle(); |
| 265 } | 265 } |
| 266 | 266 |
| 267 void SetUpCrasAudioHandlerWithPrimaryActiveNode( | 267 void SetUpCrasAudioHandlerWithPrimaryActiveNode( |
| 268 const AudioNodeList& audio_nodes, | 268 const AudioNodeList& audio_nodes, |
| 269 const AudioNode& primary_active_node) { | 269 const AudioNode& primary_active_node) { |
| 270 DBusThreadManager::Initialize(); | 270 DBusThreadManager::Initialize(); |
| 271 cras_audio_client_stub_ = static_cast<CrasAudioClientStubImpl*>( | 271 fake_cras_audio_client_ = static_cast<FakeCrasAudioClient*>( |
| 272 DBusThreadManager::Get()->GetCrasAudioClient()); | 272 DBusThreadManager::Get()->GetCrasAudioClient()); |
| 273 cras_audio_client_stub_->SetAudioNodesForTesting(audio_nodes); | 273 fake_cras_audio_client_->SetAudioNodesForTesting(audio_nodes); |
| 274 cras_audio_client_stub_->SetActiveOutputNode(primary_active_node.id), | 274 fake_cras_audio_client_->SetActiveOutputNode(primary_active_node.id), |
| 275 audio_pref_handler_ = new AudioDevicesPrefHandlerStub(); | 275 audio_pref_handler_ = new AudioDevicesPrefHandlerStub(); |
| 276 CrasAudioHandler::Initialize(audio_pref_handler_); | 276 CrasAudioHandler::Initialize(audio_pref_handler_); |
| 277 cras_audio_handler_ = CrasAudioHandler::Get(); | 277 cras_audio_handler_ = CrasAudioHandler::Get(); |
| 278 test_observer_.reset(new TestObserver); | 278 test_observer_.reset(new TestObserver); |
| 279 cras_audio_handler_->AddAudioObserver(test_observer_.get()); | 279 cras_audio_handler_->AddAudioObserver(test_observer_.get()); |
| 280 message_loop_.RunUntilIdle(); | 280 message_loop_.RunUntilIdle(); |
| 281 } | 281 } |
| 282 | 282 |
| 283 void ChangeAudioNodes(const AudioNodeList& audio_nodes) { | 283 void ChangeAudioNodes(const AudioNodeList& audio_nodes) { |
| 284 cras_audio_client_stub_->SetAudioNodesAndNotifyObserversForTesting( | 284 fake_cras_audio_client_->SetAudioNodesAndNotifyObserversForTesting( |
| 285 audio_nodes); | 285 audio_nodes); |
| 286 message_loop_.RunUntilIdle(); | 286 message_loop_.RunUntilIdle(); |
| 287 } | 287 } |
| 288 | 288 |
| 289 const AudioDevice* GetDeviceFromId(uint64 id) { | 289 const AudioDevice* GetDeviceFromId(uint64 id) { |
| 290 return cras_audio_handler_->GetDeviceFromId(id); | 290 return cras_audio_handler_->GetDeviceFromId(id); |
| 291 } | 291 } |
| 292 | 292 |
| 293 protected: | 293 protected: |
| 294 base::MessageLoopForUI message_loop_; | 294 base::MessageLoopForUI message_loop_; |
| 295 CrasAudioHandler* cras_audio_handler_; // Not owned. | 295 CrasAudioHandler* cras_audio_handler_; // Not owned. |
| 296 CrasAudioClientStubImpl* cras_audio_client_stub_; // Not owned. | 296 FakeCrasAudioClient* fake_cras_audio_client_; // Not owned. |
| 297 scoped_ptr<TestObserver> test_observer_; | 297 scoped_ptr<TestObserver> test_observer_; |
| 298 scoped_refptr<AudioDevicesPrefHandlerStub> audio_pref_handler_; | 298 scoped_refptr<AudioDevicesPrefHandlerStub> audio_pref_handler_; |
| 299 | 299 |
| 300 private: | 300 private: |
| 301 DISALLOW_COPY_AND_ASSIGN(CrasAudioHandlerTest); | 301 DISALLOW_COPY_AND_ASSIGN(CrasAudioHandlerTest); |
| 302 }; | 302 }; |
| 303 | 303 |
| 304 TEST_F(CrasAudioHandlerTest, InitializeWithOnlyDefaultAudioDevices) { | 304 TEST_F(CrasAudioHandlerTest, InitializeWithOnlyDefaultAudioDevices) { |
| 305 AudioNodeList audio_nodes; | 305 AudioNodeList audio_nodes; |
| 306 audio_nodes.push_back(kInternalSpeaker); | 306 audio_nodes.push_back(kInternalSpeaker); |
| (...skipping 1624 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1931 // nodes. | 1931 // nodes. |
| 1932 cras_audio_handler_->AddActiveNode(kInternalSpeaker.id); | 1932 cras_audio_handler_->AddActiveNode(kInternalSpeaker.id); |
| 1933 EXPECT_FALSE( | 1933 EXPECT_FALSE( |
| 1934 cras_audio_handler_->IsOutputMutedForDevice(kInternalSpeaker.id)); | 1934 cras_audio_handler_->IsOutputMutedForDevice(kInternalSpeaker.id)); |
| 1935 EXPECT_EQ(25, | 1935 EXPECT_EQ(25, |
| 1936 cras_audio_handler_->GetOutputVolumePercentForDevice( | 1936 cras_audio_handler_->GetOutputVolumePercentForDevice( |
| 1937 kInternalSpeaker.id)); | 1937 kInternalSpeaker.id)); |
| 1938 } | 1938 } |
| 1939 | 1939 |
| 1940 } // namespace chromeos | 1940 } // namespace chromeos |
| OLD | NEW |