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

Side by Side Diff: ui/events/x/events_x_unittest.cc

Issue 2648583003: Handle floating point coordinates from ozone to exosphere (Closed)
Patch Set: fixed wayland unittest Created 3 years, 11 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
« no previous file with comments | « ui/events/x/events_x.cc ('k') | ui/ozone/platform/wayland/wayland_pointer_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <X11/XKBlib.h> 5 #include <X11/XKBlib.h>
6 #include <X11/Xlib.h> 6 #include <X11/Xlib.h>
7 #include <X11/Xutil.h> 7 #include <X11/Xutil.h>
8 #include <X11/extensions/XInput2.h> 8 #include <X11/extensions/XInput2.h>
9 #include <stddef.h> 9 #include <stddef.h>
10 #include <stdint.h> 10 #include <stdint.h>
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 // Init touch begin with tracking id 5, touch id 0. 237 // Init touch begin with tracking id 5, touch id 0.
238 valuators.push_back(Valuator(DeviceDataManagerX11::DT_TOUCH_MAJOR, 20)); 238 valuators.push_back(Valuator(DeviceDataManagerX11::DT_TOUCH_MAJOR, 20));
239 valuators.push_back( 239 valuators.push_back(
240 Valuator(DeviceDataManagerX11::DT_TOUCH_ORIENTATION, 0.3f)); 240 Valuator(DeviceDataManagerX11::DT_TOUCH_ORIENTATION, 0.3f));
241 valuators.push_back(Valuator(DeviceDataManagerX11::DT_TOUCH_PRESSURE, 100)); 241 valuators.push_back(Valuator(DeviceDataManagerX11::DT_TOUCH_PRESSURE, 100));
242 ui::ScopedXI2Event scoped_xevent; 242 ui::ScopedXI2Event scoped_xevent;
243 scoped_xevent.InitTouchEvent( 243 scoped_xevent.InitTouchEvent(
244 0, XI_TouchBegin, 5, gfx::Point(10, 10), valuators); 244 0, XI_TouchBegin, 5, gfx::Point(10, 10), valuators);
245 EXPECT_EQ(ui::ET_TOUCH_PRESSED, ui::EventTypeFromNative(scoped_xevent)); 245 EXPECT_EQ(ui::ET_TOUCH_PRESSED, ui::EventTypeFromNative(scoped_xevent));
246 EXPECT_EQ("10,10", ui::EventLocationFromNative(scoped_xevent).ToString()); 246 EXPECT_EQ("10,10", ui::EventLocationFromNative(scoped_xevent).ToString());
247 EXPECT_EQ(ui::EventLocationFromNative(scoped_xevent),
248 gfx::ToFlooredPoint(ui::EventLocationFromNativeF(scoped_xevent)));
247 EXPECT_EQ(GetTouchId(scoped_xevent), 0); 249 EXPECT_EQ(GetTouchId(scoped_xevent), 0);
248 EXPECT_FLOAT_EQ(GetTouchAngle(scoped_xevent), 0.15f); 250 EXPECT_FLOAT_EQ(GetTouchAngle(scoped_xevent), 0.15f);
249 PointerDetails pointer_details = 251 PointerDetails pointer_details =
250 GetTouchPointerDetailsFromNative(scoped_xevent); 252 GetTouchPointerDetailsFromNative(scoped_xevent);
251 EXPECT_FLOAT_EQ(pointer_details.radius_x, 10.0f); 253 EXPECT_FLOAT_EQ(pointer_details.radius_x, 10.0f);
252 EXPECT_FLOAT_EQ(pointer_details.force, 0.1f); 254 EXPECT_FLOAT_EQ(pointer_details.force, 0.1f);
253 255
254 // Touch update, with new orientation info. 256 // Touch update, with new orientation info.
255 valuators.clear(); 257 valuators.clear();
256 valuators.push_back( 258 valuators.push_back(
257 Valuator(DeviceDataManagerX11::DT_TOUCH_ORIENTATION, 0.5f)); 259 Valuator(DeviceDataManagerX11::DT_TOUCH_ORIENTATION, 0.5f));
258 scoped_xevent.InitTouchEvent( 260 scoped_xevent.InitTouchEvent(
259 0, XI_TouchUpdate, 5, gfx::Point(20, 20), valuators); 261 0, XI_TouchUpdate, 5, gfx::Point(20, 20), valuators);
260 EXPECT_EQ(ui::ET_TOUCH_MOVED, ui::EventTypeFromNative(scoped_xevent)); 262 EXPECT_EQ(ui::ET_TOUCH_MOVED, ui::EventTypeFromNative(scoped_xevent));
261 EXPECT_EQ("20,20", ui::EventLocationFromNative(scoped_xevent).ToString()); 263 EXPECT_EQ("20,20", ui::EventLocationFromNative(scoped_xevent).ToString());
264 EXPECT_EQ(ui::EventLocationFromNative(scoped_xevent),
265 gfx::ToFlooredPoint(ui::EventLocationFromNativeF(scoped_xevent)));
262 EXPECT_EQ(GetTouchId(scoped_xevent), 0); 266 EXPECT_EQ(GetTouchId(scoped_xevent), 0);
263 EXPECT_FLOAT_EQ(GetTouchAngle(scoped_xevent), 0.25f); 267 EXPECT_FLOAT_EQ(GetTouchAngle(scoped_xevent), 0.25f);
264 pointer_details = GetTouchPointerDetailsFromNative(scoped_xevent); 268 pointer_details = GetTouchPointerDetailsFromNative(scoped_xevent);
265 EXPECT_FLOAT_EQ(pointer_details.radius_x, 10.0f); 269 EXPECT_FLOAT_EQ(pointer_details.radius_x, 10.0f);
266 EXPECT_FLOAT_EQ(pointer_details.force, 0.1f); 270 EXPECT_FLOAT_EQ(pointer_details.force, 0.1f);
267 271
268 // Another touch with tracking id 6, touch id 1. 272 // Another touch with tracking id 6, touch id 1.
269 valuators.clear(); 273 valuators.clear();
270 valuators.push_back(Valuator(DeviceDataManagerX11::DT_TOUCH_MAJOR, 100)); 274 valuators.push_back(Valuator(DeviceDataManagerX11::DT_TOUCH_MAJOR, 100));
271 valuators.push_back(Valuator( 275 valuators.push_back(Valuator(
272 DeviceDataManagerX11::DT_TOUCH_ORIENTATION, 0.9f)); 276 DeviceDataManagerX11::DT_TOUCH_ORIENTATION, 0.9f));
273 valuators.push_back(Valuator(DeviceDataManagerX11::DT_TOUCH_PRESSURE, 500)); 277 valuators.push_back(Valuator(DeviceDataManagerX11::DT_TOUCH_PRESSURE, 500));
274 scoped_xevent.InitTouchEvent( 278 scoped_xevent.InitTouchEvent(
275 0, XI_TouchBegin, 6, gfx::Point(200, 200), valuators); 279 0, XI_TouchBegin, 6, gfx::Point(200, 200), valuators);
276 EXPECT_EQ(ui::ET_TOUCH_PRESSED, ui::EventTypeFromNative(scoped_xevent)); 280 EXPECT_EQ(ui::ET_TOUCH_PRESSED, ui::EventTypeFromNative(scoped_xevent));
277 EXPECT_EQ("200,200", ui::EventLocationFromNative(scoped_xevent).ToString()); 281 EXPECT_EQ("200,200", ui::EventLocationFromNative(scoped_xevent).ToString());
282 EXPECT_EQ(ui::EventLocationFromNative(scoped_xevent),
283 gfx::ToFlooredPoint(ui::EventLocationFromNativeF(scoped_xevent)));
278 EXPECT_EQ(GetTouchId(scoped_xevent), 1); 284 EXPECT_EQ(GetTouchId(scoped_xevent), 1);
279 EXPECT_FLOAT_EQ(GetTouchAngle(scoped_xevent), 0.45f); 285 EXPECT_FLOAT_EQ(GetTouchAngle(scoped_xevent), 0.45f);
280 pointer_details = GetTouchPointerDetailsFromNative(scoped_xevent); 286 pointer_details = GetTouchPointerDetailsFromNative(scoped_xevent);
281 EXPECT_FLOAT_EQ(pointer_details.radius_x, 50.0f); 287 EXPECT_FLOAT_EQ(pointer_details.radius_x, 50.0f);
282 EXPECT_FLOAT_EQ(pointer_details.force, 0.5f); 288 EXPECT_FLOAT_EQ(pointer_details.force, 0.5f);
283 289
284 // Touch with tracking id 5 should have old radius/angle value and new pressue 290 // Touch with tracking id 5 should have old radius/angle value and new pressue
285 // value. 291 // value.
286 valuators.clear(); 292 valuators.clear();
287 valuators.push_back(Valuator(DeviceDataManagerX11::DT_TOUCH_PRESSURE, 50)); 293 valuators.push_back(Valuator(DeviceDataManagerX11::DT_TOUCH_PRESSURE, 50));
288 scoped_xevent.InitTouchEvent( 294 scoped_xevent.InitTouchEvent(
289 0, XI_TouchEnd, 5, gfx::Point(30, 30), valuators); 295 0, XI_TouchEnd, 5, gfx::Point(30, 30), valuators);
290 EXPECT_EQ(ui::ET_TOUCH_RELEASED, ui::EventTypeFromNative(scoped_xevent)); 296 EXPECT_EQ(ui::ET_TOUCH_RELEASED, ui::EventTypeFromNative(scoped_xevent));
291 EXPECT_EQ("30,30", ui::EventLocationFromNative(scoped_xevent).ToString()); 297 EXPECT_EQ("30,30", ui::EventLocationFromNative(scoped_xevent).ToString());
298 EXPECT_EQ(ui::EventLocationFromNative(scoped_xevent),
299 gfx::ToFlooredPoint(ui::EventLocationFromNativeF(scoped_xevent)));
292 EXPECT_EQ(GetTouchId(scoped_xevent), 0); 300 EXPECT_EQ(GetTouchId(scoped_xevent), 0);
293 EXPECT_FLOAT_EQ(GetTouchAngle(scoped_xevent), 0.25f); 301 EXPECT_FLOAT_EQ(GetTouchAngle(scoped_xevent), 0.25f);
294 pointer_details = GetTouchPointerDetailsFromNative(scoped_xevent); 302 pointer_details = GetTouchPointerDetailsFromNative(scoped_xevent);
295 EXPECT_FLOAT_EQ(pointer_details.radius_x, 10.0f); 303 EXPECT_FLOAT_EQ(pointer_details.radius_x, 10.0f);
296 EXPECT_FLOAT_EQ(pointer_details.force, 0.05f); 304 EXPECT_FLOAT_EQ(pointer_details.force, 0.05f);
297 305
298 // Touch with tracking id 6 should have old angle/pressure value and new 306 // Touch with tracking id 6 should have old angle/pressure value and new
299 // radius value. 307 // radius value.
300 valuators.clear(); 308 valuators.clear();
301 valuators.push_back(Valuator(DeviceDataManagerX11::DT_TOUCH_MAJOR, 50)); 309 valuators.push_back(Valuator(DeviceDataManagerX11::DT_TOUCH_MAJOR, 50));
302 scoped_xevent.InitTouchEvent( 310 scoped_xevent.InitTouchEvent(
303 0, XI_TouchEnd, 6, gfx::Point(200, 200), valuators); 311 0, XI_TouchEnd, 6, gfx::Point(200, 200), valuators);
304 EXPECT_EQ(ui::ET_TOUCH_RELEASED, ui::EventTypeFromNative(scoped_xevent)); 312 EXPECT_EQ(ui::ET_TOUCH_RELEASED, ui::EventTypeFromNative(scoped_xevent));
305 EXPECT_EQ("200,200", ui::EventLocationFromNative(scoped_xevent).ToString()); 313 EXPECT_EQ("200,200", ui::EventLocationFromNative(scoped_xevent).ToString());
314 EXPECT_EQ(ui::EventLocationFromNative(scoped_xevent),
315 gfx::ToFlooredPoint(ui::EventLocationFromNativeF(scoped_xevent)));
306 EXPECT_EQ(GetTouchId(scoped_xevent), 1); 316 EXPECT_EQ(GetTouchId(scoped_xevent), 1);
307 EXPECT_FLOAT_EQ(GetTouchAngle(scoped_xevent), 0.45f); 317 EXPECT_FLOAT_EQ(GetTouchAngle(scoped_xevent), 0.45f);
308 pointer_details = GetTouchPointerDetailsFromNative(scoped_xevent); 318 pointer_details = GetTouchPointerDetailsFromNative(scoped_xevent);
309 EXPECT_FLOAT_EQ(pointer_details.radius_x, 25.0f); 319 EXPECT_FLOAT_EQ(pointer_details.radius_x, 25.0f);
310 EXPECT_FLOAT_EQ(pointer_details.force, 0.5f); 320 EXPECT_FLOAT_EQ(pointer_details.force, 0.5f);
311 } 321 }
312 322
313 int GetTouchIdForTrackingId(uint32_t tracking_id) { 323 int GetTouchIdForTrackingId(uint32_t tracking_id) {
314 int slot = 0; 324 int slot = 0;
315 bool success = 325 bool success =
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 581
572 ResetTimestampRolloverCountersForTesting( 582 ResetTimestampRolloverCountersForTesting(
573 base::MakeUnique<MockTickClock>(0x100000005)); 583 base::MakeUnique<MockTickClock>(0x100000005));
574 584
575 event.xbutton.time = 0xFFFFFFFF; 585 event.xbutton.time = 0xFFFFFFFF;
576 EXPECT_EQ(base::TimeDelta::FromMilliseconds(0xFFFFFFFF).ToInternalValue(), 586 EXPECT_EQ(base::TimeDelta::FromMilliseconds(0xFFFFFFFF).ToInternalValue(),
577 ui::EventTimeFromNative(&event).ToInternalValue()); 587 ui::EventTimeFromNative(&event).ToInternalValue());
578 } 588 }
579 589
580 } // namespace ui 590 } // namespace ui
OLDNEW
« no previous file with comments | « ui/events/x/events_x.cc ('k') | ui/ozone/platform/wayland/wayland_pointer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698