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

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

Issue 2786693002: Add PointerDetails to ui::MouseEvent's constructors (Closed)
Patch Set: mouse event constructor Created 3 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 <vector> 5 #include <vector>
6 6
7 #include "ash/common/wm/window_state.h" 7 #include "ash/common/wm/window_state.h"
8 #include "ash/shell.h" 8 #include "ash/shell.h"
9 #include "ash/sticky_keys/sticky_keys_controller.h" 9 #include "ash/sticky_keys/sticky_keys_controller.h"
10 #include "ash/sticky_keys/sticky_keys_overlay.h" 10 #include "ash/sticky_keys/sticky_keys_overlay.h"
(...skipping 2053 matching lines...) Expand 10 before | Expand all | Expand 10 after
2064 #if defined(USE_X11) 2064 #if defined(USE_X11)
2065 std::vector<int> device_list; 2065 std::vector<int> device_list;
2066 device_list.push_back(10); 2066 device_list.push_back(10);
2067 device_list.push_back(11); 2067 device_list.push_back(11);
2068 ui::TouchFactory::GetInstance()->SetPointerDeviceForTest(device_list); 2068 ui::TouchFactory::GetInstance()->SetPointerDeviceForTest(device_list);
2069 #endif 2069 #endif
2070 const int kLeftAndAltFlag = ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN; 2070 const int kLeftAndAltFlag = ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN;
2071 2071
2072 // Test Alt + Left click. 2072 // Test Alt + Left click.
2073 { 2073 {
2074 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), 2074 ui::MouseEvent press(
2075 ui::EventTimeForNow(), kLeftAndAltFlag, 2075 ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), ui::EventTimeForNow(),
2076 ui::EF_LEFT_MOUSE_BUTTON); 2076 kLeftAndAltFlag, ui::EF_LEFT_MOUSE_BUTTON,
2077 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
2077 ui::EventTestApi test_press(&press); 2078 ui::EventTestApi test_press(&press);
2078 test_press.set_source_device_id(10); 2079 test_press.set_source_device_id(10);
2079 // Sanity check. 2080 // Sanity check.
2080 EXPECT_EQ(ui::ET_MOUSE_PRESSED, press.type()); 2081 EXPECT_EQ(ui::ET_MOUSE_PRESSED, press.type());
2081 EXPECT_EQ(kLeftAndAltFlag, press.flags()); 2082 EXPECT_EQ(kLeftAndAltFlag, press.flags());
2082 std::unique_ptr<ui::Event> new_event; 2083 std::unique_ptr<ui::Event> new_event;
2083 const ui::MouseEvent* result = RewriteMouseButtonEvent(press, &new_event); 2084 const ui::MouseEvent* result = RewriteMouseButtonEvent(press, &new_event);
2084 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); 2085 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags());
2085 EXPECT_FALSE(kLeftAndAltFlag & result->flags()); 2086 EXPECT_FALSE(kLeftAndAltFlag & result->flags());
2086 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); 2087 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags());
2087 } 2088 }
2088 { 2089 {
2089 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(), 2090 ui::MouseEvent release(
2090 ui::EventTimeForNow(), kLeftAndAltFlag, 2091 ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(),
2091 ui::EF_LEFT_MOUSE_BUTTON); 2092 ui::EventTimeForNow(), kLeftAndAltFlag, ui::EF_LEFT_MOUSE_BUTTON,
2093 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
2092 ui::EventTestApi test_release(&release); 2094 ui::EventTestApi test_release(&release);
2093 test_release.set_source_device_id(10); 2095 test_release.set_source_device_id(10);
2094 std::unique_ptr<ui::Event> new_event; 2096 std::unique_ptr<ui::Event> new_event;
2095 const ui::MouseEvent* result = RewriteMouseButtonEvent(release, &new_event); 2097 const ui::MouseEvent* result = RewriteMouseButtonEvent(release, &new_event);
2096 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); 2098 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags());
2097 EXPECT_FALSE(kLeftAndAltFlag & result->flags()); 2099 EXPECT_FALSE(kLeftAndAltFlag & result->flags());
2098 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); 2100 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags());
2099 } 2101 }
2100 #if defined(USE_X11) 2102 #if defined(USE_X11)
2101 // Test Alt + Left click, using XI2 native events. 2103 // Test Alt + Left click, using XI2 native events.
(...skipping 19 matching lines...) Expand all
2121 std::unique_ptr<ui::Event> new_event; 2123 std::unique_ptr<ui::Event> new_event;
2122 const ui::MouseEvent* result = RewriteMouseButtonEvent(release, &new_event); 2124 const ui::MouseEvent* result = RewriteMouseButtonEvent(release, &new_event);
2123 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); 2125 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags());
2124 EXPECT_FALSE(kLeftAndAltFlag & result->flags()); 2126 EXPECT_FALSE(kLeftAndAltFlag & result->flags());
2125 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); 2127 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags());
2126 } 2128 }
2127 #endif 2129 #endif
2128 2130
2129 // No ALT in frst click. 2131 // No ALT in frst click.
2130 { 2132 {
2131 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), 2133 ui::MouseEvent press(
2132 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, 2134 ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), ui::EventTimeForNow(),
2133 ui::EF_LEFT_MOUSE_BUTTON); 2135 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON,
2136 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
2134 ui::EventTestApi test_press(&press); 2137 ui::EventTestApi test_press(&press);
2135 test_press.set_source_device_id(10); 2138 test_press.set_source_device_id(10);
2136 std::unique_ptr<ui::Event> new_event; 2139 std::unique_ptr<ui::Event> new_event;
2137 const ui::MouseEvent* result = RewriteMouseButtonEvent(press, &new_event); 2140 const ui::MouseEvent* result = RewriteMouseButtonEvent(press, &new_event);
2138 EXPECT_TRUE(ui::EF_LEFT_MOUSE_BUTTON & result->flags()); 2141 EXPECT_TRUE(ui::EF_LEFT_MOUSE_BUTTON & result->flags());
2139 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags()); 2142 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags());
2140 } 2143 }
2141 { 2144 {
2142 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(), 2145 ui::MouseEvent release(
2143 ui::EventTimeForNow(), kLeftAndAltFlag, 2146 ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(),
2144 ui::EF_LEFT_MOUSE_BUTTON); 2147 ui::EventTimeForNow(), kLeftAndAltFlag, ui::EF_LEFT_MOUSE_BUTTON,
2148 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
2145 ui::EventTestApi test_release(&release); 2149 ui::EventTestApi test_release(&release);
2146 test_release.set_source_device_id(10); 2150 test_release.set_source_device_id(10);
2147 std::unique_ptr<ui::Event> new_event; 2151 std::unique_ptr<ui::Event> new_event;
2148 const ui::MouseEvent* result = RewriteMouseButtonEvent(release, &new_event); 2152 const ui::MouseEvent* result = RewriteMouseButtonEvent(release, &new_event);
2149 EXPECT_TRUE((ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN) & result->flags()); 2153 EXPECT_TRUE((ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN) & result->flags());
2150 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags()); 2154 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags());
2151 } 2155 }
2152 #if defined(USE_X11) 2156 #if defined(USE_X11)
2153 // No ALT in frst click, using XI2 native events. 2157 // No ALT in frst click, using XI2 native events.
2154 { 2158 {
(...skipping 13 matching lines...) Expand all
2168 ui::MouseEvent release(xev); 2172 ui::MouseEvent release(xev);
2169 std::unique_ptr<ui::Event> new_event; 2173 std::unique_ptr<ui::Event> new_event;
2170 const ui::MouseEvent* result = RewriteMouseButtonEvent(release, &new_event); 2174 const ui::MouseEvent* result = RewriteMouseButtonEvent(release, &new_event);
2171 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());
2172 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags()); 2176 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags());
2173 } 2177 }
2174 #endif 2178 #endif
2175 2179
2176 // ALT on different device. 2180 // ALT on different device.
2177 { 2181 {
2178 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), 2182 ui::MouseEvent press(
2179 ui::EventTimeForNow(), kLeftAndAltFlag, 2183 ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(), ui::EventTimeForNow(),
2180 ui::EF_LEFT_MOUSE_BUTTON); 2184 kLeftAndAltFlag, ui::EF_LEFT_MOUSE_BUTTON,
2185 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
2181 ui::EventTestApi test_press(&press); 2186 ui::EventTestApi test_press(&press);
2182 test_press.set_source_device_id(11); 2187 test_press.set_source_device_id(11);
2183 std::unique_ptr<ui::Event> new_event; 2188 std::unique_ptr<ui::Event> new_event;
2184 const ui::MouseEvent* result = RewriteMouseButtonEvent(press, &new_event); 2189 const ui::MouseEvent* result = RewriteMouseButtonEvent(press, &new_event);
2185 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); 2190 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags());
2186 EXPECT_FALSE(kLeftAndAltFlag & result->flags()); 2191 EXPECT_FALSE(kLeftAndAltFlag & result->flags());
2187 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); 2192 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags());
2188 } 2193 }
2189 { 2194 {
2190 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(), 2195 ui::MouseEvent release(
2191 ui::EventTimeForNow(), kLeftAndAltFlag, 2196 ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(),
2192 ui::EF_LEFT_MOUSE_BUTTON); 2197 ui::EventTimeForNow(), kLeftAndAltFlag, ui::EF_LEFT_MOUSE_BUTTON,
2198 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
2193 ui::EventTestApi test_release(&release); 2199 ui::EventTestApi test_release(&release);
2194 test_release.set_source_device_id(10); 2200 test_release.set_source_device_id(10);
2195 std::unique_ptr<ui::Event> new_event; 2201 std::unique_ptr<ui::Event> new_event;
2196 const ui::MouseEvent* result = RewriteMouseButtonEvent(release, &new_event); 2202 const ui::MouseEvent* result = RewriteMouseButtonEvent(release, &new_event);
2197 EXPECT_TRUE((ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN) & result->flags()); 2203 EXPECT_TRUE((ui::EF_LEFT_MOUSE_BUTTON | ui::EF_ALT_DOWN) & result->flags());
2198 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags()); 2204 EXPECT_EQ(ui::EF_LEFT_MOUSE_BUTTON, result->changed_button_flags());
2199 } 2205 }
2200 { 2206 {
2201 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(), 2207 ui::MouseEvent release(
2202 ui::EventTimeForNow(), kLeftAndAltFlag, 2208 ui::ET_MOUSE_RELEASED, gfx::Point(), gfx::Point(),
2203 ui::EF_LEFT_MOUSE_BUTTON); 2209 ui::EventTimeForNow(), kLeftAndAltFlag, ui::EF_LEFT_MOUSE_BUTTON,
2210 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
2204 ui::EventTestApi test_release(&release); 2211 ui::EventTestApi test_release(&release);
2205 test_release.set_source_device_id(11); 2212 test_release.set_source_device_id(11);
2206 std::unique_ptr<ui::Event> new_event; 2213 std::unique_ptr<ui::Event> new_event;
2207 const ui::MouseEvent* result = RewriteMouseButtonEvent(release, &new_event); 2214 const ui::MouseEvent* result = RewriteMouseButtonEvent(release, &new_event);
2208 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags()); 2215 EXPECT_TRUE(ui::EF_RIGHT_MOUSE_BUTTON & result->flags());
2209 EXPECT_FALSE(kLeftAndAltFlag & result->flags()); 2216 EXPECT_FALSE(kLeftAndAltFlag & result->flags());
2210 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags()); 2217 EXPECT_EQ(ui::EF_RIGHT_MOUSE_BUTTON, result->changed_button_flags());
2211 } 2218 }
2212 #if defined(USE_X11) 2219 #if defined(USE_X11)
2213 // ALT on different device, using XI2 native events. 2220 // ALT on different device, using XI2 native events.
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
2290 2297
2291 TEST_F(EventRewriterAshTest, MouseEventDispatchImpl) { 2298 TEST_F(EventRewriterAshTest, MouseEventDispatchImpl) {
2292 std::vector<std::unique_ptr<ui::Event>> events; 2299 std::vector<std::unique_ptr<ui::Event>> events;
2293 2300
2294 SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT, 2301 SendActivateStickyKeyPattern(ui::VKEY_CONTROL, ui::DomCode::CONTROL_LEFT,
2295 ui::DomKey::CONTROL); 2302 ui::DomKey::CONTROL);
2296 PopEvents(&events); 2303 PopEvents(&events);
2297 2304
2298 // Test mouse press event is correctly modified. 2305 // Test mouse press event is correctly modified.
2299 gfx::Point location(0, 0); 2306 gfx::Point location(0, 0);
2300 ui::MouseEvent press(ui::ET_MOUSE_PRESSED, location, location, 2307 ui::MouseEvent press(
2301 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, 2308 ui::ET_MOUSE_PRESSED, location, location, ui::EventTimeForNow(),
2302 ui::EF_LEFT_MOUSE_BUTTON); 2309 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON,
2310 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
2303 ui::EventDispatchDetails details = Send(&press); 2311 ui::EventDispatchDetails details = Send(&press);
2304 ASSERT_FALSE(details.dispatcher_destroyed); 2312 ASSERT_FALSE(details.dispatcher_destroyed);
2305 PopEvents(&events); 2313 PopEvents(&events);
2306 EXPECT_EQ(1u, events.size()); 2314 EXPECT_EQ(1u, events.size());
2307 EXPECT_EQ(ui::ET_MOUSE_PRESSED, events[0]->type()); 2315 EXPECT_EQ(ui::ET_MOUSE_PRESSED, events[0]->type());
2308 EXPECT_TRUE(events[0]->flags() & ui::EF_CONTROL_DOWN); 2316 EXPECT_TRUE(events[0]->flags() & ui::EF_CONTROL_DOWN);
2309 2317
2310 // Test mouse release event is correctly modified and modifier release 2318 // Test mouse release event is correctly modified and modifier release
2311 // event is sent. The mouse event should have the correct DIP location. 2319 // event is sent. The mouse event should have the correct DIP location.
2312 ui::MouseEvent release(ui::ET_MOUSE_RELEASED, location, location, 2320 ui::MouseEvent release(
2313 ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON, 2321 ui::ET_MOUSE_RELEASED, location, location, ui::EventTimeForNow(),
2314 ui::EF_LEFT_MOUSE_BUTTON); 2322 ui::EF_LEFT_MOUSE_BUTTON, ui::EF_LEFT_MOUSE_BUTTON,
2323 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE));
2315 details = Send(&release); 2324 details = Send(&release);
2316 ASSERT_FALSE(details.dispatcher_destroyed); 2325 ASSERT_FALSE(details.dispatcher_destroyed);
2317 PopEvents(&events); 2326 PopEvents(&events);
2318 EXPECT_EQ(2u, events.size()); 2327 EXPECT_EQ(2u, events.size());
2319 EXPECT_EQ(ui::ET_MOUSE_RELEASED, events[0]->type()); 2328 EXPECT_EQ(ui::ET_MOUSE_RELEASED, events[0]->type());
2320 EXPECT_TRUE(events[0]->flags() & ui::EF_CONTROL_DOWN); 2329 EXPECT_TRUE(events[0]->flags() & ui::EF_CONTROL_DOWN);
2321 EXPECT_EQ(ui::ET_KEY_RELEASED, events[1]->type()); 2330 EXPECT_EQ(ui::ET_KEY_RELEASED, events[1]->type());
2322 EXPECT_EQ(ui::VKEY_CONTROL, 2331 EXPECT_EQ(ui::VKEY_CONTROL,
2323 static_cast<ui::KeyEvent*>(events[1].get())->key_code()); 2332 static_cast<ui::KeyEvent*>(events[1].get())->key_code());
2324 } 2333 }
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
2599 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN)); 2608 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN));
2600 EXPECT_TRUE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN)); 2609 EXPECT_TRUE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN));
2601 2610
2602 // Turn off AltGr and Mod3. 2611 // Turn off AltGr and Mod3.
2603 sticky_keys_controller_->SetModifiersEnabled(false, false); 2612 sticky_keys_controller_->SetModifiersEnabled(false, false);
2604 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN)); 2613 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_ALTGR_DOWN));
2605 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN)); 2614 EXPECT_FALSE(overlay_->GetModifierVisible(ui::EF_MOD3_DOWN));
2606 } 2615 }
2607 2616
2608 } // namespace chromeos 2617 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698