| Index: content/browser/renderer_host/input/motion_event_android_unittest.cc
|
| diff --git a/content/browser/renderer_host/input/motion_event_android_unittest.cc b/content/browser/renderer_host/input/motion_event_android_unittest.cc
|
| index ced6c1ac9df977d11766523acf227ab899f7a032..4d9b822d89454ff583420cf3a0d8c58505255b09 100644
|
| --- a/content/browser/renderer_host/input/motion_event_android_unittest.cc
|
| +++ b/content/browser/renderer_host/input/motion_event_android_unittest.cc
|
| @@ -9,6 +9,7 @@
|
| #include "content/browser/renderer_host/input/motion_event_android.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "ui/events/event_constants.h"
|
| +#include "ui/events/test/motion_event_test_utils.h"
|
|
|
| using ui::MotionEvent;
|
|
|
| @@ -31,76 +32,54 @@ int kAndroidButtonPrimary = 1;
|
|
|
| } // namespace
|
|
|
| +// Note that these tests avoid creating a Java instance of the MotionEvent, as
|
| +// we're primarily testing caching behavior, and the code necessary to
|
| +// construct a Java-backed MotionEvent itself adds unnecessary complexity.
|
| TEST(MotionEventAndroidTest, Constructor) {
|
| int event_time_ms = 5;
|
| base::TimeTicks event_time =
|
| base::TimeTicks() + base::TimeDelta::FromMilliseconds(event_time_ms);
|
| - float x0 = 13.7f;
|
| - float y0 = -7.13f;
|
| - float x1 = -13.7f;
|
| - float y1 = 7.13f;
|
| - float raw_offset = 10.1f;
|
| - float touch_major0 = 5.3f;
|
| - float touch_major1 = 3.5f;
|
| - float touch_minor0 = 1.2f;
|
| - float touch_minor1 = 2.1f;
|
| - float orientation0 = 0.1f;
|
| - float orientation1 = -0.1f;
|
| - int p0 = 1;
|
| - int p1 = 2;
|
| + MotionEventAndroid::Pointer p0(
|
| + 1, 13.7f, -7.13f, 5.3f, 1.2f, 0.1f, kAndroidToolTypeFinger);
|
| + MotionEventAndroid::Pointer p1(
|
| + 2, -13.7f, 7.13f, 3.5f, 12.1f, -0.1f, kAndroidToolTypeFinger);
|
| + float raw_offset = -3.f;
|
| int pointer_count = 2;
|
| int history_size = 0;
|
| int action_index = -1;
|
| - base::android::ScopedJavaLocalRef<jobject> base_event_obj =
|
| - MotionEventAndroid::Obtain(
|
| - event_time, event_time, MotionEvent::ACTION_DOWN, x0, y0);
|
| - ASSERT_TRUE(base_event_obj.obj());
|
| -
|
| MotionEventAndroid event(kPixToDip,
|
| base::android::AttachCurrentThread(),
|
| - base_event_obj.obj(),
|
| + nullptr,
|
| event_time_ms,
|
| kAndroidActionDown,
|
| pointer_count,
|
| history_size,
|
| action_index,
|
| - x0,
|
| - y0,
|
| - x1,
|
| - y1,
|
| - p0,
|
| - p1,
|
| - touch_major0,
|
| - touch_major1,
|
| - touch_minor0,
|
| - touch_minor1,
|
| - orientation0,
|
| - orientation1,
|
| - x0 + raw_offset,
|
| - y0 - raw_offset,
|
| - kAndroidToolTypeFinger,
|
| - kAndroidToolTypeFinger,
|
| kAndroidButtonPrimary,
|
| - kAndroidAltKeyDown);
|
| + kAndroidAltKeyDown,
|
| + raw_offset,
|
| + -raw_offset,
|
| + p0,
|
| + p1);
|
|
|
| EXPECT_EQ(MotionEvent::ACTION_DOWN, event.GetAction());
|
| EXPECT_EQ(event_time, event.GetEventTime());
|
| - EXPECT_EQ(x0 * kPixToDip, event.GetX(0));
|
| - EXPECT_EQ(y0 * kPixToDip, event.GetY(0));
|
| - EXPECT_EQ(x1 * kPixToDip, event.GetX(1));
|
| - EXPECT_EQ(y1 * kPixToDip, event.GetY(1));
|
| - EXPECT_FLOAT_EQ((x0 + raw_offset) * kPixToDip, event.GetRawX(0));
|
| - EXPECT_FLOAT_EQ((y0 - raw_offset) * kPixToDip, event.GetRawY(0));
|
| - EXPECT_FLOAT_EQ((x1 + raw_offset) * kPixToDip, event.GetRawX(1));
|
| - EXPECT_FLOAT_EQ((y1 - raw_offset) * kPixToDip, event.GetRawY(1));
|
| - EXPECT_EQ(touch_major0 * kPixToDip, event.GetTouchMajor(0));
|
| - EXPECT_EQ(touch_major1 * kPixToDip, event.GetTouchMajor(1));
|
| - EXPECT_EQ(touch_minor0 * kPixToDip, event.GetTouchMinor(0));
|
| - EXPECT_EQ(touch_minor1 * kPixToDip, event.GetTouchMinor(1));
|
| - EXPECT_EQ(orientation0, event.GetOrientation(0));
|
| - EXPECT_EQ(orientation1, event.GetOrientation(1));
|
| - EXPECT_EQ(p0, event.GetPointerId(0));
|
| - EXPECT_EQ(p1, event.GetPointerId(1));
|
| + EXPECT_EQ(p0.pos_x_pixels * kPixToDip, event.GetX(0));
|
| + EXPECT_EQ(p0.pos_y_pixels * kPixToDip, event.GetY(0));
|
| + EXPECT_EQ(p1.pos_x_pixels * kPixToDip, event.GetX(1));
|
| + EXPECT_EQ(p1.pos_y_pixels * kPixToDip, event.GetY(1));
|
| + EXPECT_FLOAT_EQ((p0.pos_x_pixels + raw_offset) * kPixToDip, event.GetRawX(0));
|
| + EXPECT_FLOAT_EQ((p0.pos_y_pixels - raw_offset) * kPixToDip, event.GetRawY(0));
|
| + EXPECT_FLOAT_EQ((p1.pos_x_pixels + raw_offset) * kPixToDip, event.GetRawX(1));
|
| + EXPECT_FLOAT_EQ((p1.pos_y_pixels - raw_offset) * kPixToDip, event.GetRawY(1));
|
| + EXPECT_EQ(p0.touch_major_pixels * kPixToDip, event.GetTouchMajor(0));
|
| + EXPECT_EQ(p1.touch_major_pixels * kPixToDip, event.GetTouchMajor(1));
|
| + EXPECT_EQ(p0.touch_minor_pixels * kPixToDip, event.GetTouchMinor(0));
|
| + EXPECT_EQ(p1.touch_minor_pixels * kPixToDip, event.GetTouchMinor(1));
|
| + EXPECT_EQ(p0.orientation_rad, event.GetOrientation(0));
|
| + EXPECT_EQ(p1.orientation_rad, event.GetOrientation(1));
|
| + EXPECT_EQ(p0.id, event.GetPointerId(0));
|
| + EXPECT_EQ(p1.id, event.GetPointerId(1));
|
| EXPECT_EQ(MotionEvent::TOOL_TYPE_FINGER, event.GetToolType(0));
|
| EXPECT_EQ(MotionEvent::TOOL_TYPE_FINGER, event.GetToolType(1));
|
| EXPECT_EQ(MotionEvent::BUTTON_PRIMARY, event.GetButtonState());
|
| @@ -111,114 +90,71 @@ TEST(MotionEventAndroidTest, Constructor) {
|
| }
|
|
|
| TEST(MotionEventAndroidTest, Clone) {
|
| - int event_time_ms = 5;
|
| - base::TimeTicks event_time =
|
| - base::TimeTicks() + base::TimeDelta::FromMilliseconds(event_time_ms);
|
| - float x = 13.7f;
|
| - float y = -7.13f;
|
| - float touch_major = 5.3f;
|
| - float touch_minor = 3.5f;
|
| - float orientation = 0.2f;
|
| - int pointer_count = 1;
|
| - int pointer_id = 1;
|
| - base::android::ScopedJavaLocalRef<jobject> event_obj =
|
| - MotionEventAndroid::Obtain(
|
| - event_time, event_time, MotionEvent::ACTION_DOWN, x, y);
|
| - ASSERT_TRUE(event_obj.obj());
|
| -
|
| + const int pointer_count = 1;
|
| + MotionEventAndroid::Pointer p0(
|
| + 1, 13.7f, -7.13f, 5.3f, 1.2f, 0.1f, kAndroidToolTypeFinger);
|
| + MotionEventAndroid::Pointer p1(0, 0, 0, 0, 0, 0, 0);
|
| MotionEventAndroid event(kPixToDip,
|
| base::android::AttachCurrentThread(),
|
| - event_obj.obj(),
|
| - event_time_ms,
|
| + nullptr,
|
| + 0,
|
| kAndroidActionDown,
|
| pointer_count,
|
| 0,
|
| 0,
|
| - x,
|
| - y,
|
| 0,
|
| 0,
|
| - pointer_id,
|
| 0,
|
| - touch_major,
|
| - 0.f,
|
| - touch_minor,
|
| - 0.f,
|
| - orientation,
|
| - 0.f,
|
| - x,
|
| - y,
|
| 0,
|
| - 0,
|
| - 0,
|
| - 0);
|
| + p0,
|
| + p1);
|
|
|
| scoped_ptr<MotionEvent> clone = event.Clone();
|
| EXPECT_EQ(event, *clone);
|
| }
|
|
|
| TEST(MotionEventAndroidTest, Cancel) {
|
| - int event_time_ms = 5;
|
| - base::TimeTicks event_time =
|
| - base::TimeTicks() + base::TimeDelta::FromMilliseconds(event_time_ms);
|
| - int pointer_count = 1;
|
| - float x = 13.7f;
|
| - float y = -7.13f;
|
| - base::android::ScopedJavaLocalRef<jobject> event_obj =
|
| - MotionEventAndroid::Obtain(
|
| - event_time, event_time, MotionEvent::ACTION_DOWN, x, y);
|
| - ASSERT_TRUE(event_obj.obj());
|
| -
|
| + const int event_time_ms = 5;
|
| + const int pointer_count = 1;
|
| + MotionEventAndroid::Pointer p0(
|
| + 1, 13.7f, -7.13f, 5.3f, 1.2f, 0.1f, kAndroidToolTypeFinger);
|
| + MotionEventAndroid::Pointer p1(0, 0, 0, 0, 0, 0, 0);
|
| MotionEventAndroid event(kPixToDip,
|
| base::android::AttachCurrentThread(),
|
| - event_obj.obj(),
|
| + nullptr,
|
| event_time_ms,
|
| kAndroidActionDown,
|
| pointer_count,
|
| 0,
|
| 0,
|
| - x,
|
| - y,
|
| - 0,
|
| 0,
|
| 0,
|
| 0,
|
| - 0.f,
|
| - 0.f,
|
| - 0.f,
|
| - 0.f,
|
| - 0.f,
|
| - 0.f,
|
| - x,
|
| - y,
|
| 0,
|
| - 0,
|
| - 0,
|
| - 0);
|
| + p0,
|
| + p1);
|
|
|
| scoped_ptr<MotionEvent> cancel_event = event.Cancel();
|
| EXPECT_EQ(MotionEvent::ACTION_CANCEL, cancel_event->GetAction());
|
| - EXPECT_EQ(event_time, cancel_event->GetEventTime());
|
| - EXPECT_EQ(x * kPixToDip, cancel_event->GetX(0));
|
| - EXPECT_EQ(y * kPixToDip, cancel_event->GetY(0));
|
| + EXPECT_EQ(
|
| + base::TimeTicks() + base::TimeDelta::FromMilliseconds(event_time_ms),
|
| + cancel_event->GetEventTime());
|
| + EXPECT_EQ(p0.pos_x_pixels * kPixToDip, cancel_event->GetX(0));
|
| + EXPECT_EQ(p0.pos_y_pixels * kPixToDip, cancel_event->GetY(0));
|
| EXPECT_EQ(static_cast<size_t>(pointer_count),
|
| cancel_event->GetPointerCount());
|
| EXPECT_EQ(0U, cancel_event->GetHistorySize());
|
| }
|
|
|
| TEST(MotionEventAndroidTest, InvalidOrientationsSanitized) {
|
| - base::TimeTicks event_time;
|
| int pointer_count = 2;
|
| float orientation0 = 1e10f;
|
| float orientation1 = std::numeric_limits<float>::quiet_NaN();
|
| - base::android::ScopedJavaLocalRef<jobject> base_event_obj =
|
| - MotionEventAndroid::Obtain(
|
| - event_time, event_time, MotionEvent::ACTION_DOWN, 0, 0);
|
| - ASSERT_TRUE(base_event_obj.obj());
|
| -
|
| + MotionEventAndroid::Pointer p0(0, 0, 0, 0, 0, orientation0, 0);
|
| + MotionEventAndroid::Pointer p1(1, 0, 0, 0, 0, orientation1, 0);
|
| MotionEventAndroid event(kPixToDip,
|
| base::android::AttachCurrentThread(),
|
| - base_event_obj.obj(),
|
| + nullptr,
|
| 0,
|
| kAndroidActionDown,
|
| pointer_count,
|
| @@ -228,20 +164,8 @@ TEST(MotionEventAndroidTest, InvalidOrientationsSanitized) {
|
| 0,
|
| 0,
|
| 0,
|
| - 0,
|
| - 0,
|
| - 0,
|
| - 0,
|
| - 0,
|
| - 0,
|
| - orientation0,
|
| - orientation1,
|
| - 0,
|
| - 0,
|
| - 0,
|
| - 0,
|
| - 0,
|
| - 0);
|
| + p0,
|
| + p1);
|
|
|
| EXPECT_EQ(0.f, event.GetOrientation(0));
|
| EXPECT_EQ(0.f, event.GetOrientation(1));
|
|
|