| 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 "chrome/browser/chromeos/events/event_rewriter.h" | 5 #include "chrome/browser/chromeos/events/event_rewriter.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "ash/common/wm/window_state.h" | 9 #include "ash/common/wm/window_state.h" |
| 10 #include "ash/shell.h" | 10 #include "ash/shell.h" |
| (...skipping 2403 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2414 | 2414 |
| 2415 TEST_F(EventRewriterAshTest, MouseWheelEventDispatchImpl) { | 2415 TEST_F(EventRewriterAshTest, MouseWheelEventDispatchImpl) { |
| 2416 ScopedVector<ui::Event> events; | 2416 ScopedVector<ui::Event> events; |
| 2417 | 2417 |
| 2418 // Test positive mouse wheel event is correctly modified and modifier release | 2418 // Test positive mouse wheel event is correctly modified and modifier release |
| 2419 // event is sent. | 2419 // event is sent. |
| 2420 SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, | 2420 SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, |
| 2421 ui::DomKey::CONTROL); | 2421 ui::DomKey::CONTROL); |
| 2422 PopEvents(&events); | 2422 PopEvents(&events); |
| 2423 gfx::Point location(0, 0); | 2423 gfx::Point location(0, 0); |
| 2424 ui::MouseEvent mev(ui::ET_MOUSEWHEEL, location, location, | 2424 ui::MouseWheelEvent positive( |
| 2425 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, | 2425 gfx::Vector2d(0, ui::MouseWheelEvent::kWheelDelta), location, location, |
| 2426 ui::EF_LEFT_MOUSE_BUTTON); | 2426 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, |
| 2427 ui::MouseWheelEvent positive(mev, 0, ui::MouseWheelEvent::kWheelDelta); | 2427 ui::EF_LEFT_MOUSE_BUTTON); |
| 2428 ui::EventDispatchDetails details = Send(&positive); | 2428 ui::EventDispatchDetails details = Send(&positive); |
| 2429 ASSERT_FALSE(details.dispatcher_destroyed); | 2429 ASSERT_FALSE(details.dispatcher_destroyed); |
| 2430 PopEvents(&events); | 2430 PopEvents(&events); |
| 2431 EXPECT_EQ(2u, events.size()); | 2431 EXPECT_EQ(2u, events.size()); |
| 2432 EXPECT_TRUE(events[0]->IsMouseWheelEvent()); | 2432 EXPECT_TRUE(events[0]->IsMouseWheelEvent()); |
| 2433 EXPECT_TRUE(events[0]->flags() & ui::EF_CONTROL_DOWN); | 2433 EXPECT_TRUE(events[0]->flags() & ui::EF_CONTROL_DOWN); |
| 2434 EXPECT_EQ(ui::ET_KEY_RELEASED, events[1]->type()); | 2434 EXPECT_EQ(ui::ET_KEY_RELEASED, events[1]->type()); |
| 2435 EXPECT_EQ(ui::VKEY_CONTROL, | 2435 EXPECT_EQ(ui::VKEY_CONTROL, |
| 2436 static_cast<ui::KeyEvent*>(events[1])->key_code()); | 2436 static_cast<ui::KeyEvent*>(events[1])->key_code()); |
| 2437 | 2437 |
| 2438 // Test negative mouse wheel event is correctly modified and modifier release | 2438 // Test negative mouse wheel event is correctly modified and modifier release |
| 2439 // event is sent. | 2439 // event is sent. |
| 2440 SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, | 2440 SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, |
| 2441 ui::DomKey::CONTROL); | 2441 ui::DomKey::CONTROL); |
| 2442 PopEvents(&events); | 2442 PopEvents(&events); |
| 2443 ui::MouseWheelEvent negative(mev, 0, -ui::MouseWheelEvent::kWheelDelta); | 2443 ui::MouseWheelEvent negative( |
| 2444 gfx::Vector2d(0, -ui::MouseWheelEvent::kWheelDelta), location, location, |
| 2445 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, |
| 2446 ui::EF_LEFT_MOUSE_BUTTON); |
| 2444 details = Send(&negative); | 2447 details = Send(&negative); |
| 2445 ASSERT_FALSE(details.dispatcher_destroyed); | 2448 ASSERT_FALSE(details.dispatcher_destroyed); |
| 2446 PopEvents(&events); | 2449 PopEvents(&events); |
| 2447 EXPECT_EQ(2u, events.size()); | 2450 EXPECT_EQ(2u, events.size()); |
| 2448 EXPECT_TRUE(events[0]->IsMouseWheelEvent()); | 2451 EXPECT_TRUE(events[0]->IsMouseWheelEvent()); |
| 2449 EXPECT_TRUE(events[0]->flags() & ui::EF_CONTROL_DOWN); | 2452 EXPECT_TRUE(events[0]->flags() & ui::EF_CONTROL_DOWN); |
| 2450 EXPECT_EQ(ui::ET_KEY_RELEASED, events[1]->type()); | 2453 EXPECT_EQ(ui::ET_KEY_RELEASED, events[1]->type()); |
| 2451 EXPECT_EQ(ui::VKEY_CONTROL, | 2454 EXPECT_EQ(ui::VKEY_CONTROL, |
| 2452 static_cast<ui::KeyEvent*>(events[1])->key_code()); | 2455 static_cast<ui::KeyEvent*>(events[1])->key_code()); |
| 2453 } | 2456 } |
| 2454 | 2457 |
| 2455 // Tests that if modifier keys are remapped, the flags of a mouse wheel event | 2458 // Tests that if modifier keys are remapped, the flags of a mouse wheel event |
| 2456 // will be rewritten properly. | 2459 // will be rewritten properly. |
| 2457 TEST_F(EventRewriterAshTest, MouseWheelEventModifiersRewritten) { | 2460 TEST_F(EventRewriterAshTest, MouseWheelEventModifiersRewritten) { |
| 2458 // Remap Control to Alt. | 2461 // Remap Control to Alt. |
| 2459 IntegerPrefMember control; | 2462 IntegerPrefMember control; |
| 2460 control.Init(prefs::kLanguageRemapControlKeyTo, prefs()); | 2463 control.Init(prefs::kLanguageRemapControlKeyTo, prefs()); |
| 2461 control.SetValue(chromeos::input_method::kAltKey); | 2464 control.SetValue(chromeos::input_method::kAltKey); |
| 2462 | 2465 |
| 2463 // Generate a mouse wheel event that has a CONTROL_DOWN modifier flag and | 2466 // Generate a mouse wheel event that has a CONTROL_DOWN modifier flag and |
| 2464 // expect that it will be rewritten to ALT_DOWN. | 2467 // expect that it will be rewritten to ALT_DOWN. |
| 2465 ScopedVector<ui::Event> events; | 2468 ScopedVector<ui::Event> events; |
| 2466 gfx::Point location(0, 0); | 2469 gfx::Point location(0, 0); |
| 2467 ui::MouseEvent mev( | 2470 ui::MouseWheelEvent positive( |
| 2468 ui::ET_MOUSEWHEEL, location, location, ui::EventTimeForNow(), | 2471 gfx::Vector2d(0, ui::MouseWheelEvent::kWheelDelta), location, location, |
| 2469 ui::EF_LEFT_MOUSE_BUTTON | ui::EF_CONTROL_DOWN, ui::EF_LEFT_MOUSE_BUTTON); | 2472 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON | ui::EF_CONTROL_DOWN, |
| 2470 ui::MouseWheelEvent positive(mev, 0, ui::MouseWheelEvent::kWheelDelta); | 2473 ui::EF_LEFT_MOUSE_BUTTON); |
| 2471 ui::EventDispatchDetails details = Send(&positive); | 2474 ui::EventDispatchDetails details = Send(&positive); |
| 2472 ASSERT_FALSE(details.dispatcher_destroyed); | 2475 ASSERT_FALSE(details.dispatcher_destroyed); |
| 2473 PopEvents(&events); | 2476 PopEvents(&events); |
| 2474 EXPECT_EQ(1u, events.size()); | 2477 EXPECT_EQ(1u, events.size()); |
| 2475 EXPECT_TRUE(events[0]->IsMouseWheelEvent()); | 2478 EXPECT_TRUE(events[0]->IsMouseWheelEvent()); |
| 2476 EXPECT_FALSE(events[0]->flags() & ui::EF_CONTROL_DOWN); | 2479 EXPECT_FALSE(events[0]->flags() & ui::EF_CONTROL_DOWN); |
| 2477 EXPECT_TRUE(events[0]->flags() & ui::EF_ALT_DOWN); | 2480 EXPECT_TRUE(events[0]->flags() & ui::EF_ALT_DOWN); |
| 2478 } | 2481 } |
| 2479 | 2482 |
| 2480 class StickyKeysOverlayTest : public EventRewriterAshTest { | 2483 class StickyKeysOverlayTest : public EventRewriterAshTest { |
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2685 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN)); | 2688 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN)); |
| 2686 EXPECT_TRUE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN)); | 2689 EXPECT_TRUE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN)); |
| 2687 | 2690 |
| 2688 // Turn off AltGr and Mod3. | 2691 // Turn off AltGr and Mod3. |
| 2689 sticky_keys_controller_->SetModifiersEnabled(false, false); | 2692 sticky_keys_controller_->SetModifiersEnabled(false, false); |
| 2690 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN)); | 2693 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN)); |
| 2691 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN)); | 2694 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN)); |
| 2692 } | 2695 } |
| 2693 | 2696 |
| 2694 } // namespace chromeos | 2697 } // namespace chromeos |
| OLD | NEW |