| Index: ui/aura/gestures/gesture_recognizer_unittest.cc
|
| diff --git a/ui/aura/gestures/gesture_recognizer_unittest.cc b/ui/aura/gestures/gesture_recognizer_unittest.cc
|
| index db1bd1507732ded8e703a2571928c5d9776498f3..29d3dcb4724d1c76d700fa27175a190896f9e22f 100644
|
| --- a/ui/aura/gestures/gesture_recognizer_unittest.cc
|
| +++ b/ui/aura/gestures/gesture_recognizer_unittest.cc
|
| @@ -716,6 +716,10 @@ TEST_F(GestureRecognizerTest, GestureEventScroll) {
|
| EXPECT_EQ(gfx::Point(1, 1).ToString(),
|
| delegate->scroll_begin_position().ToString());
|
|
|
| + // When scrolling with a single finger, the bounding box of the gesture should
|
| + // be empty, since it's a single point and the radius for testing is zero.
|
| + EXPECT_TRUE(delegate->bounding_box().IsEmpty());
|
| +
|
| // Move some more to generate a few more scroll updates.
|
| SendScrollEvent(root_window(), 110, 211, kTouchId, delegate.get());
|
| EXPECT_FALSE(delegate->tap());
|
| @@ -727,6 +731,7 @@ TEST_F(GestureRecognizerTest, GestureEventScroll) {
|
| EXPECT_FALSE(delegate->scroll_end());
|
| EXPECT_EQ(-20, delegate->scroll_x());
|
| EXPECT_EQ(-19, delegate->scroll_y());
|
| + EXPECT_TRUE(delegate->bounding_box().IsEmpty());
|
|
|
| SendScrollEvent(root_window(), 140, 215, kTouchId, delegate.get());
|
| EXPECT_FALSE(delegate->tap());
|
| @@ -738,6 +743,7 @@ TEST_F(GestureRecognizerTest, GestureEventScroll) {
|
| EXPECT_FALSE(delegate->scroll_end());
|
| EXPECT_EQ(30, delegate->scroll_x());
|
| EXPECT_EQ(4, delegate->scroll_y());
|
| + EXPECT_TRUE(delegate->bounding_box().IsEmpty());
|
|
|
| // Release the touch. This should end the scroll.
|
| delegate->Reset();
|
| @@ -753,6 +759,59 @@ TEST_F(GestureRecognizerTest, GestureEventScroll) {
|
| EXPECT_FALSE(delegate->scroll_begin());
|
| EXPECT_FALSE(delegate->scroll_update());
|
| EXPECT_TRUE(delegate->scroll_end());
|
| + EXPECT_TRUE(delegate->bounding_box().IsEmpty());
|
| +}
|
| +
|
| +// Check that the bounding box during a scroll event is correct.
|
| +TEST_F(GestureRecognizerTest, GestureEventScrollBoundingBox) {
|
| + for (int radius = 1; radius <= 10; ++radius) {
|
| + ui::GestureConfiguration::set_default_radius(radius);
|
| + scoped_ptr<GestureEventConsumeDelegate> delegate(
|
| + new GestureEventConsumeDelegate());
|
| + const int kWindowWidth = 123;
|
| + const int kWindowHeight = 45;
|
| + const int kTouchId = 5;
|
| + gfx::Rect bounds(100, 200, kWindowWidth, kWindowHeight);
|
| + scoped_ptr<aura::Window> window(CreateTestWindowWithDelegate(
|
| + delegate.get(), -1234, bounds, NULL));
|
| +
|
| + const int kPositionX = 101;
|
| + const int kPositionY = 201;
|
| + delegate->Reset();
|
| + TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(kPositionX, kPositionY),
|
| + kTouchId, GetTime());
|
| + root_window()->DispatchTouchEvent(&press);
|
| + EXPECT_EQ(gfx::Rect(kPositionX - radius,
|
| + kPositionY - radius,
|
| + radius * 2,
|
| + radius * 2).ToString(),
|
| + delegate->bounding_box().ToString());
|
| +
|
| + const int kScrollAmount = 50;
|
| + SendScrollEvents(root_window(), kPositionX, kPositionY, GetTime(),
|
| + 1, 1, kTouchId, 1, kScrollAmount, delegate.get());
|
| + EXPECT_EQ(gfx::Point(1, 1).ToString(),
|
| + delegate->scroll_begin_position().ToString());
|
| + EXPECT_EQ(gfx::Rect(kPositionX + kScrollAmount - radius,
|
| + kPositionY + kScrollAmount - radius,
|
| + radius * 2,
|
| + radius * 2).ToString(),
|
| + delegate->bounding_box().ToString());
|
| +
|
| + // Release the touch. This should end the scroll.
|
| + delegate->Reset();
|
| + TouchEvent release(ui::ET_TOUCH_RELEASED,
|
| + gfx::Point(kPositionX, kPositionY),
|
| + kTouchId, press.time_stamp() +
|
| + base::TimeDelta::FromMilliseconds(50));
|
| + root_window()->DispatchTouchEvent(&release);
|
| + EXPECT_EQ(gfx::Rect(kPositionX - radius,
|
| + kPositionY - radius,
|
| + radius * 2,
|
| + radius * 2).ToString(),
|
| + delegate->bounding_box().ToString());
|
| + }
|
| + ui::GestureConfiguration::set_default_radius(0);
|
| }
|
|
|
| // Check Scroll End Events report correct velocities
|
| @@ -1430,6 +1489,8 @@ TEST_F(GestureRecognizerTest, GestureEventPinchFromScroll) {
|
| EXPECT_FALSE(delegate->scroll_update());
|
| EXPECT_FALSE(delegate->scroll_end());
|
| EXPECT_TRUE(delegate->pinch_begin());
|
| + EXPECT_EQ(gfx::Rect(10, 10, 120, 291).ToString(),
|
| + delegate->bounding_box().ToString());
|
|
|
| // Move the first finger.
|
| delegate->Reset();
|
| @@ -1444,6 +1505,8 @@ TEST_F(GestureRecognizerTest, GestureEventPinchFromScroll) {
|
| EXPECT_FALSE(delegate->scroll_end());
|
| EXPECT_FALSE(delegate->pinch_begin());
|
| EXPECT_TRUE(delegate->pinch_update());
|
| + EXPECT_EQ(gfx::Rect(10, 10, 85, 191).ToString(),
|
| + delegate->bounding_box().ToString());
|
|
|
| // Now move the second finger.
|
| delegate->Reset();
|
| @@ -1458,6 +1521,8 @@ TEST_F(GestureRecognizerTest, GestureEventPinchFromScroll) {
|
| EXPECT_FALSE(delegate->scroll_end());
|
| EXPECT_FALSE(delegate->pinch_begin());
|
| EXPECT_TRUE(delegate->pinch_update());
|
| + EXPECT_EQ(gfx::Rect(55, 15, 40, 186).ToString(),
|
| + delegate->bounding_box().ToString());
|
|
|
| // Release the first finger. This should end pinch.
|
| delegate->Reset();
|
| @@ -1472,6 +1537,8 @@ TEST_F(GestureRecognizerTest, GestureEventPinchFromScroll) {
|
| EXPECT_FALSE(delegate->scroll_update());
|
| EXPECT_FALSE(delegate->scroll_end());
|
| EXPECT_TRUE(delegate->pinch_end());
|
| + EXPECT_EQ(gfx::Rect(55, 15, 46, 186).ToString(),
|
| + delegate->bounding_box().ToString());
|
|
|
| // Move the second finger. This should still generate a scroll.
|
| delegate->Reset();
|
| @@ -1486,6 +1553,7 @@ TEST_F(GestureRecognizerTest, GestureEventPinchFromScroll) {
|
| EXPECT_FALSE(delegate->scroll_end());
|
| EXPECT_FALSE(delegate->pinch_begin());
|
| EXPECT_FALSE(delegate->pinch_update());
|
| + EXPECT_TRUE(delegate->bounding_box().IsEmpty());
|
| }
|
|
|
| TEST_F(GestureRecognizerTest, GestureEventPinchFromScrollFromPinch) {
|
| @@ -1562,6 +1630,7 @@ TEST_F(GestureRecognizerTest, GestureEventPinchFromTap) {
|
| EXPECT_FALSE(delegate->scroll_begin());
|
| EXPECT_FALSE(delegate->scroll_update());
|
| EXPECT_FALSE(delegate->scroll_end());
|
| + EXPECT_TRUE(delegate->bounding_box().IsEmpty());
|
|
|
| // Press the second finger far enough to break two finger tap. It should
|
| // instead cause a scroll-begin and pinch-begin.
|
| @@ -1576,6 +1645,8 @@ TEST_F(GestureRecognizerTest, GestureEventPinchFromTap) {
|
| EXPECT_FALSE(delegate->scroll_update());
|
| EXPECT_FALSE(delegate->scroll_end());
|
| EXPECT_TRUE(delegate->pinch_begin());
|
| + EXPECT_EQ(gfx::Rect(10, 10, 91, 291).ToString(),
|
| + delegate->bounding_box().ToString());
|
|
|
| // Move the first finger.
|
| delegate->Reset();
|
| @@ -1590,6 +1661,8 @@ TEST_F(GestureRecognizerTest, GestureEventPinchFromTap) {
|
| EXPECT_FALSE(delegate->scroll_end());
|
| EXPECT_FALSE(delegate->pinch_begin());
|
| EXPECT_TRUE(delegate->pinch_update());
|
| + EXPECT_EQ(gfx::Rect(10, 10, 55, 191).ToString(),
|
| + delegate->bounding_box().ToString());
|
|
|
| // Now move the second finger.
|
| delegate->Reset();
|
| @@ -1604,6 +1677,8 @@ TEST_F(GestureRecognizerTest, GestureEventPinchFromTap) {
|
| EXPECT_FALSE(delegate->scroll_end());
|
| EXPECT_FALSE(delegate->pinch_begin());
|
| EXPECT_TRUE(delegate->pinch_update());
|
| + EXPECT_EQ(gfx::Rect(55, 15, 10, 186).ToString(),
|
| + delegate->bounding_box().ToString());
|
|
|
| // Release the first finger. This should end pinch.
|
| delegate->Reset();
|
| @@ -1618,6 +1693,8 @@ TEST_F(GestureRecognizerTest, GestureEventPinchFromTap) {
|
| EXPECT_FALSE(delegate->scroll_update());
|
| EXPECT_FALSE(delegate->scroll_end());
|
| EXPECT_TRUE(delegate->pinch_end());
|
| + EXPECT_EQ(gfx::Rect(55, 15, 46, 186).ToString(),
|
| + delegate->bounding_box().ToString());
|
|
|
| // Move the second finger. This should still generate a scroll.
|
| delegate->Reset();
|
| @@ -1632,6 +1709,7 @@ TEST_F(GestureRecognizerTest, GestureEventPinchFromTap) {
|
| EXPECT_FALSE(delegate->scroll_end());
|
| EXPECT_FALSE(delegate->pinch_begin());
|
| EXPECT_FALSE(delegate->pinch_update());
|
| + EXPECT_TRUE(delegate->bounding_box().IsEmpty());
|
| }
|
|
|
| TEST_F(GestureRecognizerTest, GestureEventIgnoresDisconnectedEvents) {
|
|
|