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

Unified Diff: chrome/renderer/autofill/page_click_tracker_browsertest.cc

Issue 715733002: [Android] Show autofill popup after animation. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Make this Android CL independent from the ChromeOS CL. Created 5 years, 11 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/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 6495254487a2e267dd8c4f51051748eb44aba594..68a30186df60878cdfdff18ebae681ff393b42ef 100644
--- a/chrome/renderer/autofill/page_click_tracker_browsertest.cc
+++ b/chrome/renderer/autofill/page_click_tracker_browsertest.cc
@@ -3,6 +3,7 @@
// found in the LICENSE file.
#include "base/basictypes.h"
+#include "base/strings/stringprintf.h"
#include "chrome/test/base/chrome_render_view_test.h"
#include "components/autofill/content/renderer/page_click_listener.h"
#include "components/autofill/content/renderer/page_click_tracker.h"
@@ -74,27 +75,20 @@ class PageClickTrackerTest : public ChromeRenderViewTest {
ChromeRenderViewTest::TearDown();
}
- // Simulates a click on the given element and then waits for the stack
- // to unwind.
+ // Simulates a click on the given element and the corresponding response from
+ // the browser about completing the animation effects.
void SendElementClick(const std::string& element_id) {
EXPECT_TRUE(SimulateElementClick(element_id));
- ProcessPendingMessages();
+ SimulateFocusChangeCompleteMessageReceived();
}
- // Send all the messages required for a complete key press.
- void SendKeyPress(int key_code) {
- blink::WebKeyboardEvent keyboard_event;
- keyboard_event.windowsKeyCode = key_code;
- keyboard_event.setKeyIdentifierFromWindowsKeyCode();
-
- keyboard_event.type = blink::WebInputEvent::RawKeyDown;
- SendWebKeyboardEvent(keyboard_event);
-
- keyboard_event.type = blink::WebInputEvent::Char;
- SendWebKeyboardEvent(keyboard_event);
-
- keyboard_event.type = blink::WebInputEvent::KeyUp;
- SendWebKeyboardEvent(keyboard_event);
+ // Simulates a JavaScript focus on the given element and the corresponding
+ // response from the browser about complete the animation effects.
+ void SendElementFocus(const char* element_id) {
+ ExecuteJavaScript(
+ base::StringPrintf("document.getElementById('%s').focus();", element_id)
+ .c_str());
+ SimulateFocusChangeCompleteMessageReceived();
}
scoped_ptr<PageClickTracker> page_click_tracker_;
@@ -126,6 +120,19 @@ TEST_F(PageClickTrackerTest, PageClickTrackerInputClicked) {
EXPECT_FALSE(test_listener_.form_control_element_clicked_called_);
}
+TEST_F(PageClickTrackerTest, PageClickTrackerInputFocusedAndClicked) {
+ // Focus the text field without a click.
+ SendElementFocus("text_1");
+ EXPECT_FALSE(test_listener_.form_control_element_clicked_called_);
+ test_listener_.ClearResults();
+
+ // Click the focused text field to test that was_focused_ is set correctly.
+ SendElementClick("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_);
+}
+
// Tests that PageClickTracker does notify correctly when a textarea
// node is clicked.
TEST_F(PageClickTrackerTest, PageClickTrackerTextAreaClicked) {
@@ -148,4 +155,18 @@ TEST_F(PageClickTrackerTest, PageClickTrackerTextAreaClicked) {
EXPECT_FALSE(test_listener_.form_control_element_clicked_called_);
}
+TEST_F(PageClickTrackerTest, PageClickTrackerTextAreaFocusedAndClicked) {
+ // Focus the textarea without a click.
+ SendElementFocus("textarea_1");
+ EXPECT_FALSE(test_listener_.form_control_element_clicked_called_);
+ test_listener_.ClearResults();
+
+ // Click the focused text field to test that was_focused_ is set correctly.
+ SendElementClick("textarea_1");
+ EXPECT_TRUE(test_listener_.form_control_element_clicked_called_);
+ EXPECT_TRUE(test_listener_.was_focused_);
+ EXPECT_TRUE(textarea_ == test_listener_.form_control_element_clicked_);
+ test_listener_.ClearResults();
+}
+
} // namespace autofill

Powered by Google App Engine
This is Rietveld 408576698