Home | History | Annotate | Download | only in gesture_detection
      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
      3 // found in the LICENSE file.
      4 
      5 #include "testing/gtest/include/gtest/gtest.h"
      6 #include "ui/events/event_constants.h"
      7 #include "ui/events/gesture_detection/motion_event_generic.h"
      8 
      9 namespace ui {
     10 
     11 TEST(MotionEventGenericTest, Basic) {
     12   base::TimeTicks event_time = base::TimeTicks::Now();
     13   MotionEventGeneric event(
     14       MotionEvent::ACTION_DOWN, event_time, PointerProperties());
     15   EXPECT_EQ(1U, event.GetPointerCount());
     16   EXPECT_EQ(0U, event.GetHistorySize());
     17   EXPECT_EQ(event_time, event.GetEventTime());
     18 
     19   event.PushPointer(PointerProperties(8.3f, 4.7f));
     20   ASSERT_EQ(2U, event.GetPointerCount());
     21   EXPECT_EQ(8.3f, event.GetX(1));
     22   EXPECT_EQ(4.7f, event.GetY(1));
     23 
     24   event.PushPointer(PointerProperties(2.3f, -3.7f));
     25   ASSERT_EQ(3U, event.GetPointerCount());
     26   EXPECT_EQ(2.3f, event.GetX(2));
     27   EXPECT_EQ(-3.7f, event.GetY(2));
     28 
     29   event.set_id(1);
     30   EXPECT_EQ(1, event.GetId());
     31 
     32   event.set_action(MotionEvent::ACTION_POINTER_DOWN);
     33   EXPECT_EQ(MotionEvent::ACTION_POINTER_DOWN, event.GetAction());
     34 
     35   event_time += base::TimeDelta::FromMilliseconds(5);
     36   event.set_event_time(event_time);
     37   EXPECT_EQ(event_time, event.GetEventTime());
     38 
     39   event.set_button_state(MotionEvent::BUTTON_PRIMARY);
     40   EXPECT_EQ(MotionEvent::BUTTON_PRIMARY, event.GetButtonState());
     41 
     42   event.set_flags(EF_ALT_DOWN | EF_SHIFT_DOWN);
     43   EXPECT_EQ(EF_ALT_DOWN | EF_SHIFT_DOWN, event.GetFlags());
     44 
     45   event.set_action_index(1);
     46   EXPECT_EQ(1, event.GetActionIndex());
     47 }
     48 
     49 TEST(MotionEventGenericTest, Clone) {
     50   MotionEventGeneric event(MotionEvent::ACTION_DOWN,
     51                            base::TimeTicks::Now(),
     52                            PointerProperties(8.3f, 4.7f));
     53   event.set_id(1);
     54   event.set_button_state(MotionEvent::BUTTON_PRIMARY);
     55 
     56   scoped_ptr<MotionEvent> clone = event.Clone();
     57   ASSERT_TRUE(clone);
     58   EXPECT_EQ(event, *clone);
     59 }
     60 
     61 TEST(MotionEventGenericTest, Cancel) {
     62   MotionEventGeneric event(MotionEvent::ACTION_UP,
     63                            base::TimeTicks::Now(),
     64                            PointerProperties(8.7f, 4.3f));
     65   event.set_id(2);
     66   event.set_button_state(MotionEvent::BUTTON_SECONDARY);
     67 
     68   scoped_ptr<MotionEvent> cancel = event.Cancel();
     69   event.set_action(MotionEvent::ACTION_CANCEL);
     70   ASSERT_TRUE(cancel);
     71   EXPECT_EQ(event, *cancel);
     72 }
     73 
     74 TEST(MotionEventGenericTest, FindPointerIndexOfId) {
     75   base::TimeTicks event_time = base::TimeTicks::Now();
     76   PointerProperties pointer;
     77   pointer.id = 0;
     78   MotionEventGeneric event0(MotionEvent::ACTION_DOWN, event_time, pointer);
     79   EXPECT_EQ(0, event0.FindPointerIndexOfId(0));
     80   EXPECT_EQ(-1, event0.FindPointerIndexOfId(1));
     81   EXPECT_EQ(-1, event0.FindPointerIndexOfId(-1));
     82 
     83   MotionEventGeneric event1(event0);
     84   pointer.id = 7;
     85   event1.PushPointer(pointer);
     86   EXPECT_EQ(0, event1.FindPointerIndexOfId(0));
     87   EXPECT_EQ(1, event1.FindPointerIndexOfId(7));
     88   EXPECT_EQ(-1, event1.FindPointerIndexOfId(6));
     89   EXPECT_EQ(-1, event1.FindPointerIndexOfId(1));
     90 
     91   MotionEventGeneric event2(event1);
     92   pointer.id = 3;
     93   event2.PushPointer(pointer);
     94   EXPECT_EQ(0, event2.FindPointerIndexOfId(0));
     95   EXPECT_EQ(1, event2.FindPointerIndexOfId(7));
     96   EXPECT_EQ(2, event2.FindPointerIndexOfId(3));
     97   EXPECT_EQ(-1, event2.FindPointerIndexOfId(1));
     98   EXPECT_EQ(-1, event2.FindPointerIndexOfId(2));
     99 }
    100 
    101 }  // namespace ui
    102