Chromium Code Reviews| 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..d8d9a0d898be744d831c5b3a9f318ea67235005b 100644 |
| --- a/content/browser/renderer_host/input/motion_event_android_unittest.cc |
| +++ b/content/browser/renderer_host/input/motion_event_android_unittest.cc |
| @@ -31,76 +31,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(), |
| + NULL, |
| 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 +89,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, |
| + NULL, |
| + 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); |
| + EXPECT_EQ(event.ToString(), clone->ToString()); |
| } |
| 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(), |
| + NULL, |
| 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(), |
| + NULL, |
|
tdresser
2014/10/20 15:19:15
These (and other occurrences of NULL) should be nu
jdduke (slow)
2014/10/21 22:19:58
Done.
|
| 0, |
| kAndroidActionDown, |
| pointer_count, |
| @@ -228,20 +163,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)); |