1010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// found in the LICENSE file. 4010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// MSVC++ requires this to be set before any other includes to get M_PI. 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define _USE_MATH_DEFINES 71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include <cmath> 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 10010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 11010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "ui/events/event.h" 12010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "ui/events/gestures/motion_event_aura.h" 13010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 14010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)namespace { 15010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 16010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)ui::TouchEvent TouchWithType(ui::EventType type, int id) { 17010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) return ui::TouchEvent( 18010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) type, gfx::PointF(0, 0), id, base::TimeDelta::FromMilliseconds(0)); 19010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 20010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 21010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)ui::TouchEvent TouchWithPosition(ui::EventType type, 22010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) int id, 23010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) float x, 24010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) float y, 25f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) float raw_x, 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci float raw_y) { 27f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) ui::TouchEvent event(type, 28f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) gfx::PointF(x, y), 29f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 0, 30f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) id, 31f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) base::TimeDelta::FromMilliseconds(0), 32f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 0, 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 0, 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 0, 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 0); 36f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) event.set_root_location(gfx::PointF(raw_x, raw_y)); 37f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) return event; 38010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 39010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciui::TouchEvent TouchWithTapParams(ui::EventType type, 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci int id, 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci float radius_x, 431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci float radius_y, 441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci float rotation_angle, 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci float pressure) { 461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ui::TouchEvent event(type, 471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci gfx::PointF(1, 1), 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 0, 491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci id, 501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci base::TimeDelta::FromMilliseconds(0), 511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci radius_x, 521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci radius_y, 531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci rotation_angle, 541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci pressure); 551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci event.set_root_location(gfx::PointF(1, 1)); 561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return event; 571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 59010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)ui::TouchEvent TouchWithTime(ui::EventType type, int id, int ms) { 60010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) return ui::TouchEvent( 61010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) type, gfx::PointF(0, 0), id, base::TimeDelta::FromMilliseconds(ms)); 62010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 63010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 64010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)base::TimeTicks MsToTicks(int ms) { 65010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) return base::TimeTicks() + base::TimeDelta::FromMilliseconds(ms); 66010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 67010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 68010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} // namespace 69010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 70010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)namespace ui { 71010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 72010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)TEST(MotionEventAuraTest, PointerCountAndIds) { 73010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // Test that |PointerCount()| returns the correct number of pointers, and ids 74010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // are assigned correctly. 75010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) int ids[] = {4, 6, 1}; 76010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 77010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) MotionEventAura event; 78010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(0U, event.GetPointerCount()); 79010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 80010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) TouchEvent press0 = TouchWithType(ET_TOUCH_PRESSED, ids[0]); 81010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.OnTouch(press0); 82010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(1U, event.GetPointerCount()); 83010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 84010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(ids[0], event.GetPointerId(0)); 85010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 86010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) TouchEvent press1 = TouchWithType(ET_TOUCH_PRESSED, ids[1]); 87010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.OnTouch(press1); 88010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(2U, event.GetPointerCount()); 89010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 90010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(ids[0], event.GetPointerId(0)); 91010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(ids[1], event.GetPointerId(1)); 92010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 93010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) TouchEvent press2 = TouchWithType(ET_TOUCH_PRESSED, ids[2]); 94010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.OnTouch(press2); 95010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(3U, event.GetPointerCount()); 96010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 97010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(ids[0], event.GetPointerId(0)); 98010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(ids[1], event.GetPointerId(1)); 99010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(ids[2], event.GetPointerId(2)); 100010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 101010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) TouchEvent release1 = TouchWithType(ET_TOUCH_RELEASED, ids[1]); 102010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.OnTouch(release1); 103010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.CleanupRemovedTouchPoints(release1); 104010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(2U, event.GetPointerCount()); 105010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 106010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(ids[0], event.GetPointerId(0)); 107010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(ids[2], event.GetPointerId(1)); 108010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 109010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // Test cloning of pointer count and id information. 1101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // TODO(mustaq): Make a separate clone test 111010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) scoped_ptr<MotionEvent> clone = event.Clone(); 112010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(2U, clone->GetPointerCount()); 113010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(ids[0], clone->GetPointerId(0)); 114010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(ids[2], clone->GetPointerId(1)); 115010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 116010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) TouchEvent release0 = TouchWithType(ET_TOUCH_RELEASED, ids[0]); 117010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.OnTouch(release0); 118010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.CleanupRemovedTouchPoints(release0); 119010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(1U, event.GetPointerCount()); 120010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 121010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(ids[2], event.GetPointerId(0)); 122010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 123010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) TouchEvent release2 = TouchWithType(ET_TOUCH_RELEASED, ids[2]); 124010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.OnTouch(release2); 125010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.CleanupRemovedTouchPoints(release2); 126010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(0U, event.GetPointerCount()); 127010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 128010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 129010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)TEST(MotionEventAuraTest, GetActionIndexAfterRemoval) { 130010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // Test that |GetActionIndex()| returns the correct index when points have 131010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // been removed. 132010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) int ids[] = {4, 6, 9}; 133010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 134010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) MotionEventAura event; 135010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(0U, event.GetPointerCount()); 136010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 137010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) TouchEvent press0 = TouchWithType(ET_TOUCH_PRESSED, ids[0]); 138010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.OnTouch(press0); 139010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) TouchEvent press1 = TouchWithType(ET_TOUCH_PRESSED, ids[1]); 140010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.OnTouch(press1); 141010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) TouchEvent press2 = TouchWithType(ET_TOUCH_PRESSED, ids[2]); 142010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.OnTouch(press2); 143010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(3U, event.GetPointerCount()); 144010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 145010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) TouchEvent release1 = TouchWithType(ET_TOUCH_RELEASED, ids[1]); 146010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.OnTouch(release1); 147010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.CleanupRemovedTouchPoints(release1); 148010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(1, event.GetActionIndex()); 149010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(2U, event.GetPointerCount()); 150010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 151010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) TouchEvent release2 = TouchWithType(ET_TOUCH_RELEASED, ids[0]); 152010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.OnTouch(release2); 153010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.CleanupRemovedTouchPoints(release2); 154010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(0, event.GetActionIndex()); 155010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(1U, event.GetPointerCount()); 156010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 157010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) TouchEvent release0 = TouchWithType(ET_TOUCH_RELEASED, ids[2]); 158010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.OnTouch(release0); 159010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.CleanupRemovedTouchPoints(release0); 160010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(0U, event.GetPointerCount()); 161010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 162010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 163010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)TEST(MotionEventAuraTest, PointerLocations) { 164010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // Test that location information is stored correctly. 165010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) MotionEventAura event; 166010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 167f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const float kRawOffsetX = 11.1f; 168f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) const float kRawOffsetY = 13.3f; 169f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 170010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) int ids[] = {15, 13}; 171010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) float x; 172010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) float y; 173f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) float raw_x; 174f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) float raw_y; 175010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 176010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) x = 14.4f; 177010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) y = 17.3f; 178f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) raw_x = x + kRawOffsetX; 179f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) raw_y = y + kRawOffsetY; 180f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) TouchEvent press0 = 1811320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci TouchWithPosition(ET_TOUCH_PRESSED, ids[0], x, y, raw_x, raw_y); 182010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.OnTouch(press0); 183010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 184010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(1U, event.GetPointerCount()); 185010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_FLOAT_EQ(x, event.GetX(0)); 186010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_FLOAT_EQ(y, event.GetY(0)); 187f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_FLOAT_EQ(raw_x, event.GetRawX(0)); 188f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_FLOAT_EQ(raw_y, event.GetRawY(0)); 189010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 190010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) x = 17.8f; 191010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) y = 12.1f; 192f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) raw_x = x + kRawOffsetX; 193f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) raw_y = y + kRawOffsetY; 194f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) TouchEvent press1 = 1951320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci TouchWithPosition(ET_TOUCH_PRESSED, ids[1], x, y, raw_x, raw_y); 196010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.OnTouch(press1); 197010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 198010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(2U, event.GetPointerCount()); 199010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_FLOAT_EQ(x, event.GetX(1)); 200010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_FLOAT_EQ(y, event.GetY(1)); 201f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_FLOAT_EQ(raw_x, event.GetRawX(1)); 202f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_FLOAT_EQ(raw_y, event.GetRawY(1)); 203010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 204010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // Test cloning of pointer location information. 205010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) scoped_ptr<MotionEvent> clone = event.Clone(); 2061320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci { 2071320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const MotionEventAura* raw_clone_aura = 2081320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci static_cast<MotionEventAura*>(clone.get()); 2091320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(2U, raw_clone_aura->GetPointerCount()); 2101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_FLOAT_EQ(x, raw_clone_aura->GetX(1)); 2111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_FLOAT_EQ(y, raw_clone_aura->GetY(1)); 2121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_FLOAT_EQ(raw_x, raw_clone_aura->GetRawX(1)); 2131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_FLOAT_EQ(raw_y, raw_clone_aura->GetRawY(1)); 2141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 215010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 216010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) x = 27.9f; 217010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) y = 22.3f; 218f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) raw_x = x + kRawOffsetX; 219f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) raw_y = y + kRawOffsetY; 220f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) TouchEvent move1 = 2211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci TouchWithPosition(ET_TOUCH_MOVED, ids[1], x, y, raw_x, raw_y); 222010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.OnTouch(move1); 223010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 224010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_FLOAT_EQ(x, event.GetX(1)); 225010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_FLOAT_EQ(y, event.GetY(1)); 226f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_FLOAT_EQ(raw_x, event.GetRawX(1)); 227f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_FLOAT_EQ(raw_y, event.GetRawY(1)); 228010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 229010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) x = 34.6f; 230010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) y = 23.8f; 231f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) raw_x = x + kRawOffsetX; 232f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) raw_y = y + kRawOffsetY; 233f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) TouchEvent move0 = 2341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci TouchWithPosition(ET_TOUCH_MOVED, ids[0], x, y, raw_x, raw_y); 235010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.OnTouch(move0); 236010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 237010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_FLOAT_EQ(x, event.GetX(0)); 238010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_FLOAT_EQ(y, event.GetY(0)); 239f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_FLOAT_EQ(raw_x, event.GetRawX(0)); 240f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EXPECT_FLOAT_EQ(raw_y, event.GetRawY(0)); 2411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 2421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 2431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciTEST(MotionEventAuraTest, TapParams) { 2441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Test that touch params are stored correctly. 2451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci MotionEventAura event; 2461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 2471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci int ids[] = {15, 13}; 2481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 2491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci float radius_x; 2501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci float radius_y; 2511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci float rotation_angle; 2521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci float pressure; 2531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 2541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci radius_x = 123.45f; 2551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci radius_y = 67.89f; 2561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci rotation_angle = 23.f; 2571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci pressure = 0.123f; 2581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci TouchEvent press0 = TouchWithTapParams( 2591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ET_TOUCH_PRESSED, ids[0], radius_x, radius_y, rotation_angle, pressure); 2601320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci event.OnTouch(press0); 2611320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 2621320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(1U, event.GetPointerCount()); 2631320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_FLOAT_EQ(radius_x, event.GetTouchMajor(0) / 2); 2641320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_FLOAT_EQ(radius_y, event.GetTouchMinor(0) / 2); 2651320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_FLOAT_EQ(rotation_angle, event.GetOrientation(0) * 180 / M_PI + 90); 2661320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_FLOAT_EQ(pressure, event.GetPressure(0)); 2671320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 2681320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci radius_x = 67.89f; 2691320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci radius_y = 123.45f; 2701320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci rotation_angle = 46.f; 2711320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci pressure = 0.456f; 2721320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci TouchEvent press1 = TouchWithTapParams( 2731320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ET_TOUCH_PRESSED, ids[1], radius_x, radius_y, rotation_angle, pressure); 2741320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci event.OnTouch(press1); 2751320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 2761320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(2U, event.GetPointerCount()); 2771320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_FLOAT_EQ(radius_y, event.GetTouchMajor(1) / 2); 2781320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_FLOAT_EQ(radius_x, event.GetTouchMinor(1) / 2); 2791320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_FLOAT_EQ(rotation_angle, event.GetOrientation(1) * 180 / M_PI); 2801320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_FLOAT_EQ(pressure, event.GetPressure(1)); 2811320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 2821320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Test cloning of tap params 2831320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci scoped_ptr<MotionEvent> clone = event.Clone(); 2841320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci { 2851320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const MotionEventAura* raw_clone_aura = 2861320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci static_cast<MotionEventAura*>(clone.get()); 2871320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(2U, raw_clone_aura->GetPointerCount()); 2881320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_FLOAT_EQ(radius_y, raw_clone_aura->GetTouchMajor(1) / 2); 2891320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_FLOAT_EQ(radius_x, raw_clone_aura->GetTouchMinor(1) / 2); 2901320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_FLOAT_EQ( 2911320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci rotation_angle, raw_clone_aura->GetOrientation(1) * 180 / M_PI); 2921320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_FLOAT_EQ(pressure, raw_clone_aura->GetPressure(1)); 2931320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 2941320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 2951320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci radius_x = 76.98f; 2961320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci radius_y = 321.54f; 2971320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci rotation_angle = 64.f; 2981320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci pressure = 0.654f; 2991320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci TouchEvent move1 = TouchWithTapParams( 3001320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ET_TOUCH_MOVED, ids[1], radius_x, radius_y, rotation_angle, pressure); 3011320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci event.OnTouch(move1); 3021320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 3031320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(2U, event.GetPointerCount()); 3041320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_FLOAT_EQ(radius_y, event.GetTouchMajor(1) / 2); 3051320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_FLOAT_EQ(radius_x, event.GetTouchMinor(1) / 2); 3061320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_FLOAT_EQ(rotation_angle, event.GetOrientation(1) * 180 / M_PI); 3071320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_FLOAT_EQ(pressure, event.GetPressure(1)); 308010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 309010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 310010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)TEST(MotionEventAuraTest, Timestamps) { 311010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // Test that timestamp information is stored and converted correctly. 312010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) MotionEventAura event; 313010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) int ids[] = {7, 13}; 314010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) int times_in_ms[] = {59436, 60263, 82175}; 315010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 316010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) TouchEvent press0 = TouchWithTime( 317010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) ui::ET_TOUCH_PRESSED, ids[0], times_in_ms[0]); 318010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.OnTouch(press0); 319010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(MsToTicks(times_in_ms[0]), event.GetEventTime()); 320010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 321010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) TouchEvent press1 = TouchWithTime( 322010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) ui::ET_TOUCH_PRESSED, ids[1], times_in_ms[1]); 323010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.OnTouch(press1); 324010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(MsToTicks(times_in_ms[1]), event.GetEventTime()); 325010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 326010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) TouchEvent move0 = TouchWithTime( 327010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) ui::ET_TOUCH_MOVED, ids[0], times_in_ms[2]); 328010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.OnTouch(move0); 329010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(MsToTicks(times_in_ms[2]), event.GetEventTime()); 330010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 331010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // Test cloning of timestamp information. 332010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) scoped_ptr<MotionEvent> clone = event.Clone(); 333010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(MsToTicks(times_in_ms[2]), clone->GetEventTime()); 334010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 335010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 336010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)TEST(MotionEventAuraTest, CachedAction) { 337010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // Test that the cached action and cached action index are correct. 338010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) int ids[] = {4, 6}; 339010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) MotionEventAura event; 340010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 341010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) TouchEvent press0 = TouchWithType(ET_TOUCH_PRESSED, ids[0]); 342010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.OnTouch(press0); 343010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(MotionEvent::ACTION_DOWN, event.GetAction()); 344010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(1U, event.GetPointerCount()); 345010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 346010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) TouchEvent press1 = TouchWithType(ET_TOUCH_PRESSED, ids[1]); 347010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.OnTouch(press1); 348010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(MotionEvent::ACTION_POINTER_DOWN, event.GetAction()); 349010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(1, event.GetActionIndex()); 350010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(2U, event.GetPointerCount()); 351010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 352010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) // Test cloning of CachedAction information. 353010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) scoped_ptr<MotionEvent> clone = event.Clone(); 354010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(MotionEvent::ACTION_POINTER_DOWN, clone->GetAction()); 355010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(1, clone->GetActionIndex()); 356010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 357010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) TouchEvent move0 = TouchWithType(ET_TOUCH_MOVED, ids[0]); 358010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.OnTouch(move0); 359010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(MotionEvent::ACTION_MOVE, event.GetAction()); 360010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(2U, event.GetPointerCount()); 361010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 362010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) TouchEvent release0 = TouchWithType(ET_TOUCH_RELEASED, ids[0]); 363010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.OnTouch(release0); 364010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(MotionEvent::ACTION_POINTER_UP, event.GetAction()); 365010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(2U, event.GetPointerCount()); 366010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.CleanupRemovedTouchPoints(release0); 367010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(1U, event.GetPointerCount()); 368010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 369010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) TouchEvent release1 = TouchWithType(ET_TOUCH_RELEASED, ids[1]); 370010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.OnTouch(release1); 371010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(MotionEvent::ACTION_UP, event.GetAction()); 372010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(1U, event.GetPointerCount()); 373010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.CleanupRemovedTouchPoints(release1); 374010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(0U, event.GetPointerCount()); 375010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 376010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 377010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)TEST(MotionEventAuraTest, Cancel) { 378010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) int ids[] = {4, 6}; 379010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) MotionEventAura event; 380010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 381010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) TouchEvent press0 = TouchWithType(ET_TOUCH_PRESSED, ids[0]); 382010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.OnTouch(press0); 383010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(MotionEvent::ACTION_DOWN, event.GetAction()); 384010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(1U, event.GetPointerCount()); 385010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 386010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) TouchEvent press1 = TouchWithType(ET_TOUCH_PRESSED, ids[1]); 387010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) event.OnTouch(press1); 388010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(MotionEvent::ACTION_POINTER_DOWN, event.GetAction()); 389010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(1, event.GetActionIndex()); 390010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(2U, event.GetPointerCount()); 391010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 392010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) scoped_ptr<MotionEvent> cancel = event.Cancel(); 393010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(MotionEvent::ACTION_CANCEL, cancel->GetAction()); 394010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) EXPECT_EQ(2U, static_cast<MotionEventAura*>(cancel.get())->GetPointerCount()); 395010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 396010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 39703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)TEST(MotionEventAuraTest, ToolType) { 39803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) MotionEventAura event; 39903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 40003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) // For now, all pointers have an unknown tool type. 40103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) // TODO(jdduke): Expand this test when ui::TouchEvent identifies the source 40203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) // touch type, crbug.com/404128. 40303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) event.OnTouch(TouchWithType(ET_TOUCH_PRESSED, 7)); 40403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) ASSERT_EQ(1U, event.GetPointerCount()); 40503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_EQ(MotionEvent::TOOL_TYPE_UNKNOWN, event.GetToolType(0)); 40603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)} 40703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 4081320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciTEST(MotionEventAuraTest, Flags) { 4091320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci int ids[] = {7, 11}; 4101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci MotionEventAura event; 4111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 4121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci TouchEvent press0 = TouchWithType(ET_TOUCH_PRESSED, ids[0]); 4131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci press0.set_flags(EF_CONTROL_DOWN); 4141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci event.OnTouch(press0); 4151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(EF_CONTROL_DOWN, event.GetFlags()); 4161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 4171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci TouchEvent press1 = TouchWithType(ET_TOUCH_PRESSED, ids[1]); 4181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci press1.set_flags(EF_CONTROL_DOWN | EF_CAPS_LOCK_DOWN); 4191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci event.OnTouch(press1); 4201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EXPECT_EQ(EF_CONTROL_DOWN | EF_CAPS_LOCK_DOWN, event.GetFlags()); 4211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 4221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 423010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} // namespace ui 424