| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <memory> | 5 #include <memory> |
| 6 #include <vector> | 6 #include <vector> |
| 7 | 7 |
| 8 #include "ash/common/accessibility_delegate.h" | 8 #include "ash/common/accessibility_delegate.h" |
| 9 #include "ash/common/accessibility_types.h" | 9 #include "ash/common/accessibility_types.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 67 public: | 67 public: |
| 68 VolumeControllerTest() {} | 68 VolumeControllerTest() {} |
| 69 ~VolumeControllerTest() override {} | 69 ~VolumeControllerTest() override {} |
| 70 | 70 |
| 71 void SetUpOnMainThread() override { | 71 void SetUpOnMainThread() override { |
| 72 volume_controller_.reset(new VolumeController()); | 72 volume_controller_.reset(new VolumeController()); |
| 73 audio_handler_ = chromeos::CrasAudioHandler::Get(); | 73 audio_handler_ = chromeos::CrasAudioHandler::Get(); |
| 74 } | 74 } |
| 75 | 75 |
| 76 protected: | 76 protected: |
| 77 void VolumeMute() { | |
| 78 volume_controller_->HandleVolumeMute(ui::Accelerator()); | |
| 79 } | |
| 80 | |
| 81 void VolumeUp() { | |
| 82 volume_controller_->HandleVolumeUp(ui::Accelerator()); | |
| 83 } | |
| 84 | |
| 85 void VolumeDown() { | |
| 86 volume_controller_->HandleVolumeDown(ui::Accelerator()); | |
| 87 } | |
| 88 | |
| 89 chromeos::CrasAudioHandler* audio_handler_; // Not owned. | 77 chromeos::CrasAudioHandler* audio_handler_; // Not owned. |
| 78 std::unique_ptr<VolumeController> volume_controller_; |
| 90 | 79 |
| 91 private: | 80 private: |
| 92 std::unique_ptr<VolumeController> volume_controller_; | |
| 93 | |
| 94 DISALLOW_COPY_AND_ASSIGN(VolumeControllerTest); | 81 DISALLOW_COPY_AND_ASSIGN(VolumeControllerTest); |
| 95 }; | 82 }; |
| 96 | 83 |
| 97 IN_PROC_BROWSER_TEST_F(VolumeControllerTest, VolumeUpAndDown) { | 84 IN_PROC_BROWSER_TEST_F(VolumeControllerTest, VolumeUpAndDown) { |
| 98 // Set initial value as 50% | 85 // Set initial value as 50% |
| 99 const int kInitVolume = 50; | 86 const int kInitVolume = 50; |
| 100 audio_handler_->SetOutputVolumePercent(kInitVolume); | 87 audio_handler_->SetOutputVolumePercent(kInitVolume); |
| 101 | 88 |
| 102 EXPECT_EQ(audio_handler_->GetOutputVolumePercent(), kInitVolume); | 89 EXPECT_EQ(audio_handler_->GetOutputVolumePercent(), kInitVolume); |
| 103 | 90 |
| 104 VolumeUp(); | 91 volume_controller_->VolumeUp(); |
| 105 EXPECT_LT(kInitVolume, audio_handler_->GetOutputVolumePercent()); | 92 EXPECT_LT(kInitVolume, audio_handler_->GetOutputVolumePercent()); |
| 106 VolumeDown(); | 93 volume_controller_->VolumeDown(); |
| 107 EXPECT_EQ(kInitVolume, audio_handler_->GetOutputVolumePercent()); | 94 EXPECT_EQ(kInitVolume, audio_handler_->GetOutputVolumePercent()); |
| 108 VolumeDown(); | 95 volume_controller_->VolumeDown(); |
| 109 EXPECT_GT(kInitVolume, audio_handler_->GetOutputVolumePercent()); | 96 EXPECT_GT(kInitVolume, audio_handler_->GetOutputVolumePercent()); |
| 110 } | 97 } |
| 111 | 98 |
| 112 IN_PROC_BROWSER_TEST_F(VolumeControllerTest, VolumeDownToZero) { | 99 IN_PROC_BROWSER_TEST_F(VolumeControllerTest, VolumeDownToZero) { |
| 113 // Setting to very small volume. | 100 // Setting to very small volume. |
| 114 audio_handler_->SetOutputVolumePercent(1); | 101 audio_handler_->SetOutputVolumePercent(1); |
| 115 | 102 |
| 116 VolumeDown(); | 103 volume_controller_->VolumeDown(); |
| 117 EXPECT_EQ(0, audio_handler_->GetOutputVolumePercent()); | 104 EXPECT_EQ(0, audio_handler_->GetOutputVolumePercent()); |
| 118 VolumeDown(); | 105 volume_controller_->VolumeDown(); |
| 119 EXPECT_EQ(0, audio_handler_->GetOutputVolumePercent()); | 106 EXPECT_EQ(0, audio_handler_->GetOutputVolumePercent()); |
| 120 VolumeUp(); | 107 volume_controller_->VolumeUp(); |
| 121 EXPECT_LT(0, audio_handler_->GetOutputVolumePercent()); | 108 EXPECT_LT(0, audio_handler_->GetOutputVolumePercent()); |
| 122 } | 109 } |
| 123 | 110 |
| 124 IN_PROC_BROWSER_TEST_F(VolumeControllerTest, VolumeUpTo100) { | 111 IN_PROC_BROWSER_TEST_F(VolumeControllerTest, VolumeUpTo100) { |
| 125 // Setting to almost max | 112 // Setting to almost max |
| 126 audio_handler_->SetOutputVolumePercent(99); | 113 audio_handler_->SetOutputVolumePercent(99); |
| 127 | 114 |
| 128 VolumeUp(); | 115 volume_controller_->VolumeUp(); |
| 129 EXPECT_EQ(100, audio_handler_->GetOutputVolumePercent()); | 116 EXPECT_EQ(100, audio_handler_->GetOutputVolumePercent()); |
| 130 VolumeUp(); | 117 volume_controller_->VolumeUp(); |
| 131 EXPECT_EQ(100, audio_handler_->GetOutputVolumePercent()); | 118 EXPECT_EQ(100, audio_handler_->GetOutputVolumePercent()); |
| 132 VolumeDown(); | 119 volume_controller_->VolumeDown(); |
| 133 EXPECT_GT(100, audio_handler_->GetOutputVolumePercent()); | 120 EXPECT_GT(100, audio_handler_->GetOutputVolumePercent()); |
| 134 } | 121 } |
| 135 | 122 |
| 136 IN_PROC_BROWSER_TEST_F(VolumeControllerTest, Mutes) { | 123 IN_PROC_BROWSER_TEST_F(VolumeControllerTest, Mutes) { |
| 137 ASSERT_FALSE(audio_handler_->IsOutputMuted()); | 124 ASSERT_FALSE(audio_handler_->IsOutputMuted()); |
| 138 const int initial_volume = audio_handler_->GetOutputVolumePercent(); | 125 const int initial_volume = audio_handler_->GetOutputVolumePercent(); |
| 139 | 126 |
| 140 VolumeMute(); | 127 volume_controller_->VolumeMute(); |
| 141 EXPECT_TRUE(audio_handler_->IsOutputMuted()); | 128 EXPECT_TRUE(audio_handler_->IsOutputMuted()); |
| 142 | 129 |
| 143 // Further mute buttons doesn't have effects. | 130 // Further mute buttons doesn't have effects. |
| 144 VolumeMute(); | 131 volume_controller_->VolumeMute(); |
| 145 EXPECT_TRUE(audio_handler_->IsOutputMuted()); | 132 EXPECT_TRUE(audio_handler_->IsOutputMuted()); |
| 146 | 133 |
| 147 // Right after the volume up after set_mute recovers to original volume. | 134 // Right after the volume up after set_mute recovers to original volume. |
| 148 VolumeUp(); | 135 volume_controller_->VolumeUp(); |
| 149 EXPECT_FALSE(audio_handler_->IsOutputMuted()); | 136 EXPECT_FALSE(audio_handler_->IsOutputMuted()); |
| 150 EXPECT_EQ(initial_volume, audio_handler_->GetOutputVolumePercent()); | 137 EXPECT_EQ(initial_volume, audio_handler_->GetOutputVolumePercent()); |
| 151 | 138 |
| 152 VolumeMute(); | 139 volume_controller_->VolumeMute(); |
| 153 // After the volume down, the volume goes down to zero explicitly. | 140 // After the volume down, the volume goes down to zero explicitly. |
| 154 VolumeDown(); | 141 volume_controller_->VolumeDown(); |
| 155 EXPECT_TRUE(audio_handler_->IsOutputMuted()); | 142 EXPECT_TRUE(audio_handler_->IsOutputMuted()); |
| 156 EXPECT_EQ(0, audio_handler_->GetOutputVolumePercent()); | 143 EXPECT_EQ(0, audio_handler_->GetOutputVolumePercent()); |
| 157 | 144 |
| 158 // Thus, further VolumeUp doesn't recover the volume, it's just slightly | 145 // Thus, further VolumeUp doesn't recover the volume, it's just slightly |
| 159 // bigger than 0. | 146 // bigger than 0. |
| 160 VolumeUp(); | 147 volume_controller_->VolumeUp(); |
| 161 EXPECT_LT(0, audio_handler_->GetOutputVolumePercent()); | 148 EXPECT_LT(0, audio_handler_->GetOutputVolumePercent()); |
| 162 EXPECT_GT(initial_volume, audio_handler_->GetOutputVolumePercent()); | 149 EXPECT_GT(initial_volume, audio_handler_->GetOutputVolumePercent()); |
| 163 } | 150 } |
| 164 | 151 |
| 165 class VolumeControllerSoundsTest : public VolumeControllerTest { | 152 class VolumeControllerSoundsTest : public VolumeControllerTest { |
| 166 public: | 153 public: |
| 167 VolumeControllerSoundsTest() : sounds_manager_(NULL) {} | 154 VolumeControllerSoundsTest() : sounds_manager_(NULL) {} |
| 168 ~VolumeControllerSoundsTest() override {} | 155 ~VolumeControllerSoundsTest() override {} |
| 169 | 156 |
| 170 void SetUpInProcessBrowserTestFixture() override { | 157 void SetUpInProcessBrowserTestFixture() override { |
| (...skipping 18 matching lines...) Expand all Loading... |
| 189 private: | 176 private: |
| 190 SoundsManagerTestImpl* sounds_manager_; | 177 SoundsManagerTestImpl* sounds_manager_; |
| 191 | 178 |
| 192 DISALLOW_COPY_AND_ASSIGN(VolumeControllerSoundsTest); | 179 DISALLOW_COPY_AND_ASSIGN(VolumeControllerSoundsTest); |
| 193 }; | 180 }; |
| 194 | 181 |
| 195 IN_PROC_BROWSER_TEST_F(VolumeControllerSoundsTest, Simple) { | 182 IN_PROC_BROWSER_TEST_F(VolumeControllerSoundsTest, Simple) { |
| 196 audio_handler_->SetOutputVolumePercent(50); | 183 audio_handler_->SetOutputVolumePercent(50); |
| 197 | 184 |
| 198 EnableSpokenFeedback(false /* enabled */); | 185 EnableSpokenFeedback(false /* enabled */); |
| 199 VolumeUp(); | 186 volume_controller_->VolumeUp(); |
| 200 VolumeDown(); | 187 volume_controller_->VolumeDown(); |
| 201 EXPECT_EQ(0, num_play_requests()); | 188 EXPECT_EQ(0, num_play_requests()); |
| 202 | 189 |
| 203 EnableSpokenFeedback(true /* enabled */); | 190 EnableSpokenFeedback(true /* enabled */); |
| 204 VolumeUp(); | 191 volume_controller_->VolumeUp(); |
| 205 VolumeDown(); | 192 volume_controller_->VolumeDown(); |
| 206 EXPECT_EQ(2, num_play_requests()); | 193 EXPECT_EQ(2, num_play_requests()); |
| 207 } | 194 } |
| 208 | 195 |
| 209 IN_PROC_BROWSER_TEST_F(VolumeControllerSoundsTest, EdgeCases) { | 196 IN_PROC_BROWSER_TEST_F(VolumeControllerSoundsTest, EdgeCases) { |
| 210 EXPECT_TRUE(is_sound_initialized()); | 197 EXPECT_TRUE(is_sound_initialized()); |
| 211 EnableSpokenFeedback(true /* enabled */); | 198 EnableSpokenFeedback(true /* enabled */); |
| 212 | 199 |
| 213 // Check that sound is played on volume up and volume down. | 200 // Check that sound is played on volume up and volume down. |
| 214 audio_handler_->SetOutputVolumePercent(50); | 201 audio_handler_->SetOutputVolumePercent(50); |
| 215 VolumeUp(); | 202 volume_controller_->VolumeUp(); |
| 216 EXPECT_EQ(1, num_play_requests()); | 203 EXPECT_EQ(1, num_play_requests()); |
| 217 VolumeDown(); | 204 volume_controller_->VolumeDown(); |
| 218 EXPECT_EQ(2, num_play_requests()); | 205 EXPECT_EQ(2, num_play_requests()); |
| 219 | 206 |
| 220 audio_handler_->SetOutputVolumePercent(99); | 207 audio_handler_->SetOutputVolumePercent(99); |
| 221 VolumeUp(); | 208 volume_controller_->VolumeUp(); |
| 222 EXPECT_EQ(3, num_play_requests()); | 209 EXPECT_EQ(3, num_play_requests()); |
| 223 | 210 |
| 224 audio_handler_->SetOutputVolumePercent(100); | 211 audio_handler_->SetOutputVolumePercent(100); |
| 225 VolumeUp(); | 212 volume_controller_->VolumeUp(); |
| 226 EXPECT_EQ(3, num_play_requests()); | 213 EXPECT_EQ(3, num_play_requests()); |
| 227 | 214 |
| 228 // Check that sound isn't played when audio is muted. | 215 // Check that sound isn't played when audio is muted. |
| 229 audio_handler_->SetOutputVolumePercent(50); | 216 audio_handler_->SetOutputVolumePercent(50); |
| 230 VolumeMute(); | 217 volume_controller_->VolumeMute(); |
| 231 VolumeDown(); | 218 volume_controller_->VolumeDown(); |
| 232 ASSERT_TRUE(audio_handler_->IsOutputMuted()); | 219 ASSERT_TRUE(audio_handler_->IsOutputMuted()); |
| 233 EXPECT_EQ(3, num_play_requests()); | 220 EXPECT_EQ(3, num_play_requests()); |
| 234 | 221 |
| 235 // Check that audio is unmuted and sound is played. | 222 // Check that audio is unmuted and sound is played. |
| 236 VolumeUp(); | 223 volume_controller_->VolumeUp(); |
| 237 ASSERT_FALSE(audio_handler_->IsOutputMuted()); | 224 ASSERT_FALSE(audio_handler_->IsOutputMuted()); |
| 238 EXPECT_EQ(4, num_play_requests()); | 225 EXPECT_EQ(4, num_play_requests()); |
| 239 } | 226 } |
| 240 | 227 |
| 241 class VolumeControllerSoundsDisabledTest : public VolumeControllerSoundsTest { | 228 class VolumeControllerSoundsDisabledTest : public VolumeControllerSoundsTest { |
| 242 public: | 229 public: |
| 243 VolumeControllerSoundsDisabledTest() {} | 230 VolumeControllerSoundsDisabledTest() {} |
| 244 ~VolumeControllerSoundsDisabledTest() override {} | 231 ~VolumeControllerSoundsDisabledTest() override {} |
| 245 | 232 |
| 246 void SetUpCommandLine(base::CommandLine* command_line) override { | 233 void SetUpCommandLine(base::CommandLine* command_line) override { |
| 247 VolumeControllerSoundsTest::SetUpCommandLine(command_line); | 234 VolumeControllerSoundsTest::SetUpCommandLine(command_line); |
| 248 command_line->AppendSwitch(chromeos::switches::kDisableVolumeAdjustSound); | 235 command_line->AppendSwitch(chromeos::switches::kDisableVolumeAdjustSound); |
| 249 } | 236 } |
| 250 | 237 |
| 251 private: | 238 private: |
| 252 DISALLOW_COPY_AND_ASSIGN(VolumeControllerSoundsDisabledTest); | 239 DISALLOW_COPY_AND_ASSIGN(VolumeControllerSoundsDisabledTest); |
| 253 }; | 240 }; |
| 254 | 241 |
| 255 IN_PROC_BROWSER_TEST_F(VolumeControllerSoundsDisabledTest, | 242 IN_PROC_BROWSER_TEST_F(VolumeControllerSoundsDisabledTest, |
| 256 VolumeAdjustSounds) { | 243 VolumeAdjustSounds) { |
| 257 EXPECT_FALSE(is_sound_initialized()); | 244 EXPECT_FALSE(is_sound_initialized()); |
| 258 | 245 |
| 259 // Check that sound isn't played on volume up and volume down. | 246 // Check that sound isn't played on volume up and volume down. |
| 260 audio_handler_->SetOutputVolumePercent(50); | 247 audio_handler_->SetOutputVolumePercent(50); |
| 261 VolumeUp(); | 248 volume_controller_->VolumeUp(); |
| 262 VolumeDown(); | 249 volume_controller_->VolumeDown(); |
| 263 EXPECT_EQ(0, num_play_requests()); | 250 EXPECT_EQ(0, num_play_requests()); |
| 264 } | 251 } |
| 265 | 252 |
| 266 } // namespace | 253 } // namespace |
| OLD | NEW |