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 58fac22e45c1225454c23526ce4c6d8c391099b7..6d714ae2d772ee1837b866b1c5779e9d81634f37 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 |
@@ -6,11 +6,11 @@ |
#import "chrome/browser/ui/cocoa/cocoa_test_helper.h" |
#include "base/mac/scoped_nsobject.h" |
- |
#import "base/mac/sdk_forward_declarations.h" |
#import "chrome/browser/renderer_host/chrome_render_widget_host_view_mac_history_swiper.h" |
#import "third_party/ocmock/OCMock/OCMock.h" |
#import "third_party/ocmock/ocmock_extensions.h" |
+#include "third_party/WebKit/public/web/WebInputEvent.h" |
@interface HistorySwiper (MacHistorySwiperTest) |
- (BOOL)systemSettingsAllowHistorySwiping:(NSEvent*)event; |
@@ -101,6 +101,7 @@ class MacHistorySwiperTest : public CocoaTest { |
void moveGestureAtPoint(NSPoint point); |
void momentumMoveGestureAtPoint(NSPoint point); |
void endGestureAtPoint(NSPoint point); |
+ void rendererACKForBeganEvent(); |
HistorySwiper* historySwiper_; |
NSView* view_; |
@@ -168,9 +169,7 @@ void MacHistorySwiperTest::moveGestureInMiddle() { |
moveGestureAtPoint(makePoint(0.5, 0.5)); |
// Callbacks from blink to set the relevant state for history swiping. |
- [historySwiper_ gotUnhandledWheelEvent]; |
- [historySwiper_ scrollOffsetPinnedToLeft:YES toRight:YES]; |
- [historySwiper_ setHasHorizontalScrollbar:NO]; |
+ rendererACKForBeganEvent(); |
} |
void MacHistorySwiperTest::moveGestureAtPoint(NSPoint point) { |
@@ -198,6 +197,12 @@ void MacHistorySwiperTest::endGestureAtPoint(NSPoint point) { |
[historySwiper_ handleEvent:scrollEvent]; |
} |
+void MacHistorySwiperTest::rendererACKForBeganEvent() { |
+ blink::WebMouseWheelEvent event; |
+ event.phase = blink::WebMouseWheelEvent::PhaseBegan; |
+ [historySwiper_ rendererHandledWheelEvent:event consumed:NO]; |
+} |
+ |
// Test that a simple left-swipe causes navigation. |
TEST_F(MacHistorySwiperTest, SwipeLeft) { |
// These tests require 10.7+ APIs. |
@@ -281,8 +286,8 @@ TEST_F(MacHistorySwiperTest, SwipeDiagonal) { |
moveGestureAtPoint(makePoint(0.6, 0.59)); |
endGestureAtPoint(makePoint(0.6, 0.59)); |
- EXPECT_EQ(begin_count_, 0); |
- EXPECT_EQ(end_count_, 0); |
+ EXPECT_EQ(begin_count_, 1); |
+ EXPECT_EQ(end_count_, 1); |
EXPECT_FALSE(navigated_right_); |
EXPECT_FALSE(navigated_left_); |
} |
@@ -307,7 +312,7 @@ TEST_F(MacHistorySwiperTest, SwipeLeftThenDown) { |
} |
// Sometimes Cocoa gets confused and sends us a momentum swipe event instead of |
-// a swipe gesture event. We should still function appropriately. |
+// a swipe gesture event. Momentum events should not cause history swiping. |
TEST_F(MacHistorySwiperTest, MomentumSwipeLeft) { |
// These tests require 10.7+ APIs. |
if (![NSEvent |
@@ -322,21 +327,15 @@ TEST_F(MacHistorySwiperTest, MomentumSwipeLeft) { |
EXPECT_EQ(end_count_, 0); |
// Callbacks from blink to set the relevant state for history swiping. |
- [historySwiper_ gotUnhandledWheelEvent]; |
- [historySwiper_ scrollOffsetPinnedToLeft:YES toRight:YES]; |
- [historySwiper_ setHasHorizontalScrollbar:NO]; |
+ rendererACKForBeganEvent(); |
momentumMoveGestureAtPoint(makePoint(0.2, 0.5)); |
- EXPECT_EQ(begin_count_, 1); |
+ EXPECT_EQ(begin_count_, 0); |
EXPECT_EQ(end_count_, 0); |
- EXPECT_FALSE(navigated_right_); |
- EXPECT_FALSE(navigated_left_); |
endGestureAtPoint(makePoint(0.2, 0.5)); |
- EXPECT_EQ(begin_count_, 1); |
- EXPECT_EQ(end_count_, 1); |
- EXPECT_FALSE(navigated_right_); |
- EXPECT_TRUE(navigated_left_); |
+ EXPECT_EQ(begin_count_, 0); |
+ EXPECT_EQ(end_count_, 0); |
} |
// Momentum scroll events for magic mouse should not attempt to trigger the |
@@ -354,9 +353,7 @@ TEST_F(MacHistorySwiperTest, MagicMouseMomentumSwipe) { |
[historySwiper_ handleEvent:scrollEvent]; |
// Callbacks from blink to set the relevant state for history swiping. |
- [historySwiper_ gotUnhandledWheelEvent]; |
- [historySwiper_ scrollOffsetPinnedToLeft:YES toRight:YES]; |
- [historySwiper_ setHasHorizontalScrollbar:NO]; |
+ rendererACKForBeganEvent(); |
// Send a momentum move gesture. |
scrollEvent = |
@@ -378,8 +375,10 @@ TEST_F(MacHistorySwiperTest, NoSwipe) { |
moveGestureAtPoint(makePoint(0.5, 0.5)); |
endGestureAtPoint(makePoint(0.5, 0.5)); |
- EXPECT_EQ(begin_count_, 0); |
- EXPECT_EQ(end_count_, 0); |
+ EXPECT_EQ(begin_count_, 1); |
+ EXPECT_EQ(end_count_, 1); |
+ EXPECT_FALSE(navigated_right_); |
+ EXPECT_FALSE(navigated_left_); |
} |
// After a gesture is successfully recognized, momentum events should be |