Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6046)

Unified Diff: chrome/browser/renderer_host/chrome_render_widget_host_view_mac_history_swiper_unit_test.mm

Issue 300863002: mac: History swiping doesn't work right with iframes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase against top of tree. Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698