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

Unified Diff: third_party/WebKit/Source/web/tests/WebViewTest.cpp

Issue 2430183002: Move arrow scrolling into KeyboardEventManager. (Closed)
Patch Set: Add keyEvent() null check to fix test Created 4 years, 2 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
« no previous file with comments | « third_party/WebKit/Source/web/WebViewImpl.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/web/tests/WebViewTest.cpp
diff --git a/third_party/WebKit/Source/web/tests/WebViewTest.cpp b/third_party/WebKit/Source/web/tests/WebViewTest.cpp
index 7117cfcc8f7c5c61c68d5ae6c93f82117dc2c34f..7e849f8ceb96ecb99a10b81e18622a0907e1855a 100644
--- a/third_party/WebKit/Source/web/tests/WebViewTest.cpp
+++ b/third_party/WebKit/Source/web/tests/WebViewTest.cpp
@@ -2401,6 +2401,100 @@ TEST_F(WebViewTest, SelectionOnReadOnlyInput) {
EXPECT_EQ(static_cast<int>(testWord.length()), range.length());
}
+TEST_F(WebViewTest, KeyDownScrollsHandled) {
+ URLTestHelpers::registerMockedURLFromBaseURL(
+ WebString::fromUTF8(m_baseURL.c_str()),
+ WebString::fromUTF8("content-width-1000.html"));
+
+ WebViewImpl* webView = m_webViewHelper.initializeAndLoad(
+ m_baseURL + "content-width-1000.html", true);
+ webView->resize(WebSize(100, 100));
+ webView->updateAllLifecyclePhases();
+ runPendingTasks();
+
+ WebKeyboardEvent keyEvent;
+
+ // RawKeyDown pagedown should be handled.
+ keyEvent.windowsKeyCode = VKEY_NEXT;
+ keyEvent.type = WebInputEvent::RawKeyDown;
+ EXPECT_EQ(WebInputEventResult::HandledSystem,
+ webView->handleInputEvent(keyEvent));
+ keyEvent.type = WebInputEvent::KeyUp;
+ webView->handleInputEvent(keyEvent);
+
+ // Coalesced KeyDown arrow-down should be handled.
+ keyEvent.windowsKeyCode = VKEY_DOWN;
+ keyEvent.type = WebInputEvent::KeyDown;
+ EXPECT_EQ(WebInputEventResult::HandledSystem,
+ webView->handleInputEvent(keyEvent));
+ keyEvent.type = WebInputEvent::KeyUp;
+ webView->handleInputEvent(keyEvent);
+
+ // Ctrl-Home should be handled...
+ keyEvent.windowsKeyCode = VKEY_HOME;
+ keyEvent.modifiers = WebInputEvent::ControlKey;
+ keyEvent.type = WebInputEvent::RawKeyDown;
+ EXPECT_EQ(WebInputEventResult::NotHandled,
+ webView->handleInputEvent(keyEvent));
+ keyEvent.type = WebInputEvent::KeyUp;
+ webView->handleInputEvent(keyEvent);
+
+ // But Ctrl-Down should not.
+ keyEvent.windowsKeyCode = VKEY_DOWN;
+ keyEvent.modifiers = WebInputEvent::ControlKey;
+ keyEvent.type = WebInputEvent::RawKeyDown;
+ EXPECT_EQ(WebInputEventResult::NotHandled,
+ webView->handleInputEvent(keyEvent));
+ keyEvent.type = WebInputEvent::KeyUp;
+ webView->handleInputEvent(keyEvent);
+
+ // Shift, meta, and alt should not be handled.
+ keyEvent.windowsKeyCode = VKEY_NEXT;
+ keyEvent.modifiers = WebInputEvent::ShiftKey;
+ keyEvent.type = WebInputEvent::RawKeyDown;
+ EXPECT_EQ(WebInputEventResult::NotHandled,
+ webView->handleInputEvent(keyEvent));
+ keyEvent.type = WebInputEvent::KeyUp;
+ webView->handleInputEvent(keyEvent);
+
+ keyEvent.windowsKeyCode = VKEY_NEXT;
+ keyEvent.modifiers = WebInputEvent::MetaKey;
+ keyEvent.type = WebInputEvent::RawKeyDown;
+ EXPECT_EQ(WebInputEventResult::NotHandled,
+ webView->handleInputEvent(keyEvent));
+ keyEvent.type = WebInputEvent::KeyUp;
+ webView->handleInputEvent(keyEvent);
+
+ keyEvent.windowsKeyCode = VKEY_NEXT;
+ keyEvent.modifiers = WebInputEvent::AltKey;
+ keyEvent.type = WebInputEvent::RawKeyDown;
+ EXPECT_EQ(WebInputEventResult::NotHandled,
+ webView->handleInputEvent(keyEvent));
+ keyEvent.type = WebInputEvent::KeyUp;
+ webView->handleInputEvent(keyEvent);
+
+ // System-key labeled Alt-Down (as in Windows) should do nothing,
+ // but non-system-key labeled Alt-Down (as in Mac) should be handled
+ // as a page-down.
+ keyEvent.windowsKeyCode = VKEY_DOWN;
+ keyEvent.modifiers = WebInputEvent::AltKey;
+ keyEvent.isSystemKey = true;
+ keyEvent.type = WebInputEvent::RawKeyDown;
+ EXPECT_EQ(WebInputEventResult::NotHandled,
+ webView->handleInputEvent(keyEvent));
+ keyEvent.type = WebInputEvent::KeyUp;
+ webView->handleInputEvent(keyEvent);
+
+ keyEvent.windowsKeyCode = VKEY_DOWN;
+ keyEvent.modifiers = WebInputEvent::AltKey;
+ keyEvent.isSystemKey = false;
+ keyEvent.type = WebInputEvent::RawKeyDown;
+ EXPECT_EQ(WebInputEventResult::HandledSystem,
+ webView->handleInputEvent(keyEvent));
+ keyEvent.type = WebInputEvent::KeyUp;
+ webView->handleInputEvent(keyEvent);
+}
+
static void configueCompositingWebView(WebSettings* settings) {
settings->setAcceleratedCompositingEnabled(true);
settings->setPreferCompositingToLCDTextEnabled(true);
« no previous file with comments | « third_party/WebKit/Source/web/WebViewImpl.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698