OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "ash/virtual_keyboard_controller.h" | 5 #include "ash/virtual_keyboard_controller.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "ash/shell.h" | 9 #include "ash/shell.h" |
10 #include "ash/system/chromeos/virtual_keyboard/virtual_keyboard_observer.h" | 10 #include "ash/system/chromeos/virtual_keyboard/virtual_keyboard_observer.h" |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
147 // Whether the observer method was called. | 147 // Whether the observer method was called. |
148 bool notified_; | 148 bool notified_; |
149 | 149 |
150 // Whether the keeyboard is suppressed. | 150 // Whether the keeyboard is suppressed. |
151 bool suppressed_; | 151 bool suppressed_; |
152 | 152 |
153 DISALLOW_COPY_AND_ASSIGN(VirtualKeyboardControllerAutoTest); | 153 DISALLOW_COPY_AND_ASSIGN(VirtualKeyboardControllerAutoTest); |
154 }; | 154 }; |
155 | 155 |
156 // Tests that the onscreen keyboard is disabled if an internal keyboard is | 156 // Tests that the onscreen keyboard is disabled if an internal keyboard is |
157 // present. | 157 // present and maximized mode is disabled. |
158 TEST_F(VirtualKeyboardControllerAutoTest, DisabledIfInternalKeyboardPresent) { | 158 TEST_F(VirtualKeyboardControllerAutoTest, DisabledIfInternalKeyboardPresent) { |
159 std::vector<ui::TouchscreenDevice> screens; | 159 std::vector<ui::TouchscreenDevice> screens; |
160 screens.push_back(ui::TouchscreenDevice( | 160 screens.push_back(ui::TouchscreenDevice( |
161 1, ui::InputDeviceType::INPUT_DEVICE_INTERNAL, gfx::Size(1024, 768), 0)); | 161 1, ui::InputDeviceType::INPUT_DEVICE_INTERNAL, gfx::Size(1024, 768), 0)); |
162 UpdateTouchscreenDevices(screens); | 162 UpdateTouchscreenDevices(screens); |
163 std::vector<ui::KeyboardDevice> keyboards; | 163 std::vector<ui::KeyboardDevice> keyboards; |
164 keyboards.push_back( | 164 keyboards.push_back( |
165 ui::KeyboardDevice(1, ui::InputDeviceType::INPUT_DEVICE_INTERNAL)); | 165 ui::KeyboardDevice(1, ui::InputDeviceType::INPUT_DEVICE_INTERNAL)); |
166 UpdateKeyboardDevices(keyboards); | 166 UpdateKeyboardDevices(keyboards); |
167 ASSERT_FALSE(keyboard::IsKeyboardEnabled()); | 167 ASSERT_FALSE(keyboard::IsKeyboardEnabled()); |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
228 keyboards.push_back( | 228 keyboards.push_back( |
229 ui::KeyboardDevice(1, ui::InputDeviceType::INPUT_DEVICE_INTERNAL)); | 229 ui::KeyboardDevice(1, ui::InputDeviceType::INPUT_DEVICE_INTERNAL)); |
230 keyboards.push_back( | 230 keyboards.push_back( |
231 ui::KeyboardDevice(2, ui::InputDeviceType::INPUT_DEVICE_EXTERNAL)); | 231 ui::KeyboardDevice(2, ui::InputDeviceType::INPUT_DEVICE_EXTERNAL)); |
232 keyboards.push_back( | 232 keyboards.push_back( |
233 ui::KeyboardDevice(3, ui::InputDeviceType::INPUT_DEVICE_EXTERNAL)); | 233 ui::KeyboardDevice(3, ui::InputDeviceType::INPUT_DEVICE_EXTERNAL)); |
234 UpdateKeyboardDevices(keyboards); | 234 UpdateKeyboardDevices(keyboards); |
235 ASSERT_FALSE(keyboard::IsKeyboardEnabled()); | 235 ASSERT_FALSE(keyboard::IsKeyboardEnabled()); |
236 } | 236 } |
237 | 237 |
| 238 // Tests maximized mode interaction without disabling the internal keyboard. |
| 239 TEST_F(VirtualKeyboardControllerAutoTest, EnabledDuringMaximizeMode) { |
| 240 std::vector<ui::TouchscreenDevice> screens; |
| 241 screens.push_back(ui::TouchscreenDevice( |
| 242 1, ui::InputDeviceType::INPUT_DEVICE_INTERNAL, gfx::Size(1024, 768), 0)); |
| 243 UpdateTouchscreenDevices(screens); |
| 244 std::vector<ui::KeyboardDevice> keyboards; |
| 245 keyboards.push_back( |
| 246 ui::KeyboardDevice(1, ui::InputDeviceType::INPUT_DEVICE_INTERNAL)); |
| 247 UpdateKeyboardDevices(keyboards); |
| 248 ASSERT_FALSE(keyboard::IsKeyboardEnabled()); |
| 249 // Toggle maximized mode on. |
| 250 Shell::GetInstance() |
| 251 ->maximize_mode_controller() |
| 252 ->EnableMaximizeModeWindowManager(true); |
| 253 ASSERT_TRUE(keyboard::IsKeyboardEnabled()); |
| 254 // Toggle maximized mode off. |
| 255 Shell::GetInstance() |
| 256 ->maximize_mode_controller() |
| 257 ->EnableMaximizeModeWindowManager(false); |
| 258 ASSERT_FALSE(keyboard::IsKeyboardEnabled()); |
| 259 } |
| 260 |
| 261 // Tests that keyboard gets suppressed in maximized mode. |
| 262 TEST_F(VirtualKeyboardControllerAutoTest, SuppressedInMaximizedMode) { |
| 263 std::vector<ui::TouchscreenDevice> screens; |
| 264 screens.push_back(ui::TouchscreenDevice( |
| 265 1, ui::InputDeviceType::INPUT_DEVICE_INTERNAL, gfx::Size(1024, 768), 0)); |
| 266 UpdateTouchscreenDevices(screens); |
| 267 std::vector<ui::KeyboardDevice> keyboards; |
| 268 keyboards.push_back( |
| 269 ui::KeyboardDevice(1, ui::InputDeviceType::INPUT_DEVICE_INTERNAL)); |
| 270 keyboards.push_back( |
| 271 ui::KeyboardDevice(2, ui::InputDeviceType::INPUT_DEVICE_EXTERNAL)); |
| 272 UpdateKeyboardDevices(keyboards); |
| 273 // Toggle maximized mode on. |
| 274 Shell::GetInstance() |
| 275 ->maximize_mode_controller() |
| 276 ->EnableMaximizeModeWindowManager(true); |
| 277 ASSERT_FALSE(keyboard::IsKeyboardEnabled()); |
| 278 ASSERT_TRUE(notified()); |
| 279 ASSERT_TRUE(IsVirtualKeyboardSuppressed()); |
| 280 // Toggle show keyboard. Keyboard should be visible. |
| 281 ResetObserver(); |
| 282 Shell::GetInstance() |
| 283 ->virtual_keyboard_controller() |
| 284 ->ToggleIgnoreExternalKeyboard(); |
| 285 ASSERT_TRUE(keyboard::IsKeyboardEnabled()); |
| 286 ASSERT_TRUE(notified()); |
| 287 ASSERT_TRUE(IsVirtualKeyboardSuppressed()); |
| 288 // Toggle show keyboard. Keyboard should be hidden. |
| 289 ResetObserver(); |
| 290 Shell::GetInstance() |
| 291 ->virtual_keyboard_controller() |
| 292 ->ToggleIgnoreExternalKeyboard(); |
| 293 ASSERT_FALSE(keyboard::IsKeyboardEnabled()); |
| 294 ASSERT_TRUE(notified()); |
| 295 ASSERT_TRUE(IsVirtualKeyboardSuppressed()); |
| 296 // Remove external keyboard. Should be notified that the keyboard is not |
| 297 // suppressed. |
| 298 ResetObserver(); |
| 299 keyboards.pop_back(); |
| 300 UpdateKeyboardDevices(keyboards); |
| 301 ASSERT_TRUE(keyboard::IsKeyboardEnabled()); |
| 302 ASSERT_TRUE(notified()); |
| 303 ASSERT_FALSE(IsVirtualKeyboardSuppressed()); |
| 304 // Toggle maximized mode oFF. |
| 305 Shell::GetInstance() |
| 306 ->maximize_mode_controller() |
| 307 ->EnableMaximizeModeWindowManager(false); |
| 308 ASSERT_FALSE(keyboard::IsKeyboardEnabled()); |
| 309 } |
| 310 |
238 class VirtualKeyboardControllerAlwaysEnabledTest | 311 class VirtualKeyboardControllerAlwaysEnabledTest |
239 : public VirtualKeyboardControllerAutoTest { | 312 : public VirtualKeyboardControllerAutoTest { |
240 public: | 313 public: |
241 VirtualKeyboardControllerAlwaysEnabledTest() | 314 VirtualKeyboardControllerAlwaysEnabledTest() |
242 : VirtualKeyboardControllerAutoTest() {} | 315 : VirtualKeyboardControllerAutoTest() {} |
243 ~VirtualKeyboardControllerAlwaysEnabledTest() override {} | 316 ~VirtualKeyboardControllerAlwaysEnabledTest() override {} |
244 | 317 |
245 void SetUp() override { | 318 void SetUp() override { |
246 base::CommandLine::ForCurrentProcess()->AppendSwitch( | 319 base::CommandLine::ForCurrentProcess()->AppendSwitch( |
247 keyboard::switches::kEnableVirtualKeyboard); | 320 keyboard::switches::kEnableVirtualKeyboard); |
(...skipping 13 matching lines...) Expand all Loading... |
261 UpdateTouchscreenDevices(screens); | 334 UpdateTouchscreenDevices(screens); |
262 std::vector<ui::KeyboardDevice> keyboards; | 335 std::vector<ui::KeyboardDevice> keyboards; |
263 keyboards.push_back( | 336 keyboards.push_back( |
264 ui::KeyboardDevice(1, ui::InputDeviceType::INPUT_DEVICE_EXTERNAL)); | 337 ui::KeyboardDevice(1, ui::InputDeviceType::INPUT_DEVICE_EXTERNAL)); |
265 UpdateKeyboardDevices(keyboards); | 338 UpdateKeyboardDevices(keyboards); |
266 ASSERT_TRUE(keyboard::IsKeyboardEnabled()); | 339 ASSERT_TRUE(keyboard::IsKeyboardEnabled()); |
267 } | 340 } |
268 | 341 |
269 } // namespace test | 342 } // namespace test |
270 } // namespace ash | 343 } // namespace ash |
OLD | NEW |