Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(99)

Side by Side Diff: chrome/browser/chromeos/events/event_rewriter_unittest.cc

Issue 1870793002: Convert //chrome/browser/chromeos from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: iwyu fixes Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/shell.h" 9 #include "ash/shell.h"
10 #include "ash/sticky_keys/sticky_keys_controller.h" 10 #include "ash/sticky_keys/sticky_keys_controller.h"
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 } 71 }
72 72
73 std::string GetRewrittenEventAsString(chromeos::EventRewriter* rewriter, 73 std::string GetRewrittenEventAsString(chromeos::EventRewriter* rewriter,
74 ui::EventType ui_type, 74 ui::EventType ui_type,
75 ui::KeyboardCode ui_keycode, 75 ui::KeyboardCode ui_keycode,
76 ui::DomCode code, 76 ui::DomCode code,
77 int ui_flags, // ui::EventFlags 77 int ui_flags, // ui::EventFlags
78 ui::DomKey key) { 78 ui::DomKey key) {
79 const ui::KeyEvent event(ui_type, ui_keycode, code, ui_flags, key, 79 const ui::KeyEvent event(ui_type, ui_keycode, code, ui_flags, key,
80 ui::EventTimeForNow()); 80 ui::EventTimeForNow());
81 scoped_ptr<ui::Event> new_event; 81 std::unique_ptr<ui::Event> new_event;
82 rewriter->RewriteEvent(event, &new_event); 82 rewriter->RewriteEvent(event, &new_event);
83 if (new_event) 83 if (new_event)
84 return GetKeyEventAsString(*new_event->AsKeyEvent()); 84 return GetKeyEventAsString(*new_event->AsKeyEvent());
85 return GetKeyEventAsString(event); 85 return GetKeyEventAsString(event);
86 } 86 }
87 87
88 // Table entry for simple single key event rewriting tests. 88 // Table entry for simple single key event rewriting tests.
89 struct KeyTestCase { 89 struct KeyTestCase {
90 ui::EventType type; 90 ui::EventType type;
91 struct Event { 91 struct Event {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 chromeos::input_method::Shutdown(); 139 chromeos::input_method::Shutdown();
140 } 140 }
141 141
142 protected: 142 protected:
143 void TestRewriteNumPadKeys(); 143 void TestRewriteNumPadKeys();
144 void TestRewriteNumPadKeysOnAppleKeyboard(); 144 void TestRewriteNumPadKeysOnAppleKeyboard();
145 145
146 const ui::MouseEvent* RewriteMouseButtonEvent( 146 const ui::MouseEvent* RewriteMouseButtonEvent(
147 chromeos::EventRewriter* rewriter, 147 chromeos::EventRewriter* rewriter,
148 const ui::MouseEvent& event, 148 const ui::MouseEvent& event,
149 scoped_ptr<ui::Event>* new_event) { 149 std::unique_ptr<ui::Event>* new_event) {
150 rewriter->RewriteMouseButtonEventForTesting(event, new_event); 150 rewriter->RewriteMouseButtonEventForTesting(event, new_event);
151 return *new_event ? new_event->get()->AsMouseEvent() : &event; 151 return *new_event ? new_event->get()->AsMouseEvent() : &event;
152 } 152 }
153 153
154 user_manager::FakeUserManager* fake_user_manager_; // Not owned. 154 user_manager::FakeUserManager* fake_user_manager_; // Not owned.
155 chromeos::ScopedUserManagerEnabler user_manager_enabler_; 155 chromeos::ScopedUserManagerEnabler user_manager_enabler_;
156 chromeos::input_method::MockInputMethodManager* input_method_manager_mock_; 156 chromeos::input_method::MockInputMethodManager* input_method_manager_mock_;
157 }; 157 };
158 158
159 TEST_F(EventRewriterTest, TestRewriteCommandToControl) { 159 TEST_F(EventRewriterTest, TestRewriteCommandToControl) {
(...skipping 1655 matching lines...) Expand 10 before | Expand all | Expand 10 after
1815 1815
1816 EventRewriter rewriter(NULL); 1816 EventRewriter rewriter(NULL);
1817 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 1817 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
1818 rewriter.set_pref_service_for_testing(&prefs); 1818 rewriter.set_pref_service_for_testing(&prefs);
1819 1819
1820 // Send left control press. 1820 // Send left control press.
1821 { 1821 {
1822 ui::KeyEvent keyevent(ui::ET_KEY_PRESSED, ui::VKEY_CONTROL, 1822 ui::KeyEvent keyevent(ui::ET_KEY_PRESSED, ui::VKEY_CONTROL,
1823 ui::DomCode::CONTROL_LEFT, ui::EF_FINAL, 1823 ui::DomCode::CONTROL_LEFT, ui::EF_FINAL,
1824 ui::DomKey::CONTROL, ui::EventTimeForNow()); 1824 ui::DomKey::CONTROL, ui::EventTimeForNow());
1825 scoped_ptr<ui::Event> new_event; 1825 std::unique_ptr<ui::Event> new_event;
1826 // Control should NOT be remapped to Alt if EF_FINAL is set. 1826 // Control should NOT be remapped to Alt if EF_FINAL is set.
1827 EXPECT_EQ(ui::EVENT_REWRITE_CONTINUE, 1827 EXPECT_EQ(ui::EVENT_REWRITE_CONTINUE,
1828 rewriter.RewriteEvent(keyevent, &new_event)); 1828 rewriter.RewriteEvent(keyevent, &new_event));
1829 EXPECT_FALSE(new_event); 1829 EXPECT_FALSE(new_event);
1830 } 1830 }
1831 #if defined(USE_X11) 1831 #if defined(USE_X11)
1832 // Send left control press, using XI2 native events. 1832 // Send left control press, using XI2 native events.
1833 { 1833 {
1834 ui::ScopedXI2Event xev; 1834 ui::ScopedXI2Event xev;
1835 xev.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_CONTROL, 0); 1835 xev.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_CONTROL, 0);
1836 XEvent* xevent = xev; 1836 XEvent* xevent = xev;
1837 xevent->xkey.keycode = XKeysymToKeycode(gfx::GetXDisplay(), XK_Control_L); 1837 xevent->xkey.keycode = XKeysymToKeycode(gfx::GetXDisplay(), XK_Control_L);
1838 xevent->xkey.send_event = True; // XSendEvent() always does this. 1838 xevent->xkey.send_event = True; // XSendEvent() always does this.
1839 ui::KeyEvent keyevent(xev); 1839 ui::KeyEvent keyevent(xev);
1840 scoped_ptr<ui::Event> new_event; 1840 std::unique_ptr<ui::Event> new_event;
1841 // Control should NOT be remapped to Alt if send_event 1841 // Control should NOT be remapped to Alt if send_event
1842 // flag in the event is True. 1842 // flag in the event is True.
1843 EXPECT_EQ(ui::EVENT_REWRITE_CONTINUE, 1843 EXPECT_EQ(ui::EVENT_REWRITE_CONTINUE,
1844 rewriter.RewriteEvent(keyevent, &new_event)); 1844 rewriter.RewriteEvent(keyevent, &new_event));
1845 EXPECT_FALSE(new_event); 1845 EXPECT_FALSE(new_event);
1846 } 1846 }
1847 #endif 1847 #endif
1848 } 1848 }
1849 1849
1850 TEST_F(EventRewriterTest, TestRewriteNonNativeEvent) { 1850 TEST_F(EventRewriterTest, TestRewriteNonNativeEvent) {
(...skipping 10 matching lines...) Expand all
1861 1861
1862 const int kTouchId = 2; 1862 const int kTouchId = 2;
1863 gfx::Point location(0, 0); 1863 gfx::Point location(0, 0);
1864 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, location, kTouchId, 1864 ui::TouchEvent press(ui::ET_TOUCH_PRESSED, location, kTouchId,
1865 base::TimeDelta()); 1865 base::TimeDelta());
1866 press.set_flags(ui::EF_CONTROL_DOWN); 1866 press.set_flags(ui::EF_CONTROL_DOWN);
1867 #if defined(USE_X11) 1867 #if defined(USE_X11)
1868 ui::UpdateX11EventForFlags(&press); 1868 ui::UpdateX11EventForFlags(&press);
1869 #endif 1869 #endif
1870 1870
1871 scoped_ptr<ui::Event> new_event; 1871 std::unique_ptr<ui::Event> new_event;
1872 rewriter.RewriteEvent(press, &new_event); 1872 rewriter.RewriteEvent(press, &new_event);
1873 EXPECT_TRUE(new_event); 1873 EXPECT_TRUE(new_event);
1874 // Control should be remapped to Alt. 1874 // Control should be remapped to Alt.
1875 EXPECT_EQ(ui::EF_ALT_DOWN, 1875 EXPECT_EQ(ui::EF_ALT_DOWN,
1876 new_event->flags() & (ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN)); 1876 new_event->flags() & (ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN));
1877 } 1877 }
1878 1878
1879 // Keeps a buffer of handled events. 1879 // Keeps a buffer of handled events.
1880 class EventBuffer : public ui::test::TestEventProcessor { 1880 class EventBuffer : public ui::test::TestEventProcessor {
1881 public: 1881 public:
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1916 // Tests of event rewriting that depend on the Ash window manager. 1916 // Tests of event rewriting that depend on the Ash window manager.
1917 class EventRewriterAshTest : public ash::test::AshTestBase { 1917 class EventRewriterAshTest : public ash::test::AshTestBase {
1918 public: 1918 public:
1919 EventRewriterAshTest() 1919 EventRewriterAshTest()
1920 : source_(&buffer_), 1920 : source_(&buffer_),
1921 fake_user_manager_(new user_manager::FakeUserManager), 1921 fake_user_manager_(new user_manager::FakeUserManager),
1922 user_manager_enabler_(fake_user_manager_) {} 1922 user_manager_enabler_(fake_user_manager_) {}
1923 ~EventRewriterAshTest() override {} 1923 ~EventRewriterAshTest() override {}
1924 1924
1925 bool RewriteFunctionKeys(const ui::Event& event, 1925 bool RewriteFunctionKeys(const ui::Event& event,
1926 scoped_ptr<ui::Event>* rewritten_event) { 1926 std::unique_ptr<ui::Event>* rewritten_event) {
1927 return rewriter_->RewriteEvent(event, rewritten_event); 1927 return rewriter_->RewriteEvent(event, rewritten_event);
1928 } 1928 }
1929 1929
1930 ui::EventDispatchDetails Send(ui::Event* event) { 1930 ui::EventDispatchDetails Send(ui::Event* event) {
1931 return source_.Send(event); 1931 return source_.Send(event);
1932 } 1932 }
1933 1933
1934 void SendKeyEvent(ui::EventType type, 1934 void SendKeyEvent(ui::EventType type,
1935 ui::KeyboardCode key_code, 1935 ui::KeyboardCode key_code,
1936 ui::DomCode code, 1936 ui::DomCode code,
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1969 1969
1970 void TearDown() override { 1970 void TearDown() override {
1971 rewriter_.reset(); 1971 rewriter_.reset();
1972 AshTestBase::TearDown(); 1972 AshTestBase::TearDown();
1973 } 1973 }
1974 1974
1975 protected: 1975 protected:
1976 ash::StickyKeysController* sticky_keys_controller_; 1976 ash::StickyKeysController* sticky_keys_controller_;
1977 1977
1978 private: 1978 private:
1979 scoped_ptr<EventRewriter> rewriter_; 1979 std::unique_ptr<EventRewriter> rewriter_;
1980 1980
1981 EventBuffer buffer_; 1981 EventBuffer buffer_;
1982 TestEventSource source_; 1982 TestEventSource source_;
1983 1983
1984 user_manager::FakeUserManager* fake_user_manager_; // Not owned. 1984 user_manager::FakeUserManager* fake_user_manager_; // Not owned.
1985 chromeos::ScopedUserManagerEnabler user_manager_enabler_; 1985 chromeos::ScopedUserManagerEnabler user_manager_enabler_;
1986 syncable_prefs::TestingPrefServiceSyncable prefs_; 1986 syncable_prefs::TestingPrefServiceSyncable prefs_;
1987 1987
1988 DISALLOW_COPY_AND_ASSIGN(EventRewriterAshTest); 1988 DISALLOW_COPY_AND_ASSIGN(EventRewriterAshTest);
1989 }; 1989 };
1990 1990
1991 TEST_F(EventRewriterAshTest, TopRowKeysAreFunctionKeys) { 1991 TEST_F(EventRewriterAshTest, TopRowKeysAreFunctionKeys) {
1992 scoped_ptr<aura::Window> window(CreateTestWindowInShellWithId(1)); 1992 std::unique_ptr<aura::Window> window(CreateTestWindowInShellWithId(1));
1993 ash::wm::WindowState* window_state = ash::wm::GetWindowState(window.get()); 1993 ash::wm::WindowState* window_state = ash::wm::GetWindowState(window.get());
1994 window_state->Activate(); 1994 window_state->Activate();
1995 ScopedVector<ui::Event> events; 1995 ScopedVector<ui::Event> events;
1996 1996
1997 // Create a simulated keypress of F1 targetted at the window. 1997 // Create a simulated keypress of F1 targetted at the window.
1998 ui::KeyEvent press_f1(ui::ET_KEY_PRESSED, ui::VKEY_F1, ui::DomCode::F1, 1998 ui::KeyEvent press_f1(ui::ET_KEY_PRESSED, ui::VKEY_F1, ui::DomCode::F1,
1999 ui::EF_NONE, ui::DomKey::F1, ui::EventTimeForNow()); 1999 ui::EF_NONE, ui::DomKey::F1, ui::EventTimeForNow());
2000 2000
2001 // Simulate an apps v2 window that has requested top row keys as function 2001 // Simulate an apps v2 window that has requested top row keys as function
2002 // keys. The event should not be rewritten. 2002 // keys. The event should not be rewritten.
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
2057 2057
2058 // Check that Control + Left Button is converted (via Alt + Left Button) 2058 // Check that Control + Left Button is converted (via Alt + Left Button)
2059 // to Right Button. 2059 // to Right Button.
2060 ui::ScopedXI2Event xev; 2060 ui::ScopedXI2Event xev;
2061 xev.InitGenericButtonEvent(10, ui::ET_MOUSE_PRESSED, gfx::Point(), 2061 xev.InitGenericButtonEvent(10, ui::ET_MOUSE_PRESSED, gfx::Point(),
2062 ui::EF_LEFT_MOUSE_BUTTON | ui::EF_CONTROL_DOWN); 2062 ui::EF_LEFT_MOUSE_BUTTON | ui::EF_CONTROL_DOWN);
2063 ui::MouseEvent press(xev); 2063 ui::MouseEvent press(xev);
2064 // Sanity check. 2064 // Sanity check.
2065 EXPECT_EQ(ui::ET_MOUSE_PRESSED, press.type()); 2065 EXPECT_EQ(ui::ET_MOUSE_PRESSED, press.type());
2066 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON | ui::EF_CONTROL_DOWN, press.flags()); 2066 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON | ui::EF_CONTROL_DOWN, press.flags());
2067 scoped_ptr<ui::Event> new_event; 2067 std::unique_ptr<ui::Event> new_event;
2068 const ui::MouseEvent* result = 2068 const ui::MouseEvent* result =
2069 RewriteMouseButtonEvent(&rewriter, press, &new_event); 2069 RewriteMouseButtonEvent(&rewriter, press, &new_event);
2070 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); 2070 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags());
2071 EXPECT_FALSE(ui::EF_LEFT_MOUSE_BUTTON & result->flags()); 2071 EXPECT_FALSE(ui::EF_LEFT_MOUSE_BUTTON & result->flags());
2072 EXPECT_FALSE(ui::EF_CONTROL_DOWN & result->flags()); 2072 EXPECT_FALSE(ui::EF_CONTROL_DOWN & result->flags());
2073 EXPECT_FALSE(ui::EF_ALT_DOWN & result->flags()); 2073 EXPECT_FALSE(ui::EF_ALT_DOWN & result->flags());
2074 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); 2074 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags());
2075 #endif 2075 #endif
2076 } 2076 }
2077 2077
(...skipping 14 matching lines...) Expand all
2092 // Test Alt + Left click. 2092 // Test Alt + Left click.
2093 { 2093 {
2094 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), 2094 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(),
2095 ui::EventTimeForNow(), kLeftAndAltFlag, 2095 ui::EventTimeForNow(), kLeftAndAltFlag,
2096 ui::EF_LEFT_MOUSE_BUTTON); 2096 ui::EF_LEFT_MOUSE_BUTTON);
2097 ui::EventTestApi test_press(&press); 2097 ui::EventTestApi test_press(&press);
2098 test_press.set_source_device_id(10); 2098 test_press.set_source_device_id(10);
2099 // Sanity check. 2099 // Sanity check.
2100 EXPECT_EQ(ui::ET_MOUSE_PRESSED, press.type()); 2100 EXPECT_EQ(ui::ET_MOUSE_PRESSED, press.type());
2101 EXPECT_EQ(kLeftAndAltFlag, press.flags()); 2101 EXPECT_EQ(kLeftAndAltFlag, press.flags());
2102 scoped_ptr<ui::Event> new_event; 2102 std::unique_ptr<ui::Event> new_event;
2103 const ui::MouseEvent* result = 2103 const ui::MouseEvent* result =
2104 RewriteMouseButtonEvent(&rewriter, press, &new_event); 2104 RewriteMouseButtonEvent(&rewriter, press, &new_event);
2105 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); 2105 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags());
2106 EXPECT_FALSE(kLeftAndAltFlag & result->flags()); 2106 EXPECT_FALSE(kLeftAndAltFlag & result->flags());
2107 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); 2107 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags());
2108 } 2108 }
2109 { 2109 {
2110 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(), 2110 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(),
2111 ui::EventTimeForNow(), kLeftAndAltFlag, 2111 ui::EventTimeForNow(), kLeftAndAltFlag,
2112 ui::EF_LEFT_MOUSE_BUTTON); 2112 ui::EF_LEFT_MOUSE_BUTTON);
2113 ui::EventTestApi test_release(&release); 2113 ui::EventTestApi test_release(&release);
2114 test_release.set_source_device_id(10); 2114 test_release.set_source_device_id(10);
2115 scoped_ptr<ui::Event> new_event; 2115 std::unique_ptr<ui::Event> new_event;
2116 const ui::MouseEvent* result = 2116 const ui::MouseEvent* result =
2117 RewriteMouseButtonEvent(&rewriter, release, &new_event); 2117 RewriteMouseButtonEvent(&rewriter, release, &new_event);
2118 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); 2118 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags());
2119 EXPECT_FALSE(kLeftAndAltFlag & result->flags()); 2119 EXPECT_FALSE(kLeftAndAltFlag & result->flags());
2120 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); 2120 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags());
2121 } 2121 }
2122 #if defined(USE_X11) 2122 #if defined(USE_X11)
2123 // Test Alt + Left click, using XI2 native events. 2123 // Test Alt + Left click, using XI2 native events.
2124 { 2124 {
2125 ui::ScopedXI2Event xev; 2125 ui::ScopedXI2Event xev;
2126 xev.InitGenericButtonEvent(10, ui::ET_MOUSE_PRESSED, gfx::Point(), 2126 xev.InitGenericButtonEvent(10, ui::ET_MOUSE_PRESSED, gfx::Point(),
2127 kLeftAndAltFlag); 2127 kLeftAndAltFlag);
2128 ui::MouseEvent press(xev); 2128 ui::MouseEvent press(xev);
2129 // Sanity check. 2129 // Sanity check.
2130 EXPECT_EQ(ui::ET_MOUSE_PRESSED, press.type()); 2130 EXPECT_EQ(ui::ET_MOUSE_PRESSED, press.type());
2131 EXPECT_EQ(kLeftAndAltFlag, press.flags()); 2131 EXPECT_EQ(kLeftAndAltFlag, press.flags());
2132 scoped_ptr<ui::Event> new_event; 2132 std::unique_ptr<ui::Event> new_event;
2133 const ui::MouseEvent* result = 2133 const ui::MouseEvent* result =
2134 RewriteMouseButtonEvent(&rewriter, press, &new_event); 2134 RewriteMouseButtonEvent(&rewriter, press, &new_event);
2135 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); 2135 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags());
2136 EXPECT_FALSE(kLeftAndAltFlag & result->flags()); 2136 EXPECT_FALSE(kLeftAndAltFlag & result->flags());
2137 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); 2137 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags());
2138 } 2138 }
2139 { 2139 {
2140 ui::ScopedXI2Event xev; 2140 ui::ScopedXI2Event xev;
2141 xev.InitGenericButtonEvent(10, ui::ET_MOUSE_RELEASED, gfx::Point(), 2141 xev.InitGenericButtonEvent(10, ui::ET_MOUSE_RELEASED, gfx::Point(),
2142 kLeftAndAltFlag); 2142 kLeftAndAltFlag);
2143 ui::MouseEvent release(xev); 2143 ui::MouseEvent release(xev);
2144 scoped_ptr<ui::Event> new_event; 2144 std::unique_ptr<ui::Event> new_event;
2145 const ui::MouseEvent* result = 2145 const ui::MouseEvent* result =
2146 RewriteMouseButtonEvent(&rewriter, release, &new_event); 2146 RewriteMouseButtonEvent(&rewriter, release, &new_event);
2147 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); 2147 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags());
2148 EXPECT_FALSE(kLeftAndAltFlag & result->flags()); 2148 EXPECT_FALSE(kLeftAndAltFlag & result->flags());
2149 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); 2149 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags());
2150 } 2150 }
2151 #endif 2151 #endif
2152 2152
2153 // No ALT in frst click. 2153 // No ALT in frst click.
2154 { 2154 {
2155 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), 2155 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(),
2156 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, 2156 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON,
2157 ui::EF_LEFT_MOUSE_BUTTON); 2157 ui::EF_LEFT_MOUSE_BUTTON);
2158 ui::EventTestApi test_press(&press); 2158 ui::EventTestApi test_press(&press);
2159 test_press.set_source_device_id(10); 2159 test_press.set_source_device_id(10);
2160 scoped_ptr<ui::Event> new_event; 2160 std::unique_ptr<ui::Event> new_event;
2161 const ui::MouseEvent* result = 2161 const ui::MouseEvent* result =
2162 RewriteMouseButtonEvent(&rewriter, press, &new_event); 2162 RewriteMouseButtonEvent(&rewriter, press, &new_event);
2163 EXPECT_TRUE(ui::EF_LEFT_MOUSE_BUTTON & result->flags()); 2163 EXPECT_TRUE(ui::EF_LEFT_MOUSE_BUTTON & result->flags());
2164 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags()); 2164 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags());
2165 } 2165 }
2166 { 2166 {
2167 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(), 2167 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(),
2168 ui::EventTimeForNow(), kLeftAndAltFlag, 2168 ui::EventTimeForNow(), kLeftAndAltFlag,
2169 ui::EF_LEFT_MOUSE_BUTTON); 2169 ui::EF_LEFT_MOUSE_BUTTON);
2170 ui::EventTestApi test_release(&release); 2170 ui::EventTestApi test_release(&release);
2171 test_release.set_source_device_id(10); 2171 test_release.set_source_device_id(10);
2172 scoped_ptr<ui::Event> new_event; 2172 std::unique_ptr<ui::Event> new_event;
2173 const ui::MouseEvent* result = 2173 const ui::MouseEvent* result =
2174 RewriteMouseButtonEvent(&rewriter, release, &new_event); 2174 RewriteMouseButtonEvent(&rewriter, release, &new_event);
2175 EXPECT_TRUE((ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN) & result->flags()); 2175 EXPECT_TRUE((ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN) & result->flags());
2176 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags()); 2176 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags());
2177 } 2177 }
2178 #if defined(USE_X11) 2178 #if defined(USE_X11)
2179 // No ALT in frst click, using XI2 native events. 2179 // No ALT in frst click, using XI2 native events.
2180 { 2180 {
2181 ui::ScopedXI2Event xev; 2181 ui::ScopedXI2Event xev;
2182 xev.InitGenericButtonEvent(10, ui::ET_MOUSE_PRESSED, gfx::Point(), 2182 xev.InitGenericButtonEvent(10, ui::ET_MOUSE_PRESSED, gfx::Point(),
2183 ui::EF_LEFT_MOUSE_BUTTON); 2183 ui::EF_LEFT_MOUSE_BUTTON);
2184 ui::MouseEvent press(xev); 2184 ui::MouseEvent press(xev);
2185 scoped_ptr<ui::Event> new_event; 2185 std::unique_ptr<ui::Event> new_event;
2186 const ui::MouseEvent* result = 2186 const ui::MouseEvent* result =
2187 RewriteMouseButtonEvent(&rewriter, press, &new_event); 2187 RewriteMouseButtonEvent(&rewriter, press, &new_event);
2188 EXPECT_TRUE(ui::EF_LEFT_MOUSE_BUTTON & result->flags()); 2188 EXPECT_TRUE(ui::EF_LEFT_MOUSE_BUTTON & result->flags());
2189 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags()); 2189 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags());
2190 } 2190 }
2191 { 2191 {
2192 ui::ScopedXI2Event xev; 2192 ui::ScopedXI2Event xev;
2193 xev.InitGenericButtonEvent(10, ui::ET_MOUSE_RELEASED, gfx::Point(), 2193 xev.InitGenericButtonEvent(10, ui::ET_MOUSE_RELEASED, gfx::Point(),
2194 kLeftAndAltFlag); 2194 kLeftAndAltFlag);
2195 ui::MouseEvent release(xev); 2195 ui::MouseEvent release(xev);
2196 scoped_ptr<ui::Event> new_event; 2196 std::unique_ptr<ui::Event> new_event;
2197 const ui::MouseEvent* result = 2197 const ui::MouseEvent* result =
2198 RewriteMouseButtonEvent(&rewriter, release, &new_event); 2198 RewriteMouseButtonEvent(&rewriter, release, &new_event);
2199 EXPECT_TRUE((ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN) & result->flags()); 2199 EXPECT_TRUE((ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN) & result->flags());
2200 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags()); 2200 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags());
2201 } 2201 }
2202 #endif 2202 #endif
2203 2203
2204 // ALT on different device. 2204 // ALT on different device.
2205 { 2205 {
2206 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), 2206 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(),
2207 ui::EventTimeForNow(), kLeftAndAltFlag, 2207 ui::EventTimeForNow(), kLeftAndAltFlag,
2208 ui::EF_LEFT_MOUSE_BUTTON); 2208 ui::EF_LEFT_MOUSE_BUTTON);
2209 ui::EventTestApi test_press(&press); 2209 ui::EventTestApi test_press(&press);
2210 test_press.set_source_device_id(11); 2210 test_press.set_source_device_id(11);
2211 scoped_ptr<ui::Event> new_event; 2211 std::unique_ptr<ui::Event> new_event;
2212 const ui::MouseEvent* result = 2212 const ui::MouseEvent* result =
2213 RewriteMouseButtonEvent(&rewriter, press, &new_event); 2213 RewriteMouseButtonEvent(&rewriter, press, &new_event);
2214 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); 2214 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags());
2215 EXPECT_FALSE(kLeftAndAltFlag & result->flags()); 2215 EXPECT_FALSE(kLeftAndAltFlag & result->flags());
2216 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); 2216 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags());
2217 } 2217 }
2218 { 2218 {
2219 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(), 2219 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(),
2220 ui::EventTimeForNow(), kLeftAndAltFlag, 2220 ui::EventTimeForNow(), kLeftAndAltFlag,
2221 ui::EF_LEFT_MOUSE_BUTTON); 2221 ui::EF_LEFT_MOUSE_BUTTON);
2222 ui::EventTestApi test_release(&release); 2222 ui::EventTestApi test_release(&release);
2223 test_release.set_source_device_id(10); 2223 test_release.set_source_device_id(10);
2224 scoped_ptr<ui::Event> new_event; 2224 std::unique_ptr<ui::Event> new_event;
2225 const ui::MouseEvent* result = 2225 const ui::MouseEvent* result =
2226 RewriteMouseButtonEvent(&rewriter, release, &new_event); 2226 RewriteMouseButtonEvent(&rewriter, release, &new_event);
2227 EXPECT_TRUE((ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN) & result->flags()); 2227 EXPECT_TRUE((ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN) & result->flags());
2228 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags()); 2228 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags());
2229 } 2229 }
2230 { 2230 {
2231 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(), 2231 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(),
2232 ui::EventTimeForNow(), kLeftAndAltFlag, 2232 ui::EventTimeForNow(), kLeftAndAltFlag,
2233 ui::EF_LEFT_MOUSE_BUTTON); 2233 ui::EF_LEFT_MOUSE_BUTTON);
2234 ui::EventTestApi test_release(&release); 2234 ui::EventTestApi test_release(&release);
2235 test_release.set_source_device_id(11); 2235 test_release.set_source_device_id(11);
2236 scoped_ptr<ui::Event> new_event; 2236 std::unique_ptr<ui::Event> new_event;
2237 const ui::MouseEvent* result = 2237 const ui::MouseEvent* result =
2238 RewriteMouseButtonEvent(&rewriter, release, &new_event); 2238 RewriteMouseButtonEvent(&rewriter, release, &new_event);
2239 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); 2239 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags());
2240 EXPECT_FALSE(kLeftAndAltFlag & result->flags()); 2240 EXPECT_FALSE(kLeftAndAltFlag & result->flags());
2241 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); 2241 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags());
2242 } 2242 }
2243 #if defined(USE_X11) 2243 #if defined(USE_X11)
2244 // ALT on different device, using XI2 native events. 2244 // ALT on different device, using XI2 native events.
2245 { 2245 {
2246 ui::ScopedXI2Event xev; 2246 ui::ScopedXI2Event xev;
2247 xev.InitGenericButtonEvent(11, ui::ET_MOUSE_PRESSED, gfx::Point(), 2247 xev.InitGenericButtonEvent(11, ui::ET_MOUSE_PRESSED, gfx::Point(),
2248 kLeftAndAltFlag); 2248 kLeftAndAltFlag);
2249 ui::MouseEvent press(xev); 2249 ui::MouseEvent press(xev);
2250 scoped_ptr<ui::Event> new_event; 2250 std::unique_ptr<ui::Event> new_event;
2251 const ui::MouseEvent* result = 2251 const ui::MouseEvent* result =
2252 RewriteMouseButtonEvent(&rewriter, press, &new_event); 2252 RewriteMouseButtonEvent(&rewriter, press, &new_event);
2253 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); 2253 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags());
2254 EXPECT_FALSE(kLeftAndAltFlag & result->flags()); 2254 EXPECT_FALSE(kLeftAndAltFlag & result->flags());
2255 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); 2255 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags());
2256 } 2256 }
2257 { 2257 {
2258 ui::ScopedXI2Event xev; 2258 ui::ScopedXI2Event xev;
2259 xev.InitGenericButtonEvent(10, ui::ET_MOUSE_RELEASED, gfx::Point(), 2259 xev.InitGenericButtonEvent(10, ui::ET_MOUSE_RELEASED, gfx::Point(),
2260 kLeftAndAltFlag); 2260 kLeftAndAltFlag);
2261 ui::MouseEvent release(xev); 2261 ui::MouseEvent release(xev);
2262 scoped_ptr<ui::Event> new_event; 2262 std::unique_ptr<ui::Event> new_event;
2263 const ui::MouseEvent* result = 2263 const ui::MouseEvent* result =
2264 RewriteMouseButtonEvent(&rewriter, release, &new_event); 2264 RewriteMouseButtonEvent(&rewriter, release, &new_event);
2265 EXPECT_TRUE((ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN) & result->flags()); 2265 EXPECT_TRUE((ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN) & result->flags());
2266 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags()); 2266 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags());
2267 } 2267 }
2268 { 2268 {
2269 ui::ScopedXI2Event xev; 2269 ui::ScopedXI2Event xev;
2270 xev.InitGenericButtonEvent(11, ui::ET_MOUSE_RELEASED, gfx::Point(), 2270 xev.InitGenericButtonEvent(11, ui::ET_MOUSE_RELEASED, gfx::Point(),
2271 kLeftAndAltFlag); 2271 kLeftAndAltFlag);
2272 ui::MouseEvent release(xev); 2272 ui::MouseEvent release(xev);
2273 scoped_ptr<ui::Event> new_event; 2273 std::unique_ptr<ui::Event> new_event;
2274 const ui::MouseEvent* result = 2274 const ui::MouseEvent* result =
2275 RewriteMouseButtonEvent(&rewriter, release, &new_event); 2275 RewriteMouseButtonEvent(&rewriter, release, &new_event);
2276 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); 2276 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags());
2277 EXPECT_FALSE(kLeftAndAltFlag & result->flags()); 2277 EXPECT_FALSE(kLeftAndAltFlag & result->flags());
2278 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); 2278 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags());
2279 } 2279 }
2280 #endif 2280 #endif
2281 } 2281 }
2282 2282
2283 TEST_F(EventRewriterAshTest, StickyKeyEventDispatchImpl) { 2283 TEST_F(EventRewriterAshTest, StickyKeyEventDispatchImpl) {
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
2603 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN)); 2603 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN));
2604 EXPECT_TRUE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN)); 2604 EXPECT_TRUE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN));
2605 2605
2606 // Turn off AltGr and Mod3. 2606 // Turn off AltGr and Mod3.
2607 sticky_keys_controller_->SetModifiersEnabled(false, false); 2607 sticky_keys_controller_->SetModifiersEnabled(false, false);
2608 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN)); 2608 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN));
2609 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN)); 2609 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN));
2610 } 2610 }
2611 2611
2612 } // namespace chromeos 2612 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698