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

Side by Side Diff: third_party/WebKit/Source/web/tests/WebViewTest.cpp

Issue 2569273002: Add constructors to WebInputEvents and setters so we can work at cleaning up these public structs. (Closed)
Patch Set: Rebase Created 3 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 1969 matching lines...) Expand 10 before | Expand all | Expand 10 after
1980 1980
1981 // TODO(bokan): Technically incorrect, event positions should be in viewport 1981 // TODO(bokan): Technically incorrect, event positions should be in viewport
1982 // space. crbug.com/371902. 1982 // space. crbug.com/371902.
1983 IntPoint center = 1983 IntPoint center =
1984 m_webViewHelper.webView() 1984 m_webViewHelper.webView()
1985 ->mainFrameImpl() 1985 ->mainFrameImpl()
1986 ->frameView() 1986 ->frameView()
1987 ->contentsToScreen(element->layoutObject()->absoluteBoundingBoxRect()) 1987 ->contentsToScreen(element->layoutObject()->absoluteBoundingBoxRect())
1988 .center(); 1988 .center();
1989 1989
1990 WebGestureEvent event; 1990 WebGestureEvent event(type, WebInputEvent::NoModifiers,
1991 event.type = type; 1991 WebInputEvent::TimeStampForTesting);
1992
1992 event.sourceDevice = WebGestureDeviceTouchscreen; 1993 event.sourceDevice = WebGestureDeviceTouchscreen;
1993 event.x = center.x(); 1994 event.x = center.x();
1994 event.y = center.y(); 1995 event.y = center.y();
1995 1996
1996 m_webViewHelper.webView()->handleInputEvent(event); 1997 m_webViewHelper.webView()->handleInputEvent(event);
1997 runPendingTasks(); 1998 runPendingTasks();
1998 return true; 1999 return true;
1999 } 2000 }
2000 2001
2001 bool WebViewTest::tapElementById(WebInputEvent::Type type, 2002 bool WebViewTest::tapElementById(WebInputEvent::Type type,
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
2044 EXPECT_TRUE(client.contentDetectionRequested()); 2045 EXPECT_TRUE(client.contentDetectionRequested());
2045 EXPECT_FALSE(client.scheduledIntentURL().isValid()); 2046 EXPECT_FALSE(client.scheduledIntentURL().isValid());
2046 2047
2047 WebURL intentURL = toKURL(m_baseURL); 2048 WebURL intentURL = toKURL(m_baseURL);
2048 client.setContentDetectionResult(intentURL); 2049 client.setContentDetectionResult(intentURL);
2049 EXPECT_TRUE(tapElementById(WebInputEvent::GestureTap, noListener)); 2050 EXPECT_TRUE(tapElementById(WebInputEvent::GestureTap, noListener));
2050 EXPECT_TRUE(client.scheduledIntentURL() == intentURL); 2051 EXPECT_TRUE(client.scheduledIntentURL() == intentURL);
2051 EXPECT_TRUE(client.wasInMainFrame()); 2052 EXPECT_TRUE(client.wasInMainFrame());
2052 2053
2053 // Tapping elsewhere should cancel the scheduled intent. 2054 // Tapping elsewhere should cancel the scheduled intent.
2054 WebGestureEvent event; 2055 WebGestureEvent event(WebInputEvent::GestureTap, WebInputEvent::NoModifiers,
2055 event.type = WebInputEvent::GestureTap; 2056 WebInputEvent::TimeStampForTesting);
2056 event.sourceDevice = WebGestureDeviceTouchscreen; 2057 event.sourceDevice = WebGestureDeviceTouchscreen;
2057 webView->handleInputEvent(event); 2058 webView->handleInputEvent(event);
2058 runPendingTasks(); 2059 runPendingTasks();
2059 EXPECT_TRUE(client.pendingIntentsCancelled()); 2060 EXPECT_TRUE(client.pendingIntentsCancelled());
2060 2061
2061 // Explicitly reset to break dependency on locally scoped client. 2062 // Explicitly reset to break dependency on locally scoped client.
2062 m_webViewHelper.reset(); 2063 m_webViewHelper.reset();
2063 } 2064 }
2064 2065
2065 TEST_P(WebViewTest, ContentDetectionInIframe) { 2066 TEST_P(WebViewTest, ContentDetectionInIframe) {
(...skipping 22 matching lines...) Expand all
2088 2089
2089 // Explicitly reset to break dependency on locally scoped client. 2090 // Explicitly reset to break dependency on locally scoped client.
2090 m_webViewHelper.reset(); 2091 m_webViewHelper.reset();
2091 } 2092 }
2092 2093
2093 TEST_P(WebViewTest, ClientTapHandling) { 2094 TEST_P(WebViewTest, ClientTapHandling) {
2094 TapHandlingWebViewClient client; 2095 TapHandlingWebViewClient client;
2095 client.reset(); 2096 client.reset();
2096 WebView* webView = 2097 WebView* webView =
2097 m_webViewHelper.initializeAndLoad("about:blank", true, 0, &client); 2098 m_webViewHelper.initializeAndLoad("about:blank", true, 0, &client);
2098 WebGestureEvent event; 2099 WebGestureEvent event(WebInputEvent::GestureTap, WebInputEvent::NoModifiers,
2099 event.type = WebInputEvent::GestureTap; 2100 WebInputEvent::TimeStampForTesting);
2100 event.sourceDevice = WebGestureDeviceTouchscreen; 2101 event.sourceDevice = WebGestureDeviceTouchscreen;
2101 event.x = 3; 2102 event.x = 3;
2102 event.y = 8; 2103 event.y = 8;
2103 webView->handleInputEvent(event); 2104 webView->handleInputEvent(event);
2104 runPendingTasks(); 2105 runPendingTasks();
2105 EXPECT_EQ(3, client.tapX()); 2106 EXPECT_EQ(3, client.tapX());
2106 EXPECT_EQ(8, client.tapY()); 2107 EXPECT_EQ(8, client.tapY());
2107 client.reset(); 2108 client.reset();
2108 event.type = WebInputEvent::GestureLongPress; 2109 event.setType(WebInputEvent::GestureLongPress);
2109 event.x = 25; 2110 event.x = 25;
2110 event.y = 7; 2111 event.y = 7;
2111 webView->handleInputEvent(event); 2112 webView->handleInputEvent(event);
2112 runPendingTasks(); 2113 runPendingTasks();
2113 EXPECT_EQ(25, client.longpressX()); 2114 EXPECT_EQ(25, client.longpressX());
2114 EXPECT_EQ(7, client.longpressY()); 2115 EXPECT_EQ(7, client.longpressY());
2115 2116
2116 // Explicitly reset to break dependency on locally scoped client. 2117 // Explicitly reset to break dependency on locally scoped client.
2117 m_webViewHelper.reset(); 2118 m_webViewHelper.reset();
2118 } 2119 }
2119 2120
2120 TEST_P(WebViewTest, ClientTapHandlingNullWebViewClient) { 2121 TEST_P(WebViewTest, ClientTapHandlingNullWebViewClient) {
2121 WebViewImpl* webView = 2122 WebViewImpl* webView =
2122 WebViewImpl::create(nullptr, WebPageVisibilityStateVisible); 2123 WebViewImpl::create(nullptr, WebPageVisibilityStateVisible);
2123 FrameTestHelpers::TestWebFrameClient webFrameClient; 2124 FrameTestHelpers::TestWebFrameClient webFrameClient;
2124 FrameTestHelpers::TestWebWidgetClient webWidgetClient; 2125 FrameTestHelpers::TestWebWidgetClient webWidgetClient;
2125 WebLocalFrame* localFrame = 2126 WebLocalFrame* localFrame =
2126 WebLocalFrame::create(WebTreeScopeType::Document, &webFrameClient); 2127 WebLocalFrame::create(WebTreeScopeType::Document, &webFrameClient);
2127 webView->setMainFrame(localFrame); 2128 webView->setMainFrame(localFrame);
2128 2129
2129 // TODO(dcheng): The main frame widget currently has a special case. 2130 // TODO(dcheng): The main frame widget currently has a special case.
2130 // Eliminate this once WebView is no longer a WebWidget. 2131 // Eliminate this once WebView is no longer a WebWidget.
2131 blink::WebFrameWidget::create(&webWidgetClient, webView, localFrame); 2132 blink::WebFrameWidget::create(&webWidgetClient, webView, localFrame);
2132 2133
2133 WebGestureEvent event; 2134 WebGestureEvent event(WebInputEvent::GestureTap, WebInputEvent::NoModifiers,
2134 event.type = WebInputEvent::GestureTap; 2135 WebInputEvent::TimeStampForTesting);
2135 event.sourceDevice = WebGestureDeviceTouchscreen; 2136 event.sourceDevice = WebGestureDeviceTouchscreen;
2136 event.x = 3; 2137 event.x = 3;
2137 event.y = 8; 2138 event.y = 8;
2138 EXPECT_EQ(WebInputEventResult::NotHandled, webView->handleInputEvent(event)); 2139 EXPECT_EQ(WebInputEventResult::NotHandled, webView->handleInputEvent(event));
2139 webView->close(); 2140 webView->close();
2140 } 2141 }
2141 2142
2142 TEST_P(WebViewTest, LongPressEmptyDiv) { 2143 TEST_P(WebViewTest, LongPressEmptyDiv) {
2143 URLTestHelpers::registerMockedURLFromBaseURL( 2144 URLTestHelpers::registerMockedURLFromBaseURL(
2144 WebString::fromUTF8(m_baseURL.c_str()), 2145 WebString::fromUTF8(m_baseURL.c_str()),
2145 WebString::fromUTF8("long_press_empty_div.html")); 2146 WebString::fromUTF8("long_press_empty_div.html"));
2146 2147
2147 WebViewImpl* webView = m_webViewHelper.initializeAndLoad( 2148 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(
2148 m_baseURL + "long_press_empty_div.html", true); 2149 m_baseURL + "long_press_empty_div.html", true);
2149 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(false); 2150 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(false);
2150 webView->resize(WebSize(500, 300)); 2151 webView->resize(WebSize(500, 300));
2151 webView->updateAllLifecyclePhases(); 2152 webView->updateAllLifecyclePhases();
2152 runPendingTasks(); 2153 runPendingTasks();
2153 2154
2154 WebGestureEvent event; 2155 WebGestureEvent event(WebInputEvent::GestureLongPress,
2155 event.type = WebInputEvent::GestureLongPress; 2156 WebInputEvent::NoModifiers,
2157 WebInputEvent::TimeStampForTesting);
2156 event.sourceDevice = WebGestureDeviceTouchscreen; 2158 event.sourceDevice = WebGestureDeviceTouchscreen;
2157 event.x = 250; 2159 event.x = 250;
2158 event.y = 150; 2160 event.y = 150;
2159 2161
2160 EXPECT_EQ(WebInputEventResult::NotHandled, webView->handleInputEvent(event)); 2162 EXPECT_EQ(WebInputEventResult::NotHandled, webView->handleInputEvent(event));
2161 } 2163 }
2162 2164
2163 TEST_P(WebViewTest, LongPressEmptyDivAlwaysShow) { 2165 TEST_P(WebViewTest, LongPressEmptyDivAlwaysShow) {
2164 URLTestHelpers::registerMockedURLFromBaseURL( 2166 URLTestHelpers::registerMockedURLFromBaseURL(
2165 WebString::fromUTF8(m_baseURL.c_str()), 2167 WebString::fromUTF8(m_baseURL.c_str()),
2166 WebString::fromUTF8("long_press_empty_div.html")); 2168 WebString::fromUTF8("long_press_empty_div.html"));
2167 2169
2168 WebViewImpl* webView = m_webViewHelper.initializeAndLoad( 2170 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(
2169 m_baseURL + "long_press_empty_div.html", true); 2171 m_baseURL + "long_press_empty_div.html", true);
2170 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(true); 2172 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(true);
2171 webView->resize(WebSize(500, 300)); 2173 webView->resize(WebSize(500, 300));
2172 webView->updateAllLifecyclePhases(); 2174 webView->updateAllLifecyclePhases();
2173 runPendingTasks(); 2175 runPendingTasks();
2174 2176
2175 WebGestureEvent event; 2177 WebGestureEvent event(WebInputEvent::GestureLongPress,
2176 event.type = WebInputEvent::GestureLongPress; 2178 WebInputEvent::NoModifiers,
2179 WebInputEvent::TimeStampForTesting);
2177 event.sourceDevice = WebGestureDeviceTouchscreen; 2180 event.sourceDevice = WebGestureDeviceTouchscreen;
2178 event.x = 250; 2181 event.x = 250;
2179 event.y = 150; 2182 event.y = 150;
2180 2183
2181 EXPECT_EQ(WebInputEventResult::HandledSystem, 2184 EXPECT_EQ(WebInputEventResult::HandledSystem,
2182 webView->handleInputEvent(event)); 2185 webView->handleInputEvent(event));
2183 } 2186 }
2184 2187
2185 TEST_P(WebViewTest, LongPressObject) { 2188 TEST_P(WebViewTest, LongPressObject) {
2186 URLTestHelpers::registerMockedURLFromBaseURL( 2189 URLTestHelpers::registerMockedURLFromBaseURL(
2187 WebString::fromUTF8(m_baseURL.c_str()), 2190 WebString::fromUTF8(m_baseURL.c_str()),
2188 WebString::fromUTF8("long_press_object.html")); 2191 WebString::fromUTF8("long_press_object.html"));
2189 2192
2190 WebViewImpl* webView = m_webViewHelper.initializeAndLoad( 2193 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(
2191 m_baseURL + "long_press_object.html", true); 2194 m_baseURL + "long_press_object.html", true);
2192 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(true); 2195 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(true);
2193 webView->resize(WebSize(500, 300)); 2196 webView->resize(WebSize(500, 300));
2194 webView->updateAllLifecyclePhases(); 2197 webView->updateAllLifecyclePhases();
2195 runPendingTasks(); 2198 runPendingTasks();
2196 2199
2197 WebGestureEvent event; 2200 WebGestureEvent event(WebInputEvent::GestureLongPress,
2198 event.type = WebInputEvent::GestureLongPress; 2201 WebInputEvent::NoModifiers,
2202 WebInputEvent::TimeStampForTesting);
2199 event.sourceDevice = WebGestureDeviceTouchscreen; 2203 event.sourceDevice = WebGestureDeviceTouchscreen;
2200 event.x = 10; 2204 event.x = 10;
2201 event.y = 10; 2205 event.y = 10;
2202 2206
2203 EXPECT_NE(WebInputEventResult::HandledSystem, 2207 EXPECT_NE(WebInputEventResult::HandledSystem,
2204 webView->handleInputEvent(event)); 2208 webView->handleInputEvent(event));
2205 2209
2206 HTMLElement* element = 2210 HTMLElement* element =
2207 toHTMLElement(webView->mainFrame()->document().getElementById("obj")); 2211 toHTMLElement(webView->mainFrame()->document().getElementById("obj"));
2208 EXPECT_FALSE(element->canStartSelection()); 2212 EXPECT_FALSE(element->canStartSelection());
2209 } 2213 }
2210 2214
2211 TEST_P(WebViewTest, LongPressObjectFallback) { 2215 TEST_P(WebViewTest, LongPressObjectFallback) {
2212 URLTestHelpers::registerMockedURLFromBaseURL( 2216 URLTestHelpers::registerMockedURLFromBaseURL(
2213 WebString::fromUTF8(m_baseURL.c_str()), 2217 WebString::fromUTF8(m_baseURL.c_str()),
2214 WebString::fromUTF8("long_press_object_fallback.html")); 2218 WebString::fromUTF8("long_press_object_fallback.html"));
2215 2219
2216 WebViewImpl* webView = m_webViewHelper.initializeAndLoad( 2220 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(
2217 m_baseURL + "long_press_object_fallback.html", true); 2221 m_baseURL + "long_press_object_fallback.html", true);
2218 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(true); 2222 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(true);
2219 webView->resize(WebSize(500, 300)); 2223 webView->resize(WebSize(500, 300));
2220 webView->updateAllLifecyclePhases(); 2224 webView->updateAllLifecyclePhases();
2221 runPendingTasks(); 2225 runPendingTasks();
2222 2226
2223 WebGestureEvent event; 2227 WebGestureEvent event(WebInputEvent::GestureLongPress,
2224 event.type = WebInputEvent::GestureLongPress; 2228 WebInputEvent::NoModifiers,
2229 WebInputEvent::TimeStampForTesting);
2225 event.sourceDevice = WebGestureDeviceTouchscreen; 2230 event.sourceDevice = WebGestureDeviceTouchscreen;
2226 event.x = 10; 2231 event.x = 10;
2227 event.y = 10; 2232 event.y = 10;
2228 2233
2229 EXPECT_EQ(WebInputEventResult::HandledSystem, 2234 EXPECT_EQ(WebInputEventResult::HandledSystem,
2230 webView->handleInputEvent(event)); 2235 webView->handleInputEvent(event));
2231 2236
2232 HTMLElement* element = 2237 HTMLElement* element =
2233 toHTMLElement(webView->mainFrame()->document().getElementById("obj")); 2238 toHTMLElement(webView->mainFrame()->document().getElementById("obj"));
2234 EXPECT_TRUE(element->canStartSelection()); 2239 EXPECT_TRUE(element->canStartSelection());
2235 } 2240 }
2236 2241
2237 TEST_P(WebViewTest, LongPressImage) { 2242 TEST_P(WebViewTest, LongPressImage) {
2238 URLTestHelpers::registerMockedURLFromBaseURL( 2243 URLTestHelpers::registerMockedURLFromBaseURL(
2239 WebString::fromUTF8(m_baseURL.c_str()), 2244 WebString::fromUTF8(m_baseURL.c_str()),
2240 WebString::fromUTF8("long_press_image.html")); 2245 WebString::fromUTF8("long_press_image.html"));
2241 2246
2242 WebViewImpl* webView = m_webViewHelper.initializeAndLoad( 2247 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(
2243 m_baseURL + "long_press_image.html", true); 2248 m_baseURL + "long_press_image.html", true);
2244 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(false); 2249 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(false);
2245 webView->resize(WebSize(500, 300)); 2250 webView->resize(WebSize(500, 300));
2246 webView->updateAllLifecyclePhases(); 2251 webView->updateAllLifecyclePhases();
2247 runPendingTasks(); 2252 runPendingTasks();
2248 2253
2249 WebGestureEvent event; 2254 WebGestureEvent event(WebInputEvent::GestureLongPress,
2250 event.type = WebInputEvent::GestureLongPress; 2255 WebInputEvent::NoModifiers,
2256 WebInputEvent::TimeStampForTesting);
2251 event.sourceDevice = WebGestureDeviceTouchscreen; 2257 event.sourceDevice = WebGestureDeviceTouchscreen;
2252 event.x = 10; 2258 event.x = 10;
2253 event.y = 10; 2259 event.y = 10;
2254 2260
2255 EXPECT_EQ(WebInputEventResult::HandledSystem, 2261 EXPECT_EQ(WebInputEventResult::HandledSystem,
2256 webView->handleInputEvent(event)); 2262 webView->handleInputEvent(event));
2257 } 2263 }
2258 2264
2259 TEST_P(WebViewTest, LongPressVideo) { 2265 TEST_P(WebViewTest, LongPressVideo) {
2260 URLTestHelpers::registerMockedURLFromBaseURL( 2266 URLTestHelpers::registerMockedURLFromBaseURL(
2261 WebString::fromUTF8(m_baseURL.c_str()), 2267 WebString::fromUTF8(m_baseURL.c_str()),
2262 WebString::fromUTF8("long_press_video.html")); 2268 WebString::fromUTF8("long_press_video.html"));
2263 2269
2264 WebViewImpl* webView = m_webViewHelper.initializeAndLoad( 2270 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(
2265 m_baseURL + "long_press_video.html", true); 2271 m_baseURL + "long_press_video.html", true);
2266 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(false); 2272 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(false);
2267 webView->resize(WebSize(500, 300)); 2273 webView->resize(WebSize(500, 300));
2268 webView->updateAllLifecyclePhases(); 2274 webView->updateAllLifecyclePhases();
2269 runPendingTasks(); 2275 runPendingTasks();
2270 2276
2271 WebGestureEvent event; 2277 WebGestureEvent event(WebInputEvent::GestureLongPress,
2272 event.type = WebInputEvent::GestureLongPress; 2278 WebInputEvent::NoModifiers,
2279 WebInputEvent::TimeStampForTesting);
2273 event.sourceDevice = WebGestureDeviceTouchscreen; 2280 event.sourceDevice = WebGestureDeviceTouchscreen;
2274 event.x = 10; 2281 event.x = 10;
2275 event.y = 10; 2282 event.y = 10;
2276 2283
2277 EXPECT_EQ(WebInputEventResult::HandledSystem, 2284 EXPECT_EQ(WebInputEventResult::HandledSystem,
2278 webView->handleInputEvent(event)); 2285 webView->handleInputEvent(event));
2279 } 2286 }
2280 2287
2281 TEST_P(WebViewTest, LongPressLink) { 2288 TEST_P(WebViewTest, LongPressLink) {
2282 URLTestHelpers::registerMockedURLFromBaseURL( 2289 URLTestHelpers::registerMockedURLFromBaseURL(
2283 WebString::fromUTF8(m_baseURL.c_str()), 2290 WebString::fromUTF8(m_baseURL.c_str()),
2284 WebString::fromUTF8("long_press_link.html")); 2291 WebString::fromUTF8("long_press_link.html"));
2285 2292
2286 WebViewImpl* webView = m_webViewHelper.initializeAndLoad( 2293 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(
2287 m_baseURL + "long_press_link.html", true); 2294 m_baseURL + "long_press_link.html", true);
2288 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(false); 2295 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(false);
2289 webView->resize(WebSize(500, 300)); 2296 webView->resize(WebSize(500, 300));
2290 webView->updateAllLifecyclePhases(); 2297 webView->updateAllLifecyclePhases();
2291 runPendingTasks(); 2298 runPendingTasks();
2292 2299
2293 WebGestureEvent event; 2300 WebGestureEvent event(WebInputEvent::GestureLongPress,
2294 event.type = WebInputEvent::GestureLongPress; 2301 WebInputEvent::NoModifiers,
2302 WebInputEvent::TimeStampForTesting);
2295 event.sourceDevice = WebGestureDeviceTouchscreen; 2303 event.sourceDevice = WebGestureDeviceTouchscreen;
2296 event.x = 500; 2304 event.x = 500;
2297 event.y = 300; 2305 event.y = 300;
2298 2306
2299 EXPECT_EQ(WebInputEventResult::HandledSystem, 2307 EXPECT_EQ(WebInputEventResult::HandledSystem,
2300 webView->handleInputEvent(event)); 2308 webView->handleInputEvent(event));
2301 } 2309 }
2302 2310
2303 TEST_P(WebViewTest, showContextMenuOnLongPressingLinks) { 2311 TEST_P(WebViewTest, showContextMenuOnLongPressingLinks) {
2304 URLTestHelpers::registerMockedURLFromBaseURL( 2312 URLTestHelpers::registerMockedURLFromBaseURL(
(...skipping 27 matching lines...) Expand all
2332 WebString::fromUTF8(m_baseURL.c_str()), 2340 WebString::fromUTF8(m_baseURL.c_str()),
2333 WebString::fromUTF8("long_press_empty_editable_selection.html")); 2341 WebString::fromUTF8("long_press_empty_editable_selection.html"));
2334 2342
2335 WebViewImpl* webView = m_webViewHelper.initializeAndLoad( 2343 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(
2336 m_baseURL + "long_press_empty_editable_selection.html", true); 2344 m_baseURL + "long_press_empty_editable_selection.html", true);
2337 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(false); 2345 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(false);
2338 webView->resize(WebSize(500, 300)); 2346 webView->resize(WebSize(500, 300));
2339 webView->updateAllLifecyclePhases(); 2347 webView->updateAllLifecyclePhases();
2340 runPendingTasks(); 2348 runPendingTasks();
2341 2349
2342 WebGestureEvent event; 2350 WebGestureEvent event(WebInputEvent::GestureLongPress,
2343 event.type = WebInputEvent::GestureLongPress; 2351 WebInputEvent::NoModifiers,
2352 WebInputEvent::TimeStampForTesting);
2344 event.sourceDevice = WebGestureDeviceTouchscreen; 2353 event.sourceDevice = WebGestureDeviceTouchscreen;
2345 event.x = 10; 2354 event.x = 10;
2346 event.y = 10; 2355 event.y = 10;
2347 2356
2348 EXPECT_EQ(WebInputEventResult::HandledSystem, 2357 EXPECT_EQ(WebInputEventResult::HandledSystem,
2349 webView->handleInputEvent(event)); 2358 webView->handleInputEvent(event));
2350 } 2359 }
2351 2360
2352 TEST_P(WebViewTest, LongPressEmptyNonEditableSelection) { 2361 TEST_P(WebViewTest, LongPressEmptyNonEditableSelection) {
2353 URLTestHelpers::registerMockedURLFromBaseURL( 2362 URLTestHelpers::registerMockedURLFromBaseURL(
2354 WebString::fromUTF8(m_baseURL.c_str()), 2363 WebString::fromUTF8(m_baseURL.c_str()),
2355 WebString::fromUTF8("long_press_image.html")); 2364 WebString::fromUTF8("long_press_image.html"));
2356 2365
2357 WebViewImpl* webView = m_webViewHelper.initializeAndLoad( 2366 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(
2358 m_baseURL + "long_press_image.html", true); 2367 m_baseURL + "long_press_image.html", true);
2359 webView->resize(WebSize(500, 500)); 2368 webView->resize(WebSize(500, 500));
2360 webView->updateAllLifecyclePhases(); 2369 webView->updateAllLifecyclePhases();
2361 runPendingTasks(); 2370 runPendingTasks();
2362 2371
2363 WebGestureEvent event; 2372 WebGestureEvent event(WebInputEvent::GestureLongPress,
2364 event.type = WebInputEvent::GestureLongPress; 2373 WebInputEvent::NoModifiers,
2374 WebInputEvent::TimeStampForTesting);
2365 event.sourceDevice = WebGestureDeviceTouchscreen; 2375 event.sourceDevice = WebGestureDeviceTouchscreen;
2366 event.x = 300; 2376 event.x = 300;
2367 event.y = 300; 2377 event.y = 300;
2368 WebLocalFrameImpl* frame = webView->mainFrameImpl(); 2378 WebLocalFrameImpl* frame = webView->mainFrameImpl();
2369 2379
2370 EXPECT_EQ(WebInputEventResult::HandledSystem, 2380 EXPECT_EQ(WebInputEventResult::HandledSystem,
2371 webView->handleInputEvent(event)); 2381 webView->handleInputEvent(event));
2372 EXPECT_TRUE(frame->selectionAsText().isEmpty()); 2382 EXPECT_TRUE(frame->selectionAsText().isEmpty());
2373 } 2383 }
2374 2384
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
2408 2418
2409 WebString blanklinestextbox = WebString::fromUTF8("blanklinestextbox"); 2419 WebString blanklinestextbox = WebString::fromUTF8("blanklinestextbox");
2410 WebLocalFrameImpl* frame = webView->mainFrameImpl(); 2420 WebLocalFrameImpl* frame = webView->mainFrameImpl();
2411 2421
2412 // Long-press on carriage returns. 2422 // Long-press on carriage returns.
2413 EXPECT_TRUE( 2423 EXPECT_TRUE(
2414 tapElementById(WebInputEvent::GestureLongPress, blanklinestextbox)); 2424 tapElementById(WebInputEvent::GestureLongPress, blanklinestextbox));
2415 EXPECT_TRUE(frame->selectionAsText().isEmpty()); 2425 EXPECT_TRUE(frame->selectionAsText().isEmpty());
2416 2426
2417 // Double-tap on carriage returns. 2427 // Double-tap on carriage returns.
2418 WebGestureEvent event; 2428 WebGestureEvent event(WebInputEvent::GestureTap, WebInputEvent::NoModifiers,
2419 event.type = WebInputEvent::GestureTap; 2429 WebInputEvent::TimeStampForTesting);
2420 event.sourceDevice = WebGestureDeviceTouchscreen; 2430 event.sourceDevice = WebGestureDeviceTouchscreen;
2421 event.x = 100; 2431 event.x = 100;
2422 event.y = 25; 2432 event.y = 25;
2423 event.data.tap.tapCount = 2; 2433 event.data.tap.tapCount = 2;
2424 2434
2425 webView->handleInputEvent(event); 2435 webView->handleInputEvent(event);
2426 EXPECT_TRUE(frame->selectionAsText().isEmpty()); 2436 EXPECT_TRUE(frame->selectionAsText().isEmpty());
2427 2437
2428 HTMLTextAreaElement* textAreaElement = toHTMLTextAreaElement( 2438 HTMLTextAreaElement* textAreaElement = toHTMLTextAreaElement(
2429 webView->mainFrame()->document().getElementById(blanklinestextbox)); 2439 webView->mainFrame()->document().getElementById(blanklinestextbox));
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
2483 WebString::fromUTF8(m_baseURL.c_str()), WebString::fromUTF8("form.html")); 2493 WebString::fromUTF8(m_baseURL.c_str()), WebString::fromUTF8("form.html"));
2484 WebViewImpl* webView = 2494 WebViewImpl* webView =
2485 m_webViewHelper.initializeAndLoad(m_baseURL + "form.html", true); 2495 m_webViewHelper.initializeAndLoad(m_baseURL + "form.html", true);
2486 2496
2487 webView->setInitialFocus(false); 2497 webView->setInitialFocus(false);
2488 runPendingTasks(); 2498 runPendingTasks();
2489 2499
2490 // We suspend caret blinking when pressing with mouse right button. 2500 // We suspend caret blinking when pressing with mouse right button.
2491 // Note that we do not send MouseUp event here since it will be consumed 2501 // Note that we do not send MouseUp event here since it will be consumed
2492 // by the context menu once it shows up. 2502 // by the context menu once it shows up.
2493 WebMouseEvent mouseEvent; 2503 WebMouseEvent mouseEvent(WebInputEvent::MouseDown, WebInputEvent::NoModifiers,
2504 WebInputEvent::TimeStampForTesting);
2505
2494 mouseEvent.button = WebMouseEvent::Button::Right; 2506 mouseEvent.button = WebMouseEvent::Button::Right;
2495 mouseEvent.x = 1; 2507 mouseEvent.x = 1;
2496 mouseEvent.y = 1; 2508 mouseEvent.y = 1;
2497 mouseEvent.clickCount = 1; 2509 mouseEvent.clickCount = 1;
2498 mouseEvent.type = WebInputEvent::MouseDown;
2499 webView->handleInputEvent(mouseEvent); 2510 webView->handleInputEvent(mouseEvent);
2500 runPendingTasks(); 2511 runPendingTasks();
2501 2512
2502 WebLocalFrameImpl* mainFrame = webView->mainFrameImpl(); 2513 WebLocalFrameImpl* mainFrame = webView->mainFrameImpl();
2503 EXPECT_TRUE(mainFrame->frame()->selection().isCaretBlinkingSuspended()); 2514 EXPECT_TRUE(mainFrame->frame()->selection().isCaretBlinkingSuspended());
2504 2515
2505 // Caret blinking is still suspended after showing context menu. 2516 // Caret blinking is still suspended after showing context menu.
2506 webView->showContextMenu(); 2517 webView->showContextMenu();
2507 EXPECT_TRUE(mainFrame->frame()->selection().isCaretBlinkingSuspended()); 2518 EXPECT_TRUE(mainFrame->frame()->selection().isCaretBlinkingSuspended());
2508 2519
(...skipping 28 matching lines...) Expand all
2537 URLTestHelpers::registerMockedURLFromBaseURL( 2548 URLTestHelpers::registerMockedURLFromBaseURL(
2538 WebString::fromUTF8(m_baseURL.c_str()), 2549 WebString::fromUTF8(m_baseURL.c_str()),
2539 WebString::fromUTF8("content-width-1000.html")); 2550 WebString::fromUTF8("content-width-1000.html"));
2540 2551
2541 WebViewImpl* webView = m_webViewHelper.initializeAndLoad( 2552 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(
2542 m_baseURL + "content-width-1000.html", true); 2553 m_baseURL + "content-width-1000.html", true);
2543 webView->resize(WebSize(100, 100)); 2554 webView->resize(WebSize(100, 100));
2544 webView->updateAllLifecyclePhases(); 2555 webView->updateAllLifecyclePhases();
2545 runPendingTasks(); 2556 runPendingTasks();
2546 2557
2547 WebKeyboardEvent keyEvent; 2558 WebKeyboardEvent keyEvent(WebInputEvent::RawKeyDown,
2559 WebInputEvent::NoModifiers,
2560 WebInputEvent::TimeStampForTesting);
2548 2561
2549 // RawKeyDown pagedown should be handled. 2562 // RawKeyDown pagedown should be handled.
2550 keyEvent.windowsKeyCode = VKEY_NEXT; 2563 keyEvent.windowsKeyCode = VKEY_NEXT;
2551 keyEvent.type = WebInputEvent::RawKeyDown;
2552 EXPECT_EQ(WebInputEventResult::HandledSystem, 2564 EXPECT_EQ(WebInputEventResult::HandledSystem,
2553 webView->handleInputEvent(keyEvent)); 2565 webView->handleInputEvent(keyEvent));
2554 keyEvent.type = WebInputEvent::KeyUp; 2566 keyEvent.setType(WebInputEvent::KeyUp);
2555 webView->handleInputEvent(keyEvent); 2567 webView->handleInputEvent(keyEvent);
2556 2568
2557 // Coalesced KeyDown arrow-down should be handled. 2569 // Coalesced KeyDown arrow-down should be handled.
2558 keyEvent.windowsKeyCode = VKEY_DOWN; 2570 keyEvent.windowsKeyCode = VKEY_DOWN;
2559 keyEvent.type = WebInputEvent::KeyDown; 2571 keyEvent.setType(WebInputEvent::KeyDown);
2560 EXPECT_EQ(WebInputEventResult::HandledSystem, 2572 EXPECT_EQ(WebInputEventResult::HandledSystem,
2561 webView->handleInputEvent(keyEvent)); 2573 webView->handleInputEvent(keyEvent));
2562 keyEvent.type = WebInputEvent::KeyUp; 2574 keyEvent.setType(WebInputEvent::KeyUp);
2563 webView->handleInputEvent(keyEvent); 2575 webView->handleInputEvent(keyEvent);
2564 2576
2565 // Ctrl-Home should be handled... 2577 // Ctrl-Home should be handled...
2566 keyEvent.windowsKeyCode = VKEY_HOME; 2578 keyEvent.windowsKeyCode = VKEY_HOME;
2567 keyEvent.modifiers = WebInputEvent::ControlKey; 2579 keyEvent.setModifiers(WebInputEvent::ControlKey);
2568 keyEvent.type = WebInputEvent::RawKeyDown; 2580 keyEvent.setType(WebInputEvent::RawKeyDown);
2569 EXPECT_EQ(WebInputEventResult::NotHandled, 2581 EXPECT_EQ(WebInputEventResult::NotHandled,
2570 webView->handleInputEvent(keyEvent)); 2582 webView->handleInputEvent(keyEvent));
2571 keyEvent.type = WebInputEvent::KeyUp; 2583 keyEvent.setType(WebInputEvent::KeyUp);
2572 webView->handleInputEvent(keyEvent); 2584 webView->handleInputEvent(keyEvent);
2573 2585
2574 // But Ctrl-Down should not. 2586 // But Ctrl-Down should not.
2575 keyEvent.windowsKeyCode = VKEY_DOWN; 2587 keyEvent.windowsKeyCode = VKEY_DOWN;
2576 keyEvent.modifiers = WebInputEvent::ControlKey; 2588 keyEvent.setModifiers(WebInputEvent::ControlKey);
2577 keyEvent.type = WebInputEvent::RawKeyDown; 2589 keyEvent.setType(WebInputEvent::RawKeyDown);
2578 EXPECT_EQ(WebInputEventResult::NotHandled, 2590 EXPECT_EQ(WebInputEventResult::NotHandled,
2579 webView->handleInputEvent(keyEvent)); 2591 webView->handleInputEvent(keyEvent));
2580 keyEvent.type = WebInputEvent::KeyUp; 2592 keyEvent.setType(WebInputEvent::KeyUp);
2581 webView->handleInputEvent(keyEvent); 2593 webView->handleInputEvent(keyEvent);
2582 2594
2583 // Shift, meta, and alt should not be handled. 2595 // Shift, meta, and alt should not be handled.
2584 keyEvent.windowsKeyCode = VKEY_NEXT; 2596 keyEvent.windowsKeyCode = VKEY_NEXT;
2585 keyEvent.modifiers = WebInputEvent::ShiftKey; 2597 keyEvent.setModifiers(WebInputEvent::ShiftKey);
2586 keyEvent.type = WebInputEvent::RawKeyDown; 2598 keyEvent.setType(WebInputEvent::RawKeyDown);
2587 EXPECT_EQ(WebInputEventResult::NotHandled, 2599 EXPECT_EQ(WebInputEventResult::NotHandled,
2588 webView->handleInputEvent(keyEvent)); 2600 webView->handleInputEvent(keyEvent));
2589 keyEvent.type = WebInputEvent::KeyUp; 2601 keyEvent.setType(WebInputEvent::KeyUp);
2590 webView->handleInputEvent(keyEvent); 2602 webView->handleInputEvent(keyEvent);
2591 2603
2592 keyEvent.windowsKeyCode = VKEY_NEXT; 2604 keyEvent.windowsKeyCode = VKEY_NEXT;
2593 keyEvent.modifiers = WebInputEvent::MetaKey; 2605 keyEvent.setModifiers(WebInputEvent::MetaKey);
2594 keyEvent.type = WebInputEvent::RawKeyDown; 2606 keyEvent.setType(WebInputEvent::RawKeyDown);
2595 EXPECT_EQ(WebInputEventResult::NotHandled, 2607 EXPECT_EQ(WebInputEventResult::NotHandled,
2596 webView->handleInputEvent(keyEvent)); 2608 webView->handleInputEvent(keyEvent));
2597 keyEvent.type = WebInputEvent::KeyUp; 2609 keyEvent.setType(WebInputEvent::KeyUp);
2598 webView->handleInputEvent(keyEvent); 2610 webView->handleInputEvent(keyEvent);
2599 2611
2600 keyEvent.windowsKeyCode = VKEY_NEXT; 2612 keyEvent.windowsKeyCode = VKEY_NEXT;
2601 keyEvent.modifiers = WebInputEvent::AltKey; 2613 keyEvent.setModifiers(WebInputEvent::AltKey);
2602 keyEvent.type = WebInputEvent::RawKeyDown; 2614 keyEvent.setType(WebInputEvent::RawKeyDown);
2603 EXPECT_EQ(WebInputEventResult::NotHandled, 2615 EXPECT_EQ(WebInputEventResult::NotHandled,
2604 webView->handleInputEvent(keyEvent)); 2616 webView->handleInputEvent(keyEvent));
2605 keyEvent.type = WebInputEvent::KeyUp; 2617 keyEvent.setType(WebInputEvent::KeyUp);
2606 webView->handleInputEvent(keyEvent); 2618 webView->handleInputEvent(keyEvent);
2607 2619
2608 // System-key labeled Alt-Down (as in Windows) should do nothing, 2620 // System-key labeled Alt-Down (as in Windows) should do nothing,
2609 // but non-system-key labeled Alt-Down (as in Mac) should be handled 2621 // but non-system-key labeled Alt-Down (as in Mac) should be handled
2610 // as a page-down. 2622 // as a page-down.
2611 keyEvent.windowsKeyCode = VKEY_DOWN; 2623 keyEvent.windowsKeyCode = VKEY_DOWN;
2612 keyEvent.modifiers = WebInputEvent::AltKey; 2624 keyEvent.setModifiers(WebInputEvent::AltKey);
2613 keyEvent.isSystemKey = true; 2625 keyEvent.isSystemKey = true;
2614 keyEvent.type = WebInputEvent::RawKeyDown; 2626 keyEvent.setType(WebInputEvent::RawKeyDown);
2615 EXPECT_EQ(WebInputEventResult::NotHandled, 2627 EXPECT_EQ(WebInputEventResult::NotHandled,
2616 webView->handleInputEvent(keyEvent)); 2628 webView->handleInputEvent(keyEvent));
2617 keyEvent.type = WebInputEvent::KeyUp; 2629 keyEvent.setType(WebInputEvent::KeyUp);
2618 webView->handleInputEvent(keyEvent); 2630 webView->handleInputEvent(keyEvent);
2619 2631
2620 keyEvent.windowsKeyCode = VKEY_DOWN; 2632 keyEvent.windowsKeyCode = VKEY_DOWN;
2621 keyEvent.modifiers = WebInputEvent::AltKey; 2633 keyEvent.setModifiers(WebInputEvent::AltKey);
2622 keyEvent.isSystemKey = false; 2634 keyEvent.isSystemKey = false;
2623 keyEvent.type = WebInputEvent::RawKeyDown; 2635 keyEvent.setType(WebInputEvent::RawKeyDown);
2624 EXPECT_EQ(WebInputEventResult::HandledSystem, 2636 EXPECT_EQ(WebInputEventResult::HandledSystem,
2625 webView->handleInputEvent(keyEvent)); 2637 webView->handleInputEvent(keyEvent));
2626 keyEvent.type = WebInputEvent::KeyUp; 2638 keyEvent.setType(WebInputEvent::KeyUp);
2627 webView->handleInputEvent(keyEvent); 2639 webView->handleInputEvent(keyEvent);
2628 } 2640 }
2629 2641
2630 static void configueCompositingWebView(WebSettings* settings) { 2642 static void configueCompositingWebView(WebSettings* settings) {
2631 settings->setAcceleratedCompositingEnabled(true); 2643 settings->setAcceleratedCompositingEnabled(true);
2632 settings->setPreferCompositingToLCDTextEnabled(true); 2644 settings->setPreferCompositingToLCDTextEnabled(true);
2633 } 2645 }
2634 2646
2635 TEST_P(WebViewTest, ShowPressOnTransformedLink) { 2647 TEST_P(WebViewTest, ShowPressOnTransformedLink) {
2636 std::unique_ptr<FrameTestHelpers::TestWebViewClient> 2648 std::unique_ptr<FrameTestHelpers::TestWebViewClient>
2637 fakeCompositingWebViewClient = 2649 fakeCompositingWebViewClient =
2638 WTF::makeUnique<FrameTestHelpers::TestWebViewClient>(); 2650 WTF::makeUnique<FrameTestHelpers::TestWebViewClient>();
2639 FrameTestHelpers::WebViewHelper webViewHelper; 2651 FrameTestHelpers::WebViewHelper webViewHelper;
2640 WebViewImpl* webViewImpl = webViewHelper.initialize( 2652 WebViewImpl* webViewImpl = webViewHelper.initialize(
2641 true, nullptr, fakeCompositingWebViewClient.get(), nullptr, 2653 true, nullptr, fakeCompositingWebViewClient.get(), nullptr,
2642 &configueCompositingWebView); 2654 &configueCompositingWebView);
2643 2655
2644 int pageWidth = 640; 2656 int pageWidth = 640;
2645 int pageHeight = 480; 2657 int pageHeight = 480;
2646 webViewImpl->resize(WebSize(pageWidth, pageHeight)); 2658 webViewImpl->resize(WebSize(pageWidth, pageHeight));
2647 2659
2648 WebURL baseURL = URLTestHelpers::toKURL("http://example.com/"); 2660 WebURL baseURL = URLTestHelpers::toKURL("http://example.com/");
2649 FrameTestHelpers::loadHTMLString( 2661 FrameTestHelpers::loadHTMLString(
2650 webViewImpl->mainFrame(), 2662 webViewImpl->mainFrame(),
2651 "<a href='http://www.test.com' style='position: absolute; left: 20px; " 2663 "<a href='http://www.test.com' style='position: absolute; left: 20px; "
2652 "top: 20px; width: 200px; transform:translateZ(0);'>A link to " 2664 "top: 20px; width: 200px; transform:translateZ(0);'>A link to "
2653 "highlight</a>", 2665 "highlight</a>",
2654 baseURL); 2666 baseURL);
2655 2667
2656 WebGestureEvent event; 2668 WebGestureEvent event(WebInputEvent::GestureShowPress,
2657 event.type = WebInputEvent::GestureShowPress; 2669 WebInputEvent::NoModifiers,
2670 WebInputEvent::TimeStampForTesting);
2658 event.sourceDevice = WebGestureDeviceTouchscreen; 2671 event.sourceDevice = WebGestureDeviceTouchscreen;
2659 event.x = 20; 2672 event.x = 20;
2660 event.y = 20; 2673 event.y = 20;
2661 2674
2662 // Just make sure we don't hit any asserts. 2675 // Just make sure we don't hit any asserts.
2663 webViewImpl->handleInputEvent(event); 2676 webViewImpl->handleInputEvent(event);
2664 } 2677 }
2665 2678
2666 class MockAutofillClient : public WebAutofillClient { 2679 class MockAutofillClient : public WebAutofillClient {
2667 public: 2680 public:
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
2771 frame->setEditableSelectionOffsets(6, 6); 2784 frame->setEditableSelectionOffsets(6, 6);
2772 WebInputMethodController* activeInputMethodController = 2785 WebInputMethodController* activeInputMethodController =
2773 frame->frameWidget()->getActiveWebInputMethodController(); 2786 frame->frameWidget()->getActiveWebInputMethodController();
2774 EXPECT_TRUE(activeInputMethodController->setComposition( 2787 EXPECT_TRUE(activeInputMethodController->setComposition(
2775 "fghij", emptyUnderlines, 0, 5)); 2788 "fghij", emptyUnderlines, 0, 5));
2776 frame->setEditableSelectionOffsets(11, 11); 2789 frame->setEditableSelectionOffsets(11, 11);
2777 verifySelectionAndComposition(webView, 11, 11, 6, 11, "initial case"); 2790 verifySelectionAndComposition(webView, 11, 11, 6, 11, "initial case");
2778 2791
2779 // Press Backspace and verify composition didn't get cancelled. This is to 2792 // Press Backspace and verify composition didn't get cancelled. This is to
2780 // verify the fix for crbug.com/429916. 2793 // verify the fix for crbug.com/429916.
2781 WebKeyboardEvent keyEvent; 2794 WebKeyboardEvent keyEvent(WebInputEvent::RawKeyDown,
2795 WebInputEvent::NoModifiers,
2796 WebInputEvent::TimeStampForTesting);
2782 keyEvent.domKey = Platform::current()->domKeyEnumFromString("\b"); 2797 keyEvent.domKey = Platform::current()->domKeyEnumFromString("\b");
2783 keyEvent.windowsKeyCode = VKEY_BACK; 2798 keyEvent.windowsKeyCode = VKEY_BACK;
2784 keyEvent.type = WebInputEvent::RawKeyDown;
2785 webView->handleInputEvent(keyEvent); 2799 webView->handleInputEvent(keyEvent);
2786 2800
2787 frame->setEditableSelectionOffsets(6, 6); 2801 frame->setEditableSelectionOffsets(6, 6);
2788 EXPECT_TRUE(activeInputMethodController->setComposition( 2802 EXPECT_TRUE(activeInputMethodController->setComposition(
2789 "fghi", emptyUnderlines, 0, 4)); 2803 "fghi", emptyUnderlines, 0, 4));
2790 frame->setEditableSelectionOffsets(10, 10); 2804 frame->setEditableSelectionOffsets(10, 10);
2791 verifySelectionAndComposition(webView, 10, 10, 6, 10, 2805 verifySelectionAndComposition(webView, 10, 10, 6, 10,
2792 "after pressing Backspace"); 2806 "after pressing Backspace");
2793 2807
2794 keyEvent.type = WebInputEvent::KeyUp; 2808 keyEvent.setType(WebInputEvent::KeyUp);
2795 webView->handleInputEvent(keyEvent); 2809 webView->handleInputEvent(keyEvent);
2796 2810
2797 webView->advanceFocus(false); 2811 webView->advanceFocus(false);
2798 } 2812 }
2799 2813
2800 frame->setAutofillClient(0); 2814 frame->setAutofillClient(0);
2801 } 2815 }
2802 2816
2803 TEST_P(WebViewTest, FinishComposingTextTriggersAutofillTextChange) { 2817 TEST_P(WebViewTest, FinishComposingTextTriggersAutofillTextChange) {
2804 URLTestHelpers::registerMockedURLFromBaseURL( 2818 URLTestHelpers::registerMockedURLFromBaseURL(
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
2975 2989
2976 WebElement element = 2990 WebElement element =
2977 webView->mainFrame()->document().getElementById("message"); 2991 webView->mainFrame()->document().getElementById("message");
2978 EXPECT_STREQ("DOMFocusOutDOMFocusIn", element.textContent().utf8().data()); 2992 EXPECT_STREQ("DOMFocusOutDOMFocusIn", element.textContent().utf8().data());
2979 } 2993 }
2980 2994
2981 static void openDateTimeChooser(WebView* webView, 2995 static void openDateTimeChooser(WebView* webView,
2982 HTMLInputElement* inputElement) { 2996 HTMLInputElement* inputElement) {
2983 inputElement->focus(); 2997 inputElement->focus();
2984 2998
2985 WebKeyboardEvent keyEvent; 2999 WebKeyboardEvent keyEvent(WebInputEvent::RawKeyDown,
3000 WebInputEvent::NoModifiers,
3001 WebInputEvent::TimeStampForTesting);
2986 keyEvent.domKey = Platform::current()->domKeyEnumFromString(" "); 3002 keyEvent.domKey = Platform::current()->domKeyEnumFromString(" ");
2987 keyEvent.windowsKeyCode = VKEY_SPACE; 3003 keyEvent.windowsKeyCode = VKEY_SPACE;
2988 keyEvent.type = WebInputEvent::RawKeyDown;
2989 webView->handleInputEvent(keyEvent); 3004 webView->handleInputEvent(keyEvent);
2990 3005
2991 keyEvent.type = WebInputEvent::KeyUp; 3006 keyEvent.setType(WebInputEvent::KeyUp);
2992 webView->handleInputEvent(keyEvent); 3007 webView->handleInputEvent(keyEvent);
2993 } 3008 }
2994 3009
2995 // TODO(crbug.com/605112) This test is crashing on Android (Nexus 4) bot. 3010 // TODO(crbug.com/605112) This test is crashing on Android (Nexus 4) bot.
2996 #if OS(ANDROID) 3011 #if OS(ANDROID)
2997 TEST_P(WebViewTest, DISABLED_ChooseValueFromDateTimeChooser) { 3012 TEST_P(WebViewTest, DISABLED_ChooseValueFromDateTimeChooser) {
2998 #else 3013 #else
2999 TEST_P(WebViewTest, ChooseValueFromDateTimeChooser) { 3014 TEST_P(WebViewTest, ChooseValueFromDateTimeChooser) {
3000 #endif 3015 #endif
3001 bool originalMultipleFieldsFlag = 3016 bool originalMultipleFieldsFlag =
(...skipping 554 matching lines...) Expand 10 before | Expand all | Expand 10 after
3556 WebString::fromUTF8(m_baseURL.c_str()), WebString::fromUTF8("form.html")); 3571 WebString::fromUTF8(m_baseURL.c_str()), WebString::fromUTF8("form.html"));
3557 MockAutofillClient client; 3572 MockAutofillClient client;
3558 WebViewImpl* webView = 3573 WebViewImpl* webView =
3559 m_webViewHelper.initializeAndLoad(m_baseURL + "form.html", true); 3574 m_webViewHelper.initializeAndLoad(m_baseURL + "form.html", true);
3560 WebLocalFrameImpl* frame = webView->mainFrameImpl(); 3575 WebLocalFrameImpl* frame = webView->mainFrameImpl();
3561 frame->setAutofillClient(&client); 3576 frame->setAutofillClient(&client);
3562 webView->setInitialFocus(false); 3577 webView->setInitialFocus(false);
3563 3578
3564 EXPECT_EQ(0, client.getUserGestureNotificationsCount()); 3579 EXPECT_EQ(0, client.getUserGestureNotificationsCount());
3565 3580
3566 WebKeyboardEvent keyEvent; 3581 WebKeyboardEvent keyEvent(WebInputEvent::RawKeyDown,
3582 WebInputEvent::NoModifiers,
3583 WebInputEvent::TimeStampForTesting);
3567 keyEvent.domKey = Platform::current()->domKeyEnumFromString(" "); 3584 keyEvent.domKey = Platform::current()->domKeyEnumFromString(" ");
3568 keyEvent.windowsKeyCode = VKEY_SPACE; 3585 keyEvent.windowsKeyCode = VKEY_SPACE;
3569 keyEvent.type = WebInputEvent::RawKeyDown;
3570 webView->handleInputEvent(keyEvent); 3586 webView->handleInputEvent(keyEvent);
3571 keyEvent.type = WebInputEvent::KeyUp; 3587 keyEvent.setType(WebInputEvent::KeyUp);
3572 webView->handleInputEvent(keyEvent); 3588 webView->handleInputEvent(keyEvent);
3573 3589
3574 EXPECT_EQ(1, client.getUserGestureNotificationsCount()); 3590 EXPECT_EQ(1, client.getUserGestureNotificationsCount());
3575 frame->setAutofillClient(0); 3591 frame->setAutofillClient(0);
3576 } 3592 }
3577 3593
3578 TEST_P(WebViewTest, FirstUserGestureObservedMouseEvent) { 3594 TEST_P(WebViewTest, FirstUserGestureObservedMouseEvent) {
3579 URLTestHelpers::registerMockedURLFromBaseURL( 3595 URLTestHelpers::registerMockedURLFromBaseURL(
3580 WebString::fromUTF8(m_baseURL.c_str()), WebString::fromUTF8("form.html")); 3596 WebString::fromUTF8(m_baseURL.c_str()), WebString::fromUTF8("form.html"));
3581 MockAutofillClient client; 3597 MockAutofillClient client;
3582 WebViewImpl* webView = 3598 WebViewImpl* webView =
3583 m_webViewHelper.initializeAndLoad(m_baseURL + "form.html", true); 3599 m_webViewHelper.initializeAndLoad(m_baseURL + "form.html", true);
3584 WebLocalFrameImpl* frame = webView->mainFrameImpl(); 3600 WebLocalFrameImpl* frame = webView->mainFrameImpl();
3585 frame->setAutofillClient(&client); 3601 frame->setAutofillClient(&client);
3586 webView->setInitialFocus(false); 3602 webView->setInitialFocus(false);
3587 3603
3588 EXPECT_EQ(0, client.getUserGestureNotificationsCount()); 3604 EXPECT_EQ(0, client.getUserGestureNotificationsCount());
3589 3605
3590 WebMouseEvent mouseEvent; 3606 WebMouseEvent mouseEvent(WebInputEvent::MouseDown, WebInputEvent::NoModifiers,
3607 WebInputEvent::TimeStampForTesting);
3591 mouseEvent.button = WebMouseEvent::Button::Left; 3608 mouseEvent.button = WebMouseEvent::Button::Left;
3592 mouseEvent.x = 1; 3609 mouseEvent.x = 1;
3593 mouseEvent.y = 1; 3610 mouseEvent.y = 1;
3594 mouseEvent.clickCount = 1; 3611 mouseEvent.clickCount = 1;
3595 mouseEvent.type = WebInputEvent::MouseDown;
3596 webView->handleInputEvent(mouseEvent); 3612 webView->handleInputEvent(mouseEvent);
3597 mouseEvent.type = WebInputEvent::MouseUp; 3613 mouseEvent.setType(WebInputEvent::MouseUp);
3598 webView->handleInputEvent(mouseEvent); 3614 webView->handleInputEvent(mouseEvent);
3599 3615
3600 EXPECT_EQ(1, client.getUserGestureNotificationsCount()); 3616 EXPECT_EQ(1, client.getUserGestureNotificationsCount());
3601 frame->setAutofillClient(0); 3617 frame->setAutofillClient(0);
3602 } 3618 }
3603 3619
3604 TEST_P(WebViewTest, FirstUserGestureObservedGestureTap) { 3620 TEST_P(WebViewTest, FirstUserGestureObservedGestureTap) {
3605 URLTestHelpers::registerMockedURLFromBaseURL( 3621 URLTestHelpers::registerMockedURLFromBaseURL(
3606 WebString::fromUTF8(m_baseURL.c_str()), 3622 WebString::fromUTF8(m_baseURL.c_str()),
3607 WebString::fromUTF8("longpress_selection.html")); 3623 WebString::fromUTF8("longpress_selection.html"));
(...skipping 669 matching lines...) Expand 10 before | Expand all | Expand 10 after
4277 .translate(50, 55) 4293 .translate(50, 55)
4278 .scale(1. / 2.f); 4294 .scale(1. / 2.f);
4279 EXPECT_EQ(expectedMatrix, 4295 EXPECT_EQ(expectedMatrix,
4280 webViewImpl->getDeviceEmulationTransformForTesting()); 4296 webViewImpl->getDeviceEmulationTransformForTesting());
4281 // visibleContentRect doesn't change. 4297 // visibleContentRect doesn't change.
4282 EXPECT_EQ(IntRect(50, 55, 50, 75), 4298 EXPECT_EQ(IntRect(50, 55, 50, 75),
4283 *devToolsEmulator->visibleContentRectForPainting()); 4299 *devToolsEmulator->visibleContentRectForPainting());
4284 } 4300 }
4285 4301
4286 } // namespace blink 4302 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698