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 |