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

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

Issue 1117173003: Converting (Alt+LeftClick -> RightClick) to (Search+LeftClick -> RightClick) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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 1921 matching lines...) Expand 10 before | Expand all | Expand 10 after
1932 EXPECT_EQ(GetExpectedResultAsString( 1932 EXPECT_EQ(GetExpectedResultAsString(
1933 ui::VKEY_BROWSER_BACK, ui::EF_NONE, ui::ET_KEY_PRESSED), 1933 ui::VKEY_BROWSER_BACK, ui::EF_NONE, ui::ET_KEY_PRESSED),
1934 GetKeyEventAsString(*static_cast<ui::KeyEvent*>(events[0]))); 1934 GetKeyEventAsString(*static_cast<ui::KeyEvent*>(events[0])));
1935 } 1935 }
1936 1936
1937 TEST_F(EventRewriterTest, TestRewrittenModifierClick) { 1937 TEST_F(EventRewriterTest, TestRewrittenModifierClick) {
1938 std::vector<int> device_list; 1938 std::vector<int> device_list;
1939 device_list.push_back(10); 1939 device_list.push_back(10);
1940 ui::TouchFactory::GetInstance()->SetPointerDeviceForTest(device_list); 1940 ui::TouchFactory::GetInstance()->SetPointerDeviceForTest(device_list);
1941 1941
1942 // Remap Control to Alt. 1942 // Remap Control to Search.
1943 TestingPrefServiceSyncable prefs; 1943 TestingPrefServiceSyncable prefs;
1944 chromeos::Preferences::RegisterProfilePrefs(prefs.registry()); 1944 chromeos::Preferences::RegisterProfilePrefs(prefs.registry());
1945 IntegerPrefMember control; 1945 IntegerPrefMember control;
1946 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs); 1946 control.Init(prefs::kLanguageRemapControlKeyTo, &prefs);
1947 control.SetValue(chromeos::input_method::kAltKey); 1947 control.SetValue(chromeos::input_method::kSearchKey);
1948 1948
1949 EventRewriter rewriter(NULL); 1949 EventRewriter rewriter(NULL);
1950 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard"); 1950 rewriter.KeyboardDeviceAddedForTesting(kKeyboardDeviceId, "PC Keyboard");
1951 rewriter.set_pref_service_for_testing(&prefs); 1951 rewriter.set_pref_service_for_testing(&prefs);
1952 1952
1953 // Check that Control + Left Button is converted (via Alt + Left Button) 1953 // Check that Control + Left Button is converted (via Search + Left Button)
1954 // to Right Button. 1954 // to Right Button.
1955 ui::ScopedXI2Event xev; 1955 ui::ScopedXI2Event xev;
1956 xev.InitGenericButtonEvent(10, 1956 xev.InitGenericButtonEvent(10,
1957 ui::ET_MOUSE_PRESSED, 1957 ui::ET_MOUSE_PRESSED,
1958 gfx::Point(), 1958 gfx::Point(),
1959 ui::EF_LEFT_MOUSE_BUTTON | ui::EF_CONTROL_DOWN); 1959 ui::EF_LEFT_MOUSE_BUTTON | ui::EF_CONTROL_DOWN);
1960 ui::MouseEvent press(xev); 1960 ui::MouseEvent press(xev);
1961 // Sanity check. 1961 // Sanity check.
1962 EXPECT_EQ(ui::ET_MOUSE_PRESSED, press.type()); 1962 EXPECT_EQ(ui::ET_MOUSE_PRESSED, press.type());
1963 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON | ui::EF_CONTROL_DOWN, press.flags()); 1963 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON | ui::EF_CONTROL_DOWN, press.flags());
1964 scoped_ptr<ui::Event> new_event; 1964 scoped_ptr<ui::Event> new_event;
1965 const ui::MouseEvent* result = 1965 const ui::MouseEvent* result =
1966 RewriteMouseButtonEvent(&rewriter, press, &new_event); 1966 RewriteMouseButtonEvent(&rewriter, press, &new_event);
1967 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); 1967 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags());
1968 EXPECT_FALSE(ui::EF_LEFT_MOUSE_BUTTON & result->flags()); 1968 EXPECT_FALSE(ui::EF_LEFT_MOUSE_BUTTON & result->flags());
1969 EXPECT_FALSE(ui::EF_CONTROL_DOWN & result->flags()); 1969 EXPECT_FALSE(ui::EF_CONTROL_DOWN & result->flags());
1970 EXPECT_FALSE(ui::EF_ALT_DOWN & result->flags()); 1970 EXPECT_FALSE(ui::EF_COMMAND_DOWN & result->flags());
1971 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); 1971 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags());
1972 } 1972 }
1973 1973
1974 TEST_F(EventRewriterTest, DontRewriteIfNotRewritten) { 1974 TEST_F(EventRewriterTest, DontRewriteIfNotRewritten) {
1975 // TODO(kpschoedel): pending changes for crbug.com/360377 1975 // TODO(kpschoedel): pending changes for crbug.com/360377
1976 // to |chromeos::EventRewriter::RewriteLocatedEvent() 1976 // to |chromeos::EventRewriter::RewriteLocatedEvent()
1977 std::vector<int> device_list; 1977 std::vector<int> device_list;
1978 device_list.push_back(10); 1978 device_list.push_back(10);
1979 device_list.push_back(11); 1979 device_list.push_back(11);
1980 ui::TouchFactory::GetInstance()->SetPointerDeviceForTest(device_list); 1980 ui::TouchFactory::GetInstance()->SetPointerDeviceForTest(device_list);
1981 TestingPrefServiceSyncable prefs; 1981 TestingPrefServiceSyncable prefs;
1982 EventRewriter rewriter(NULL); 1982 EventRewriter rewriter(NULL);
1983 rewriter.set_pref_service_for_testing(&prefs); 1983 rewriter.set_pref_service_for_testing(&prefs);
1984 const int kLeftAndAltFlag = ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN; 1984 const int kLeftAndSearchFlag = ui::EF_LEFT_MOUSE_BUTTON | ui::EF_COMMAND_DOWN;
1985 1985
1986 // Test Alt + Left click. 1986 // Test Search + Left click.
1987 { 1987 {
1988 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), 1988 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(),
1989 ui::EventTimeForNow(), kLeftAndAltFlag, 1989 ui::EventTimeForNow(), kLeftAndSearchFlag,
1990 ui::EF_LEFT_MOUSE_BUTTON); 1990 ui::EF_LEFT_MOUSE_BUTTON);
1991 ui::EventTestApi test_press(&press); 1991 ui::EventTestApi test_press(&press);
1992 test_press.set_source_device_id(10); 1992 test_press.set_source_device_id(10);
1993 // Sanity check. 1993 // Sanity check.
1994 EXPECT_EQ(ui::ET_MOUSE_PRESSED, press.type()); 1994 EXPECT_EQ(ui::ET_MOUSE_PRESSED, press.type());
1995 EXPECT_EQ(kLeftAndAltFlag, press.flags()); 1995 EXPECT_EQ(kLeftAndSearchFlag, press.flags());
1996 scoped_ptr<ui::Event> new_event; 1996 scoped_ptr<ui::Event> new_event;
1997 const ui::MouseEvent* result = 1997 const ui::MouseEvent* result =
1998 RewriteMouseButtonEvent(&rewriter, press, &new_event); 1998 RewriteMouseButtonEvent(&rewriter, press, &new_event);
1999 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); 1999 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags());
2000 EXPECT_FALSE(kLeftAndAltFlag & result->flags()); 2000 EXPECT_FALSE(kLeftAndSearchFlag & result->flags());
2001 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); 2001 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags());
2002 } 2002 }
2003 { 2003 {
2004 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(), 2004 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(),
2005 ui::EventTimeForNow(), kLeftAndAltFlag, 2005 ui::EventTimeForNow(), kLeftAndSearchFlag,
2006 ui::EF_LEFT_MOUSE_BUTTON); 2006 ui::EF_LEFT_MOUSE_BUTTON);
2007 ui::EventTestApi test_release(&release); 2007 ui::EventTestApi test_release(&release);
2008 test_release.set_source_device_id(10); 2008 test_release.set_source_device_id(10);
2009 scoped_ptr<ui::Event> new_event; 2009 scoped_ptr<ui::Event> new_event;
2010 const ui::MouseEvent* result = 2010 const ui::MouseEvent* result =
2011 RewriteMouseButtonEvent(&rewriter, release, &new_event); 2011 RewriteMouseButtonEvent(&rewriter, release, &new_event);
2012 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); 2012 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags());
2013 EXPECT_FALSE(kLeftAndAltFlag & result->flags()); 2013 EXPECT_FALSE(kLeftAndSearchFlag & result->flags());
2014 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); 2014 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags());
2015 } 2015 }
2016 #if defined(USE_X11) 2016 #if defined(USE_X11)
2017 // Test Alt + Left click, using XI2 native events. 2017 // Test Search + Left click, using XI2 native events.
2018 { 2018 {
2019 ui::ScopedXI2Event xev; 2019 ui::ScopedXI2Event xev;
2020 xev.InitGenericButtonEvent( 2020 xev.InitGenericButtonEvent(10, ui::ET_MOUSE_PRESSED, gfx::Point(),
2021 10, ui::ET_MOUSE_PRESSED, gfx::Point(), kLeftAndAltFlag); 2021 kLeftAndSearchFlag);
2022 ui::MouseEvent press(xev); 2022 ui::MouseEvent press(xev);
2023 // Sanity check. 2023 // Sanity check.
2024 EXPECT_EQ(ui::ET_MOUSE_PRESSED, press.type()); 2024 EXPECT_EQ(ui::ET_MOUSE_PRESSED, press.type());
2025 EXPECT_EQ(kLeftAndAltFlag, press.flags()); 2025 EXPECT_EQ(kLeftAndSearchFlag, press.flags());
2026 scoped_ptr<ui::Event> new_event; 2026 scoped_ptr<ui::Event> new_event;
2027 const ui::MouseEvent* result = 2027 const ui::MouseEvent* result =
2028 RewriteMouseButtonEvent(&rewriter, press, &new_event); 2028 RewriteMouseButtonEvent(&rewriter, press, &new_event);
2029 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); 2029 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags());
2030 EXPECT_FALSE(kLeftAndAltFlag & result->flags()); 2030 EXPECT_FALSE(kLeftAndSearchFlag & result->flags());
2031 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); 2031 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags());
2032 } 2032 }
2033 { 2033 {
2034 ui::ScopedXI2Event xev; 2034 ui::ScopedXI2Event xev;
2035 xev.InitGenericButtonEvent( 2035 xev.InitGenericButtonEvent(10, ui::ET_MOUSE_RELEASED, gfx::Point(),
2036 10, ui::ET_MOUSE_RELEASED, gfx::Point(), kLeftAndAltFlag); 2036 kLeftAndSearchFlag);
2037 ui::MouseEvent release(xev); 2037 ui::MouseEvent release(xev);
2038 scoped_ptr<ui::Event> new_event; 2038 scoped_ptr<ui::Event> new_event;
2039 const ui::MouseEvent* result = 2039 const ui::MouseEvent* result =
2040 RewriteMouseButtonEvent(&rewriter, release, &new_event); 2040 RewriteMouseButtonEvent(&rewriter, release, &new_event);
2041 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); 2041 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags());
2042 EXPECT_FALSE(kLeftAndAltFlag & result->flags()); 2042 EXPECT_FALSE(kLeftAndSearchFlag & result->flags());
2043 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); 2043 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags());
2044 } 2044 }
2045 #endif 2045 #endif
2046 2046
2047 // No ALT in frst click. 2047 // No SEARCH in first click.
2048 { 2048 {
2049 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), 2049 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(),
2050 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, 2050 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON,
2051 ui::EF_LEFT_MOUSE_BUTTON); 2051 ui::EF_LEFT_MOUSE_BUTTON);
2052 ui::EventTestApi test_press(&press); 2052 ui::EventTestApi test_press(&press);
2053 test_press.set_source_device_id(10); 2053 test_press.set_source_device_id(10);
2054 scoped_ptr<ui::Event> new_event; 2054 scoped_ptr<ui::Event> new_event;
2055 const ui::MouseEvent* result = 2055 const ui::MouseEvent* result =
2056 RewriteMouseButtonEvent(&rewriter, press, &new_event); 2056 RewriteMouseButtonEvent(&rewriter, press, &new_event);
2057 EXPECT_TRUE(ui::EF_LEFT_MOUSE_BUTTON & result->flags()); 2057 EXPECT_TRUE(ui::EF_LEFT_MOUSE_BUTTON & result->flags());
2058 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags()); 2058 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags());
2059 } 2059 }
2060 { 2060 {
2061 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(), 2061 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(),
2062 ui::EventTimeForNow(), kLeftAndAltFlag, 2062 ui::EventTimeForNow(), kLeftAndSearchFlag,
2063 ui::EF_LEFT_MOUSE_BUTTON); 2063 ui::EF_LEFT_MOUSE_BUTTON);
2064 ui::EventTestApi test_release(&release); 2064 ui::EventTestApi test_release(&release);
2065 test_release.set_source_device_id(10); 2065 test_release.set_source_device_id(10);
2066 scoped_ptr<ui::Event> new_event; 2066 scoped_ptr<ui::Event> new_event;
2067 const ui::MouseEvent* result = 2067 const ui::MouseEvent* result =
2068 RewriteMouseButtonEvent(&rewriter, release, &new_event); 2068 RewriteMouseButtonEvent(&rewriter, release, &new_event);
2069 EXPECT_TRUE((ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN) & result->flags()); 2069 EXPECT_FALSE((ui::EF_LEFT_MOUSE_BUTTON | ui::EF_COMMAND_DOWN) ^
2070 result->flags());
2070 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags()); 2071 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags());
2071 } 2072 }
2072 #if defined(USE_X11) 2073 #if defined(USE_X11)
2073 // No ALT in frst click, using XI2 native events. 2074 // No SEARCH in first click, using XI2 native events.
2074 { 2075 {
2075 ui::ScopedXI2Event xev; 2076 ui::ScopedXI2Event xev;
2076 xev.InitGenericButtonEvent( 2077 xev.InitGenericButtonEvent(
2077 10, ui::ET_MOUSE_PRESSED, gfx::Point(), ui::EF_LEFT_MOUSE_BUTTON); 2078 10, ui::ET_MOUSE_PRESSED, gfx::Point(), ui::EF_LEFT_MOUSE_BUTTON);
2078 ui::MouseEvent press(xev); 2079 ui::MouseEvent press(xev);
2079 scoped_ptr<ui::Event> new_event; 2080 scoped_ptr<ui::Event> new_event;
2080 const ui::MouseEvent* result = 2081 const ui::MouseEvent* result =
2081 RewriteMouseButtonEvent(&rewriter, press, &new_event); 2082 RewriteMouseButtonEvent(&rewriter, press, &new_event);
2082 EXPECT_TRUE(ui::EF_LEFT_MOUSE_BUTTON & result->flags()); 2083 EXPECT_TRUE(ui::EF_LEFT_MOUSE_BUTTON & result->flags());
2083 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags()); 2084 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags());
2084 } 2085 }
2085 { 2086 {
2086 ui::ScopedXI2Event xev; 2087 ui::ScopedXI2Event xev;
2087 xev.InitGenericButtonEvent( 2088 xev.InitGenericButtonEvent(10, ui::ET_MOUSE_RELEASED, gfx::Point(),
2088 10, ui::ET_MOUSE_RELEASED, gfx::Point(), kLeftAndAltFlag); 2089 kLeftAndSearchFlag);
2089 ui::MouseEvent release(xev); 2090 ui::MouseEvent release(xev);
2090 scoped_ptr<ui::Event> new_event; 2091 scoped_ptr<ui::Event> new_event;
2091 const ui::MouseEvent* result = 2092 const ui::MouseEvent* result =
2092 RewriteMouseButtonEvent(&rewriter, release, &new_event); 2093 RewriteMouseButtonEvent(&rewriter, release, &new_event);
2093 EXPECT_TRUE((ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN) & result->flags()); 2094 EXPECT_FALSE((ui::EF_LEFT_MOUSE_BUTTON | ui::EF_COMMAND_DOWN) ^
Daniel Erat 2015/05/01 03:12:21 what's the reason for the change to EXPECT_FALSE a
kpschoedel 2015/05/01 14:17:25 I see the original succeeds if only *one* of the f
afakhry 2015/05/02 00:02:42 Done.
2095 result->flags());
2094 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags()); 2096 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags());
2095 } 2097 }
2096 #endif 2098 #endif
2097 2099
2098 // ALT on different device. 2100 // SEARCH on different device.
2099 { 2101 {
2100 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), 2102 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(),
2101 ui::EventTimeForNow(), kLeftAndAltFlag, 2103 ui::EventTimeForNow(), kLeftAndSearchFlag,
2102 ui::EF_LEFT_MOUSE_BUTTON); 2104 ui::EF_LEFT_MOUSE_BUTTON);
2103 ui::EventTestApi test_press(&press); 2105 ui::EventTestApi test_press(&press);
2104 test_press.set_source_device_id(11); 2106 test_press.set_source_device_id(11);
2105 scoped_ptr<ui::Event> new_event; 2107 scoped_ptr<ui::Event> new_event;
2106 const ui::MouseEvent* result = 2108 const ui::MouseEvent* result =
2107 RewriteMouseButtonEvent(&rewriter, press, &new_event); 2109 RewriteMouseButtonEvent(&rewriter, press, &new_event);
2108 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); 2110 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags());
2109 EXPECT_FALSE(kLeftAndAltFlag & result->flags()); 2111 EXPECT_FALSE(kLeftAndSearchFlag & result->flags());
2110 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); 2112 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags());
2111 } 2113 }
2112 { 2114 {
2113 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(), 2115 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(),
2114 ui::EventTimeForNow(), kLeftAndAltFlag, 2116 ui::EventTimeForNow(), kLeftAndSearchFlag,
2115 ui::EF_LEFT_MOUSE_BUTTON); 2117 ui::EF_LEFT_MOUSE_BUTTON);
2116 ui::EventTestApi test_release(&release); 2118 ui::EventTestApi test_release(&release);
2117 test_release.set_source_device_id(10); 2119 test_release.set_source_device_id(10);
2118 scoped_ptr<ui::Event> new_event; 2120 scoped_ptr<ui::Event> new_event;
2119 const ui::MouseEvent* result = 2121 const ui::MouseEvent* result =
2120 RewriteMouseButtonEvent(&rewriter, release, &new_event); 2122 RewriteMouseButtonEvent(&rewriter, release, &new_event);
2121 EXPECT_TRUE((ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN) & result->flags()); 2123 EXPECT_FALSE((ui::EF_LEFT_MOUSE_BUTTON | ui::EF_COMMAND_DOWN) ^
2124 result->flags());
2122 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags()); 2125 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags());
2123 } 2126 }
2124 { 2127 {
2125 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(), 2128 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(),
2126 ui::EventTimeForNow(), kLeftAndAltFlag, 2129 ui::EventTimeForNow(), kLeftAndSearchFlag,
2127 ui::EF_LEFT_MOUSE_BUTTON); 2130 ui::EF_LEFT_MOUSE_BUTTON);
2128 ui::EventTestApi test_release(&release); 2131 ui::EventTestApi test_release(&release);
2129 test_release.set_source_device_id(11); 2132 test_release.set_source_device_id(11);
2130 scoped_ptr<ui::Event> new_event; 2133 scoped_ptr<ui::Event> new_event;
2131 const ui::MouseEvent* result = 2134 const ui::MouseEvent* result =
2132 RewriteMouseButtonEvent(&rewriter, release, &new_event); 2135 RewriteMouseButtonEvent(&rewriter, release, &new_event);
2133 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); 2136 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags());
2134 EXPECT_FALSE(kLeftAndAltFlag & result->flags()); 2137 EXPECT_FALSE(kLeftAndSearchFlag & result->flags());
2135 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); 2138 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags());
2136 } 2139 }
2137 #if defined(USE_X11) 2140 #if defined(USE_X11)
2138 // ALT on different device, using XI2 native events. 2141 // SEARCH on different device, using XI2 native events.
2139 { 2142 {
2140 ui::ScopedXI2Event xev; 2143 ui::ScopedXI2Event xev;
2141 xev.InitGenericButtonEvent( 2144 xev.InitGenericButtonEvent(11, ui::ET_MOUSE_PRESSED, gfx::Point(),
2142 11, ui::ET_MOUSE_PRESSED, gfx::Point(), kLeftAndAltFlag); 2145 kLeftAndSearchFlag);
2143 ui::MouseEvent press(xev); 2146 ui::MouseEvent press(xev);
2144 scoped_ptr<ui::Event> new_event; 2147 scoped_ptr<ui::Event> new_event;
2145 const ui::MouseEvent* result = 2148 const ui::MouseEvent* result =
2146 RewriteMouseButtonEvent(&rewriter, press, &new_event); 2149 RewriteMouseButtonEvent(&rewriter, press, &new_event);
2147 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); 2150 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags());
2148 EXPECT_FALSE(kLeftAndAltFlag & result->flags()); 2151 EXPECT_FALSE(kLeftAndSearchFlag & result->flags());
2149 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); 2152 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags());
2150 } 2153 }
2151 { 2154 {
2152 ui::ScopedXI2Event xev; 2155 ui::ScopedXI2Event xev;
2153 xev.InitGenericButtonEvent( 2156 xev.InitGenericButtonEvent(10, ui::ET_MOUSE_RELEASED, gfx::Point(),
2154 10, ui::ET_MOUSE_RELEASED, gfx::Point(), kLeftAndAltFlag); 2157 kLeftAndSearchFlag);
2155 ui::MouseEvent release(xev); 2158 ui::MouseEvent release(xev);
2156 scoped_ptr<ui::Event> new_event; 2159 scoped_ptr<ui::Event> new_event;
2157 const ui::MouseEvent* result = 2160 const ui::MouseEvent* result =
2158 RewriteMouseButtonEvent(&rewriter, release, &new_event); 2161 RewriteMouseButtonEvent(&rewriter, release, &new_event);
2159 EXPECT_TRUE((ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN) & result->flags()); 2162 EXPECT_FALSE((ui::EF_LEFT_MOUSE_BUTTON | ui::EF_COMMAND_DOWN) ^
2163 result->flags());
2160 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags()); 2164 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags());
2161 } 2165 }
2162 { 2166 {
2163 ui::ScopedXI2Event xev; 2167 ui::ScopedXI2Event xev;
2164 xev.InitGenericButtonEvent( 2168 xev.InitGenericButtonEvent(11, ui::ET_MOUSE_RELEASED, gfx::Point(),
2165 11, ui::ET_MOUSE_RELEASED, gfx::Point(), kLeftAndAltFlag); 2169 kLeftAndSearchFlag);
2166 ui::MouseEvent release(xev); 2170 ui::MouseEvent release(xev);
2167 scoped_ptr<ui::Event> new_event; 2171 scoped_ptr<ui::Event> new_event;
2168 const ui::MouseEvent* result = 2172 const ui::MouseEvent* result =
2169 RewriteMouseButtonEvent(&rewriter, release, &new_event); 2173 RewriteMouseButtonEvent(&rewriter, release, &new_event);
2170 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); 2174 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags());
2171 EXPECT_FALSE(kLeftAndAltFlag & result->flags()); 2175 EXPECT_FALSE(kLeftAndSearchFlag & result->flags());
2172 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); 2176 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags());
2173 } 2177 }
2174 #endif 2178 #endif
2175 } 2179 }
2176 2180
2177 TEST_F(EventRewriterAshTest, StickyKeyEventDispatchImpl) { 2181 TEST_F(EventRewriterAshTest, StickyKeyEventDispatchImpl) {
2178 // Test the actual key event dispatch implementation. 2182 // Test the actual key event dispatch implementation.
2179 ScopedVector<ui::Event> events; 2183 ScopedVector<ui::Event> events;
2180 2184
2181 SendActivateStickyKeyPattern(ui::VKEY_CONTROL); 2185 SendActivateStickyKeyPattern(ui::VKEY_CONTROL);
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
2465 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN)); 2469 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN));
2466 EXPECT_TRUE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN)); 2470 EXPECT_TRUE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN));
2467 2471
2468 // Turn off AltGr and Mod3. 2472 // Turn off AltGr and Mod3.
2469 sticky_keys_controller_->SetModifiersEnabled(false, false); 2473 sticky_keys_controller_->SetModifiersEnabled(false, false);
2470 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN)); 2474 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN));
2471 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN)); 2475 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN));
2472 } 2476 }
2473 2477
2474 } // namespace chromeos 2478 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698