Chromium Code Reviews| Index: chrome/browser/renderer_host/chrome_render_widget_host_view_mac_history_swiper_unit_test.mm |
| diff --git a/chrome/browser/renderer_host/chrome_render_widget_host_view_mac_history_swiper_unit_test.mm b/chrome/browser/renderer_host/chrome_render_widget_host_view_mac_history_swiper_unit_test.mm |
| index 6d714ae2d772ee1837b866b1c5779e9d81634f37..a9c9f95980773f071b4c35fb72779ea8e6b5b0d7 100644 |
| --- a/chrome/browser/renderer_host/chrome_render_widget_host_view_mac_history_swiper_unit_test.mm |
| +++ b/chrome/browser/renderer_host/chrome_render_widget_host_view_mac_history_swiper_unit_test.mm |
| @@ -283,6 +283,7 @@ TEST_F(MacHistorySwiperTest, SwipeDiagonal) { |
| startGestureInMiddle(); |
| moveGestureInMiddle(); |
| + moveGestureInMiddle(); |
| moveGestureAtPoint(makePoint(0.6, 0.59)); |
| endGestureAtPoint(makePoint(0.6, 0.59)); |
| @@ -372,8 +373,12 @@ TEST_F(MacHistorySwiperTest, NoSwipe) { |
| startGestureInMiddle(); |
| moveGestureInMiddle(); |
| - moveGestureAtPoint(makePoint(0.5, 0.5)); |
| - endGestureAtPoint(makePoint(0.5, 0.5)); |
| + |
| + // Starts the gesture. |
| + moveGestureAtPoint(makePoint(0.44, 0.44)); |
| + |
| + // No movement. |
| + endGestureAtPoint(makePoint(0.44, 0.44)); |
| EXPECT_EQ(begin_count_, 1); |
| EXPECT_EQ(end_count_, 1); |
| @@ -405,3 +410,44 @@ TEST_F(MacHistorySwiperTest, TouchEventAfterGestureFinishes) { |
| NSEvent* beganEvent = scrollWheelEventWithPhase(NSEventPhaseBegan); |
| EXPECT_FALSE([historySwiper_ handleEvent:beganEvent]); |
| } |
| + |
| +// The history swipe logic should be resilient against the timing of the |
| +// different callbacks that result from scrolling. |
| +TEST_F(MacHistorySwiperTest, SwipeRightEventOrdering) { |
| + // These tests require 10.7+ APIs. |
| + if (![NSEvent |
| + respondsToSelector:@selector(isSwipeTrackingFromScrollEventsEnabled)]) |
| + return; |
| + |
| + // Touches began. |
| + NSEvent* scrollEvent = scrollWheelEventWithPhase(NSEventPhaseBegan); |
| + NSEvent* event = mockEventWithPoint(makePoint(0.5, 0.5), NSEventTypeGesture); |
| + [historySwiper_ touchesBeganWithEvent:event]; |
| + [historySwiper_ handleEvent:scrollEvent]; |
| + rendererACKForBeganEvent(); |
| + |
| + // Touches moved. |
| + moveGestureAtPoint(makePoint(0.5, 0.5)); |
| + EXPECT_EQ(begin_count_, 0); |
|
Lei Zhang
2014/09/25 21:12:37
nit: EXPECT_EQ(expected, actual);
No need to fix
|
| + EXPECT_EQ(end_count_, 0); |
| + |
| + // Touches moved. |
| + moveGestureAtPoint(makePoint(0.52, 0.5)); |
| + |
| + // Begin gesture callback is delayed. |
| + [historySwiper_ beginGestureWithEvent:event]; |
| + |
| + // Touches moved. |
| + moveGestureAtPoint(makePoint(0.52, 0.5)); |
| + |
| + // Complete the rest of the gesture. |
| + moveGestureAtPoint(makePoint(0.60, 0.5)); |
| + scrollEvent = scrollWheelEventWithPhase(NSEventPhaseChanged); |
| + [historySwiper_ handleEvent:scrollEvent]; |
| + endGestureAtPoint(makePoint(0.70, 0.5)); |
| + |
| + EXPECT_EQ(begin_count_, 1); |
| + EXPECT_EQ(end_count_, 1); |
| + EXPECT_TRUE(navigated_right_); |
| + EXPECT_FALSE(navigated_left_); |
| +} |