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

Side by Side Diff: chrome/renderer/autofill/page_click_tracker_browsertest.cc

Issue 884583002: [autofill] Show autofill popup when focusing a field by tapping near its edge. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@bounds-change
Patch Set: Use Blink hit testing Created 5 years, 10 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 unified diff | Download patch
« no previous file with comments | « no previous file | components/autofill/content/renderer/page_click_tracker.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/basictypes.h" 5 #include "base/basictypes.h"
6 #include "chrome/test/base/chrome_render_view_test.h" 6 #include "chrome/test/base/chrome_render_view_test.h"
7 #include "components/autofill/content/renderer/page_click_listener.h" 7 #include "components/autofill/content/renderer/page_click_listener.h"
8 #include "components/autofill/content/renderer/page_click_tracker.h" 8 #include "components/autofill/content/renderer/page_click_tracker.h"
9 #include "content/public/renderer/render_view.h" 9 #include "content/public/renderer/render_view.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 158
159 // Click the focused text field to test that was_focused_ is set correctly. 159 // Click the focused text field to test that was_focused_ is set correctly.
160 EXPECT_TRUE(SimulateElementClick("textarea_1")); 160 EXPECT_TRUE(SimulateElementClick("textarea_1"));
161 EXPECT_TRUE(test_listener_.form_control_element_clicked_called_); 161 EXPECT_TRUE(test_listener_.form_control_element_clicked_called_);
162 EXPECT_TRUE(test_listener_.was_focused_); 162 EXPECT_TRUE(test_listener_.was_focused_);
163 EXPECT_TRUE(textarea_ == test_listener_.form_control_element_clicked_); 163 EXPECT_TRUE(textarea_ == test_listener_.form_control_element_clicked_);
164 test_listener_.ClearResults(); 164 test_listener_.ClearResults();
165 } 165 }
166 166
167 TEST_F(PageClickTrackerTest, PageClickTrackerScaledTextareaClicked) { 167 TEST_F(PageClickTrackerTest, PageClickTrackerScaledTextareaClicked) {
168 EXPECT_NE(text_, text_.document().focusedElement()); 168 EXPECT_NE(textarea_, textarea_.document().focusedElement());
169 view_->GetWebView()->setPageScaleFactor(3); 169 view_->GetWebView()->setPageScaleFactor(3);
170 view_->GetWebView()->setPinchViewportOffset(blink::WebFloatPoint(50, 50)); 170 view_->GetWebView()->setPinchViewportOffset(blink::WebFloatPoint(50, 50));
171 171
172 // Click textarea_1. 172 // Click textarea_1.
173 SimulatePointClick(gfx::Point(30, 30)); 173 SimulatePointClick(gfx::Point(30, 30));
174 EXPECT_TRUE(test_listener_.form_control_element_clicked_called_); 174 EXPECT_TRUE(test_listener_.form_control_element_clicked_called_);
175 EXPECT_FALSE(test_listener_.was_focused_); 175 EXPECT_FALSE(test_listener_.was_focused_);
176 EXPECT_TRUE(textarea_ == test_listener_.form_control_element_clicked_); 176 EXPECT_TRUE(textarea_ == test_listener_.form_control_element_clicked_);
177 } 177 }
178 178
179 TEST_F(PageClickTrackerTest, PageClickTrackerScaledTextareaTapped) {
180 EXPECT_NE(textarea_, textarea_.document().focusedElement());
181 view_->GetWebView()->setPageScaleFactor(3);
182 view_->GetWebView()->setPinchViewportOffset(blink::WebFloatPoint(50, 50));
183
184 // Tap textarea_1.
185 SimulateRectTap(gfx::Rect(30, 30, 30, 30));
186 EXPECT_TRUE(test_listener_.form_control_element_clicked_called_);
187 EXPECT_FALSE(test_listener_.was_focused_);
188 EXPECT_TRUE(textarea_ == test_listener_.form_control_element_clicked_);
189 }
190
179 TEST_F(PageClickTrackerTest, PageClickTrackerDisabledInputClickedNoEvent) { 191 TEST_F(PageClickTrackerTest, PageClickTrackerDisabledInputClickedNoEvent) {
180 EXPECT_NE(text_, text_.document().focusedElement()); 192 EXPECT_NE(text_, text_.document().focusedElement());
181 // Click the text field once. 193 // Click the text field once.
182 EXPECT_TRUE(SimulateElementClick("text_1")); 194 EXPECT_TRUE(SimulateElementClick("text_1"));
183 EXPECT_TRUE(test_listener_.form_control_element_clicked_called_); 195 EXPECT_TRUE(test_listener_.form_control_element_clicked_called_);
184 EXPECT_FALSE(test_listener_.was_focused_); 196 EXPECT_FALSE(test_listener_.was_focused_);
185 EXPECT_TRUE(text_ == test_listener_.form_control_element_clicked_); 197 EXPECT_TRUE(text_ == test_listener_.form_control_element_clicked_);
186 test_listener_.ClearResults(); 198 test_listener_.ClearResults();
187 199
188 // Click the disabled element. 200 // Click the disabled element.
189 EXPECT_TRUE(SimulateElementClick("button_2")); 201 EXPECT_TRUE(SimulateElementClick("button_2"));
190 EXPECT_FALSE(test_listener_.form_control_element_clicked_called_); 202 EXPECT_FALSE(test_listener_.form_control_element_clicked_called_);
191 } 203 }
192 204
205 TEST_F(PageClickTrackerTest,
206 PageClickTrackerClickDisabledInputDoesNotResetClickCounter) {
207 EXPECT_NE(text_, text_.document().focusedElement());
208 // Click the text field once.
209 EXPECT_TRUE(SimulateElementClick("text_1"));
210 EXPECT_TRUE(test_listener_.form_control_element_clicked_called_);
211 EXPECT_FALSE(test_listener_.was_focused_);
212 EXPECT_TRUE(text_ == test_listener_.form_control_element_clicked_);
213 test_listener_.ClearResults();
214
215 // Click the disabled element.
216 EXPECT_TRUE(SimulateElementClick("button_2"));
217 EXPECT_FALSE(test_listener_.form_control_element_clicked_called_);
218 test_listener_.ClearResults();
219
220 // Click the text field second time. Page click tracker should know that this
221 // is the second click.
222 EXPECT_TRUE(SimulateElementClick("text_1"));
223 EXPECT_TRUE(test_listener_.form_control_element_clicked_called_);
224 EXPECT_TRUE(test_listener_.was_focused_);
225 EXPECT_TRUE(text_ == test_listener_.form_control_element_clicked_);
226 }
227
228 TEST_F(PageClickTrackerTest, PageClickTrackerTapNearEdgeIsPageClick) {
229 EXPECT_NE(text_, text_.document().focusedElement());
230 // Tap outside of element bounds, but tap width is overlapping the field.
231 gfx::Rect element_bounds = GetElementBounds("text_1");
232 SimulateRectTap(element_bounds -
233 gfx::Vector2d(element_bounds.width() / 2 + 1, 0));
234 EXPECT_TRUE(test_listener_.form_control_element_clicked_called_);
235 EXPECT_FALSE(test_listener_.was_focused_);
236 EXPECT_TRUE(text_ == test_listener_.form_control_element_clicked_);
237 }
238
193 } // namespace autofill 239 } // namespace autofill
OLDNEW
« no previous file with comments | « no previous file | components/autofill/content/renderer/page_click_tracker.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698