Index: chrome/renderer/autofill/page_click_tracker_browsertest.cc |
diff --git a/chrome/renderer/autofill/page_click_tracker_browsertest.cc b/chrome/renderer/autofill/page_click_tracker_browsertest.cc |
index 203c9a488f006b70a6c3724f166e10a94df4a4e2..9ae73b1359d0ea79a0ad809f1156072dc0b8fca8 100644 |
--- a/chrome/renderer/autofill/page_click_tracker_browsertest.cc |
+++ b/chrome/renderer/autofill/page_click_tracker_browsertest.cc |
@@ -165,7 +165,7 @@ TEST_F(PageClickTrackerTest, PageClickTrackerTextAreaFocusedAndClicked) { |
} |
TEST_F(PageClickTrackerTest, PageClickTrackerScaledTextareaClicked) { |
- EXPECT_NE(text_, text_.document().focusedElement()); |
+ EXPECT_NE(textarea_, textarea_.document().focusedElement()); |
view_->GetWebView()->setPageScaleFactor(3); |
view_->GetWebView()->setPinchViewportOffset(blink::WebFloatPoint(50, 50)); |
@@ -176,6 +176,18 @@ TEST_F(PageClickTrackerTest, PageClickTrackerScaledTextareaClicked) { |
EXPECT_TRUE(textarea_ == test_listener_.form_control_element_clicked_); |
} |
+TEST_F(PageClickTrackerTest, PageClickTrackerScaledTextareaTapped) { |
+ EXPECT_NE(textarea_, textarea_.document().focusedElement()); |
+ view_->GetWebView()->setPageScaleFactor(3); |
+ view_->GetWebView()->setPinchViewportOffset(blink::WebFloatPoint(50, 50)); |
+ |
+ // Tap textarea_1. |
+ SimulateRectTap(gfx::Rect(30, 30, 30, 30)); |
+ EXPECT_TRUE(test_listener_.form_control_element_clicked_called_); |
+ EXPECT_FALSE(test_listener_.was_focused_); |
+ EXPECT_TRUE(textarea_ == test_listener_.form_control_element_clicked_); |
+} |
+ |
TEST_F(PageClickTrackerTest, PageClickTrackerDisabledInputClickedNoEvent) { |
EXPECT_NE(text_, text_.document().focusedElement()); |
// Click the text field once. |
@@ -190,4 +202,38 @@ TEST_F(PageClickTrackerTest, PageClickTrackerDisabledInputClickedNoEvent) { |
EXPECT_FALSE(test_listener_.form_control_element_clicked_called_); |
} |
+TEST_F(PageClickTrackerTest, |
+ PageClickTrackerClickDisabledInputDoesNotResetClickCounter) { |
+ EXPECT_NE(text_, text_.document().focusedElement()); |
+ // Click the text field once. |
+ EXPECT_TRUE(SimulateElementClick("text_1")); |
+ EXPECT_TRUE(test_listener_.form_control_element_clicked_called_); |
+ EXPECT_FALSE(test_listener_.was_focused_); |
+ EXPECT_TRUE(text_ == test_listener_.form_control_element_clicked_); |
+ test_listener_.ClearResults(); |
+ |
+ // Click the disabled element. |
+ EXPECT_TRUE(SimulateElementClick("button_2")); |
+ EXPECT_FALSE(test_listener_.form_control_element_clicked_called_); |
+ test_listener_.ClearResults(); |
+ |
+ // Click the text field second time. Page click tracker should know that this |
+ // is the second click. |
+ EXPECT_TRUE(SimulateElementClick("text_1")); |
+ EXPECT_TRUE(test_listener_.form_control_element_clicked_called_); |
+ EXPECT_TRUE(test_listener_.was_focused_); |
+ EXPECT_TRUE(text_ == test_listener_.form_control_element_clicked_); |
+} |
+ |
+TEST_F(PageClickTrackerTest, PageClickTrackerTapNearEdgeIsPageClick) { |
+ EXPECT_NE(text_, text_.document().focusedElement()); |
+ // Tap outside of element bounds, but tap width is overlapping the field. |
+ gfx::Rect element_bounds = GetElementBounds("text_1"); |
+ SimulateRectTap(element_bounds - |
+ gfx::Vector2d(element_bounds.width() / 2 + 1, 0)); |
+ EXPECT_TRUE(test_listener_.form_control_element_clicked_called_); |
+ EXPECT_FALSE(test_listener_.was_focused_); |
+ EXPECT_TRUE(text_ == test_listener_.form_control_element_clicked_); |
+} |
+ |
} // namespace autofill |