Chromium Code Reviews| Index: Source/web/tests/WebViewTest.cpp |
| diff --git a/Source/web/tests/WebViewTest.cpp b/Source/web/tests/WebViewTest.cpp |
| index 657f90fd4ad235d65cf08a92b501430f6b162905..524101bdaace7c3b36c72763114e4974c62744f1 100644 |
| --- a/Source/web/tests/WebViewTest.cpp |
| +++ b/Source/web/tests/WebViewTest.cpp |
| @@ -1132,7 +1132,8 @@ public: |
| MockAutofillClient() |
| : m_ignoreTextChanges(false) |
| , m_textChangesWhileIgnored(0) |
| - , m_textChangesWhileNotIgnored(0) { } |
| + , m_textChangesWhileNotIgnored(0) |
| + , m_userGestureNotificationsCount(0) { } |
| virtual ~MockAutofillClient() { } |
| @@ -1144,6 +1145,7 @@ public: |
| else |
| ++m_textChangesWhileNotIgnored; |
| } |
| + virtual void firstUserGestureObserved() { ++m_userGestureNotificationsCount; } |
|
tkent
2014/04/16 02:09:12
nit: add OVERRIDE
vabr (Chromium)
2014/04/16 07:22:00
Done.
|
| void clearChangeCounts() |
| { |
| @@ -1153,11 +1155,13 @@ public: |
| int textChangesWhileIgnored() { return m_textChangesWhileIgnored; } |
| int textChangesWhileNotIgnored() { return m_textChangesWhileNotIgnored; } |
| + int getUserGestureNotificationsCount() { return m_userGestureNotificationsCount; } |
| private: |
| bool m_ignoreTextChanges; |
| int m_textChangesWhileIgnored; |
| int m_textChangesWhileNotIgnored; |
| + int m_userGestureNotificationsCount; |
| }; |
| @@ -1871,4 +1875,68 @@ TEST_F(WebViewTest, NonUserInputTextUpdate) |
| EXPECT_FALSE(client.textIsUpdated()); |
| } |
| +// Check that the WebAutofillClient is correctly notified about first user |
| +// gestures after load, following various input events. |
| +TEST_F(WebViewTest, FirstUserGestureObservedKeyEvent) |
| +{ |
| + URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c_str()), WebString::fromUTF8("form.html")); |
| + MockAutofillClient client; |
| + WebView* webView = m_webViewHelper.initializeAndLoad(m_baseURL + "form.html", true); |
| + webView->setAutofillClient(&client); |
| + webView->setInitialFocus(false); |
| + |
| + EXPECT_EQ(0, client.getUserGestureNotificationsCount()); |
| + |
| + WebKeyboardEvent keyEvent; |
| + keyEvent.windowsKeyCode = WebCore::VKEY_SPACE; |
| + keyEvent.type = WebInputEvent::RawKeyDown; |
| + keyEvent.setKeyIdentifierFromWindowsKeyCode(); |
| + webView->handleInputEvent(keyEvent); |
| + keyEvent.type = WebInputEvent::KeyUp; |
| + webView->handleInputEvent(keyEvent); |
| + |
| + EXPECT_EQ(1, client.getUserGestureNotificationsCount()); |
| + webView->setAutofillClient(0); |
| +} |
| + |
| +TEST_F(WebViewTest, FirstUserGestureObservedMouseEvent) |
| +{ |
| + URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c_str()), WebString::fromUTF8("form.html")); |
| + MockAutofillClient client; |
| + WebView* webView = m_webViewHelper.initializeAndLoad(m_baseURL + "form.html", true); |
| + webView->setAutofillClient(&client); |
| + webView->setInitialFocus(false); |
| + |
| + EXPECT_EQ(0, client.getUserGestureNotificationsCount()); |
| + |
| + WebMouseEvent mouseEvent; |
| + mouseEvent.button = WebMouseEvent::ButtonLeft; |
| + mouseEvent.x = 1; |
| + mouseEvent.y = 1; |
| + mouseEvent.clickCount = 1; |
| + mouseEvent.type = WebInputEvent::MouseDown; |
| + webView->handleInputEvent(mouseEvent); |
| + mouseEvent.type = WebInputEvent::MouseUp; |
| + webView->handleInputEvent(mouseEvent); |
| + |
| + EXPECT_EQ(1, client.getUserGestureNotificationsCount()); |
| + webView->setAutofillClient(0); |
| +} |
| + |
| +TEST_F(WebViewTest, FirstUserGestureObservedGestureTap) |
| +{ |
| + URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c_str()), WebString::fromUTF8("longpress_selection.html")); |
| + MockAutofillClient client; |
| + WebView* webView = m_webViewHelper.initializeAndLoad(m_baseURL + "longpress_selection.html", true); |
| + webView->setAutofillClient(&client); |
| + webView->setInitialFocus(false); |
| + |
| + EXPECT_EQ(0, client.getUserGestureNotificationsCount()); |
| + |
| + EXPECT_TRUE(tapElementById(webView, WebInputEvent::GestureTap, WebString::fromUTF8("target"))); |
| + |
| + EXPECT_EQ(1, client.getUserGestureNotificationsCount()); |
| + webView->setAutofillClient(0); |
| +} |
| + |
| } // namespace |