Index: chrome/browser/chromeos/audio/audio_devices_pref_handler_impl_unittest.cc |
diff --git a/chrome/browser/chromeos/audio/audio_devices_pref_handler_impl_unittest.cc b/chrome/browser/chromeos/audio/audio_devices_pref_handler_impl_unittest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b7df904a4a2113d89382328f3e41c88d035fc76c |
--- /dev/null |
+++ b/chrome/browser/chromeos/audio/audio_devices_pref_handler_impl_unittest.cc |
@@ -0,0 +1,113 @@ |
+// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
jennyz
2014/12/15 22:34:06
nit: no (c) with new code guideline. 2013->2014.
rkc
2014/12/15 22:44:43
Done.
|
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/browser/chromeos/audio/audio_devices_pref_handler_impl.h" |
+ |
+#include "base/memory/ref_counted.h" |
+#include "base/prefs/testing_pref_service.h" |
+#include "chrome/browser/chromeos/audio/audio_devices_pref_handler_impl.h" |
+#include "chromeos/audio/audio_device.h" |
+#include "chromeos/audio/audio_devices_pref_handler.h" |
+#include "chromeos/dbus/audio_node.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+ |
+namespace chromeos { |
+ |
+const uint64 kInternalMicId = 10003; |
+const uint64 kHeadphoneId = 10002; |
+const uint64 kHDMIOutputId = 10006; |
+const uint64 kOtherTypeOutputId = 90001; |
+const uint64 kOtherTypeInputId = 90002; |
+ |
+const AudioDevice kInternalMic(AudioNode(true, |
+ kInternalMicId, |
+ "Fake Mic", |
+ "INTERNAL_MIC", |
+ "Internal Mic", |
+ false, |
+ 0)); |
+ |
+const AudioDevice kHeadphone(AudioNode(false, |
+ kHeadphoneId, |
+ "Fake Headphone", |
+ "HEADPHONE", |
+ "Headphone", |
+ false, |
+ 0)); |
+ |
+const AudioDevice kHDMIOutput(AudioNode(false, |
+ kHDMIOutputId, |
+ "HDMI output", |
+ "HDMI", |
+ "HDMI output", |
+ false, |
+ 0)); |
+ |
+const AudioDevice kInputDeviceWithSpecialCharacters( |
+ AudioNode(true, |
+ kOtherTypeInputId, |
+ "Fake ~!@#$%^&*()_+`-=<>?,./{}|[]\\\\Mic", |
+ "SOME_OTHER_TYPE", |
+ "Other Type Input Device", |
+ true, |
+ 0)); |
+ |
+const AudioDevice kOutputDeviceWithSpecialCharacters( |
+ AudioNode(false, |
+ kOtherTypeOutputId, |
+ "Fake ~!@#$%^&*()_+`-=<>?,./{}|[]\\\\Headphone", |
+ "SOME_OTHER_TYPE", |
+ "Other Type Output Device", |
+ false, |
+ 0)); |
+ |
+class AudioDevicesPrefHandlerTest : public testing::Test { |
+ public: |
+ AudioDevicesPrefHandlerTest() {} |
+ virtual ~AudioDevicesPrefHandlerTest() {} |
jennyz
2014/12/15 22:34:07
no virtual, just override by new code guideline.
rkc
2014/12/15 22:44:43
Done.
|
+ |
+ virtual void SetUp() override { |
jennyz
2014/12/15 22:34:07
Nit. no more virtual by code guide line.
rkc
2014/12/15 22:44:43
Done.
|
+ pref_service_.reset(new TestingPrefServiceSimple()); |
+ AudioDevicesPrefHandlerImpl::RegisterPrefs(pref_service_->registry()); |
+ audio_pref_handler_ = new AudioDevicesPrefHandlerImpl(pref_service_.get()); |
+ } |
+ |
+ virtual void TearDown() override { audio_pref_handler_ = NULL; } |
jennyz
2014/12/15 22:34:07
ditto
rkc
2014/12/15 22:44:43
Done.
|
+ |
+ protected: |
+ scoped_refptr<AudioDevicesPrefHandler> audio_pref_handler_; |
+ scoped_ptr<TestingPrefServiceSimple> pref_service_; |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(AudioDevicesPrefHandlerTest); |
+}; |
+ |
+TEST_F(AudioDevicesPrefHandlerTest, TestDefaultValues) { |
+ // TODO(rkc): Once the bug with default preferences is fixed, fix this test |
+ // also. http://crbug.com/442489 |
+ EXPECT_EQ(75.0, audio_pref_handler_->GetInputGainValue(&kInternalMic)); |
+ EXPECT_EQ(75.0, audio_pref_handler_->GetOutputVolumeValue(&kHeadphone)); |
+ EXPECT_EQ(75.0, audio_pref_handler_->GetOutputVolumeValue(&kHDMIOutput)); |
+} |
+ |
+TEST_F(AudioDevicesPrefHandlerTest, TestBasicInputOutputDevices) { |
+ audio_pref_handler_->SetVolumeGainValue(kInternalMic, 13.37); |
+ EXPECT_EQ(13.37, audio_pref_handler_->GetInputGainValue(&kInternalMic)); |
+ audio_pref_handler_->SetVolumeGainValue(kHeadphone, 47.28); |
+ EXPECT_EQ(47.28, audio_pref_handler_->GetOutputVolumeValue(&kHeadphone)); |
+} |
+ |
+TEST_F(AudioDevicesPrefHandlerTest, TestSpecialCharactersInDeviceNames) { |
+ audio_pref_handler_->SetVolumeGainValue(kInputDeviceWithSpecialCharacters, |
+ 73.31); |
+ audio_pref_handler_->SetVolumeGainValue(kOutputDeviceWithSpecialCharacters, |
+ 85.92); |
+ |
+ EXPECT_EQ(73.31, audio_pref_handler_->GetInputGainValue( |
+ &kInputDeviceWithSpecialCharacters)); |
+ EXPECT_EQ(85.92, audio_pref_handler_->GetOutputVolumeValue( |
+ &kOutputDeviceWithSpecialCharacters)); |
+} |
+ |
+} // namespace chromeos |