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

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: Fix mouse up event sender not modifying modifiers Created 4 years 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 1960 matching lines...) Expand 10 before | Expand all | Expand 10 after
1971 1971
1972 // TODO(bokan): Technically incorrect, event positions should be in viewport 1972 // TODO(bokan): Technically incorrect, event positions should be in viewport
1973 // space. crbug.com/371902. 1973 // space. crbug.com/371902.
1974 IntPoint center = 1974 IntPoint center =
1975 m_webViewHelper.webView() 1975 m_webViewHelper.webView()
1976 ->mainFrameImpl() 1976 ->mainFrameImpl()
1977 ->frameView() 1977 ->frameView()
1978 ->contentsToScreen(element->layoutObject()->absoluteBoundingBoxRect()) 1978 ->contentsToScreen(element->layoutObject()->absoluteBoundingBoxRect())
1979 .center(); 1979 .center();
1980 1980
1981 WebGestureEvent event; 1981 WebGestureEvent event(type, WebInputEvent::NoModifiers,
1982 event.type = type; 1982 WebInputEvent::TimeStampForTesting);
1983
1983 event.sourceDevice = WebGestureDeviceTouchscreen; 1984 event.sourceDevice = WebGestureDeviceTouchscreen;
1984 event.x = center.x(); 1985 event.x = center.x();
1985 event.y = center.y(); 1986 event.y = center.y();
1986 1987
1987 m_webViewHelper.webView()->handleInputEvent(event); 1988 m_webViewHelper.webView()->handleInputEvent(event);
1988 runPendingTasks(); 1989 runPendingTasks();
1989 return true; 1990 return true;
1990 } 1991 }
1991 1992
1992 bool WebViewTest::tapElementById(WebInputEvent::Type type, 1993 bool WebViewTest::tapElementById(WebInputEvent::Type type,
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
2035 EXPECT_TRUE(client.contentDetectionRequested()); 2036 EXPECT_TRUE(client.contentDetectionRequested());
2036 EXPECT_FALSE(client.scheduledIntentURL().isValid()); 2037 EXPECT_FALSE(client.scheduledIntentURL().isValid());
2037 2038
2038 WebURL intentURL = toKURL(m_baseURL); 2039 WebURL intentURL = toKURL(m_baseURL);
2039 client.setContentDetectionResult(intentURL); 2040 client.setContentDetectionResult(intentURL);
2040 EXPECT_TRUE(tapElementById(WebInputEvent::GestureTap, noListener)); 2041 EXPECT_TRUE(tapElementById(WebInputEvent::GestureTap, noListener));
2041 EXPECT_TRUE(client.scheduledIntentURL() == intentURL); 2042 EXPECT_TRUE(client.scheduledIntentURL() == intentURL);
2042 EXPECT_TRUE(client.wasInMainFrame()); 2043 EXPECT_TRUE(client.wasInMainFrame());
2043 2044
2044 // Tapping elsewhere should cancel the scheduled intent. 2045 // Tapping elsewhere should cancel the scheduled intent.
2045 WebGestureEvent event; 2046 WebGestureEvent event(WebInputEvent::GestureTap, WebInputEvent::NoModifiers,
2046 event.type = WebInputEvent::GestureTap; 2047 WebInputEvent::TimeStampForTesting);
2047 event.sourceDevice = WebGestureDeviceTouchscreen; 2048 event.sourceDevice = WebGestureDeviceTouchscreen;
2048 webView->handleInputEvent(event); 2049 webView->handleInputEvent(event);
2049 runPendingTasks(); 2050 runPendingTasks();
2050 EXPECT_TRUE(client.pendingIntentsCancelled()); 2051 EXPECT_TRUE(client.pendingIntentsCancelled());
2051 2052
2052 // Explicitly reset to break dependency on locally scoped client. 2053 // Explicitly reset to break dependency on locally scoped client.
2053 m_webViewHelper.reset(); 2054 m_webViewHelper.reset();
2054 } 2055 }
2055 2056
2056 TEST_P(WebViewTest, ContentDetectionInIframe) { 2057 TEST_P(WebViewTest, ContentDetectionInIframe) {
(...skipping 22 matching lines...) Expand all
2079 2080
2080 // Explicitly reset to break dependency on locally scoped client. 2081 // Explicitly reset to break dependency on locally scoped client.
2081 m_webViewHelper.reset(); 2082 m_webViewHelper.reset();
2082 } 2083 }
2083 2084
2084 TEST_P(WebViewTest, ClientTapHandling) { 2085 TEST_P(WebViewTest, ClientTapHandling) {
2085 TapHandlingWebViewClient client; 2086 TapHandlingWebViewClient client;
2086 client.reset(); 2087 client.reset();
2087 WebView* webView = 2088 WebView* webView =
2088 m_webViewHelper.initializeAndLoad("about:blank", true, 0, &client); 2089 m_webViewHelper.initializeAndLoad("about:blank", true, 0, &client);
2089 WebGestureEvent event; 2090 WebGestureEvent event(WebInputEvent::GestureTap, WebInputEvent::NoModifiers,
2090 event.type = WebInputEvent::GestureTap; 2091 WebInputEvent::TimeStampForTesting);
2091 event.sourceDevice = WebGestureDeviceTouchscreen; 2092 event.sourceDevice = WebGestureDeviceTouchscreen;
2092 event.x = 3; 2093 event.x = 3;
2093 event.y = 8; 2094 event.y = 8;
2094 webView->handleInputEvent(event); 2095 webView->handleInputEvent(event);
2095 runPendingTasks(); 2096 runPendingTasks();
2096 EXPECT_EQ(3, client.tapX()); 2097 EXPECT_EQ(3, client.tapX());
2097 EXPECT_EQ(8, client.tapY()); 2098 EXPECT_EQ(8, client.tapY());
2098 client.reset(); 2099 client.reset();
2099 event.type = WebInputEvent::GestureLongPress; 2100 event.setType(WebInputEvent::GestureLongPress);
2100 event.x = 25; 2101 event.x = 25;
2101 event.y = 7; 2102 event.y = 7;
2102 webView->handleInputEvent(event); 2103 webView->handleInputEvent(event);
2103 runPendingTasks(); 2104 runPendingTasks();
2104 EXPECT_EQ(25, client.longpressX()); 2105 EXPECT_EQ(25, client.longpressX());
2105 EXPECT_EQ(7, client.longpressY()); 2106 EXPECT_EQ(7, client.longpressY());
2106 2107
2107 // Explicitly reset to break dependency on locally scoped client. 2108 // Explicitly reset to break dependency on locally scoped client.
2108 m_webViewHelper.reset(); 2109 m_webViewHelper.reset();
2109 } 2110 }
2110 2111
2111 TEST_P(WebViewTest, ClientTapHandlingNullWebViewClient) { 2112 TEST_P(WebViewTest, ClientTapHandlingNullWebViewClient) {
2112 WebViewImpl* webView = 2113 WebViewImpl* webView =
2113 WebViewImpl::create(nullptr, WebPageVisibilityStateVisible); 2114 WebViewImpl::create(nullptr, WebPageVisibilityStateVisible);
2114 FrameTestHelpers::TestWebFrameClient webFrameClient; 2115 FrameTestHelpers::TestWebFrameClient webFrameClient;
2115 FrameTestHelpers::TestWebWidgetClient webWidgetClient; 2116 FrameTestHelpers::TestWebWidgetClient webWidgetClient;
2116 WebLocalFrame* localFrame = 2117 WebLocalFrame* localFrame =
2117 WebLocalFrame::create(WebTreeScopeType::Document, &webFrameClient); 2118 WebLocalFrame::create(WebTreeScopeType::Document, &webFrameClient);
2118 webView->setMainFrame(localFrame); 2119 webView->setMainFrame(localFrame);
2119 2120
2120 // TODO(dcheng): The main frame widget currently has a special case. 2121 // TODO(dcheng): The main frame widget currently has a special case.
2121 // Eliminate this once WebView is no longer a WebWidget. 2122 // Eliminate this once WebView is no longer a WebWidget.
2122 blink::WebFrameWidget::create(&webWidgetClient, webView, localFrame); 2123 blink::WebFrameWidget::create(&webWidgetClient, webView, localFrame);
2123 2124
2124 WebGestureEvent event; 2125 WebGestureEvent event(WebInputEvent::GestureTap, WebInputEvent::NoModifiers,
2125 event.type = WebInputEvent::GestureTap; 2126 WebInputEvent::TimeStampForTesting);
2126 event.sourceDevice = WebGestureDeviceTouchscreen; 2127 event.sourceDevice = WebGestureDeviceTouchscreen;
2127 event.x = 3; 2128 event.x = 3;
2128 event.y = 8; 2129 event.y = 8;
2129 EXPECT_EQ(WebInputEventResult::NotHandled, webView->handleInputEvent(event)); 2130 EXPECT_EQ(WebInputEventResult::NotHandled, webView->handleInputEvent(event));
2130 webView->close(); 2131 webView->close();
2131 } 2132 }
2132 2133
2133 TEST_P(WebViewTest, LongPressEmptyDiv) { 2134 TEST_P(WebViewTest, LongPressEmptyDiv) {
2134 URLTestHelpers::registerMockedURLFromBaseURL( 2135 URLTestHelpers::registerMockedURLFromBaseURL(
2135 WebString::fromUTF8(m_baseURL.c_str()), 2136 WebString::fromUTF8(m_baseURL.c_str()),
2136 WebString::fromUTF8("long_press_empty_div.html")); 2137 WebString::fromUTF8("long_press_empty_div.html"));
2137 2138
2138 WebViewImpl* webView = m_webViewHelper.initializeAndLoad( 2139 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(
2139 m_baseURL + "long_press_empty_div.html", true); 2140 m_baseURL + "long_press_empty_div.html", true);
2140 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(false); 2141 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(false);
2141 webView->resize(WebSize(500, 300)); 2142 webView->resize(WebSize(500, 300));
2142 webView->updateAllLifecyclePhases(); 2143 webView->updateAllLifecyclePhases();
2143 runPendingTasks(); 2144 runPendingTasks();
2144 2145
2145 WebGestureEvent event; 2146 WebGestureEvent event(WebInputEvent::GestureLongPress,
2146 event.type = WebInputEvent::GestureLongPress; 2147 WebInputEvent::NoModifiers,
2148 WebInputEvent::TimeStampForTesting);
2147 event.sourceDevice = WebGestureDeviceTouchscreen; 2149 event.sourceDevice = WebGestureDeviceTouchscreen;
2148 event.x = 250; 2150 event.x = 250;
2149 event.y = 150; 2151 event.y = 150;
2150 2152
2151 EXPECT_EQ(WebInputEventResult::NotHandled, webView->handleInputEvent(event)); 2153 EXPECT_EQ(WebInputEventResult::NotHandled, webView->handleInputEvent(event));
2152 } 2154 }
2153 2155
2154 TEST_P(WebViewTest, LongPressEmptyDivAlwaysShow) { 2156 TEST_P(WebViewTest, LongPressEmptyDivAlwaysShow) {
2155 URLTestHelpers::registerMockedURLFromBaseURL( 2157 URLTestHelpers::registerMockedURLFromBaseURL(
2156 WebString::fromUTF8(m_baseURL.c_str()), 2158 WebString::fromUTF8(m_baseURL.c_str()),
2157 WebString::fromUTF8("long_press_empty_div.html")); 2159 WebString::fromUTF8("long_press_empty_div.html"));
2158 2160
2159 WebViewImpl* webView = m_webViewHelper.initializeAndLoad( 2161 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(
2160 m_baseURL + "long_press_empty_div.html", true); 2162 m_baseURL + "long_press_empty_div.html", true);
2161 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(true); 2163 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(true);
2162 webView->resize(WebSize(500, 300)); 2164 webView->resize(WebSize(500, 300));
2163 webView->updateAllLifecyclePhases(); 2165 webView->updateAllLifecyclePhases();
2164 runPendingTasks(); 2166 runPendingTasks();
2165 2167
2166 WebGestureEvent event; 2168 WebGestureEvent event(WebInputEvent::GestureLongPress,
2167 event.type = WebInputEvent::GestureLongPress; 2169 WebInputEvent::NoModifiers,
2170 WebInputEvent::TimeStampForTesting);
2168 event.sourceDevice = WebGestureDeviceTouchscreen; 2171 event.sourceDevice = WebGestureDeviceTouchscreen;
2169 event.x = 250; 2172 event.x = 250;
2170 event.y = 150; 2173 event.y = 150;
2171 2174
2172 EXPECT_EQ(WebInputEventResult::HandledSystem, 2175 EXPECT_EQ(WebInputEventResult::HandledSystem,
2173 webView->handleInputEvent(event)); 2176 webView->handleInputEvent(event));
2174 } 2177 }
2175 2178
2176 TEST_P(WebViewTest, LongPressObject) { 2179 TEST_P(WebViewTest, LongPressObject) {
2177 URLTestHelpers::registerMockedURLFromBaseURL( 2180 URLTestHelpers::registerMockedURLFromBaseURL(
2178 WebString::fromUTF8(m_baseURL.c_str()), 2181 WebString::fromUTF8(m_baseURL.c_str()),
2179 WebString::fromUTF8("long_press_object.html")); 2182 WebString::fromUTF8("long_press_object.html"));
2180 2183
2181 WebViewImpl* webView = m_webViewHelper.initializeAndLoad( 2184 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(
2182 m_baseURL + "long_press_object.html", true); 2185 m_baseURL + "long_press_object.html", true);
2183 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(true); 2186 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(true);
2184 webView->resize(WebSize(500, 300)); 2187 webView->resize(WebSize(500, 300));
2185 webView->updateAllLifecyclePhases(); 2188 webView->updateAllLifecyclePhases();
2186 runPendingTasks(); 2189 runPendingTasks();
2187 2190
2188 WebGestureEvent event; 2191 WebGestureEvent event(WebInputEvent::GestureLongPress,
2189 event.type = WebInputEvent::GestureLongPress; 2192 WebInputEvent::NoModifiers,
2193 WebInputEvent::TimeStampForTesting);
2190 event.sourceDevice = WebGestureDeviceTouchscreen; 2194 event.sourceDevice = WebGestureDeviceTouchscreen;
2191 event.x = 10; 2195 event.x = 10;
2192 event.y = 10; 2196 event.y = 10;
2193 2197
2194 EXPECT_NE(WebInputEventResult::HandledSystem, 2198 EXPECT_NE(WebInputEventResult::HandledSystem,
2195 webView->handleInputEvent(event)); 2199 webView->handleInputEvent(event));
2196 2200
2197 HTMLElement* element = 2201 HTMLElement* element =
2198 toHTMLElement(webView->mainFrame()->document().getElementById("obj")); 2202 toHTMLElement(webView->mainFrame()->document().getElementById("obj"));
2199 EXPECT_FALSE(element->canStartSelection()); 2203 EXPECT_FALSE(element->canStartSelection());
2200 } 2204 }
2201 2205
2202 TEST_P(WebViewTest, LongPressObjectFallback) { 2206 TEST_P(WebViewTest, LongPressObjectFallback) {
2203 URLTestHelpers::registerMockedURLFromBaseURL( 2207 URLTestHelpers::registerMockedURLFromBaseURL(
2204 WebString::fromUTF8(m_baseURL.c_str()), 2208 WebString::fromUTF8(m_baseURL.c_str()),
2205 WebString::fromUTF8("long_press_object_fallback.html")); 2209 WebString::fromUTF8("long_press_object_fallback.html"));
2206 2210
2207 WebViewImpl* webView = m_webViewHelper.initializeAndLoad( 2211 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(
2208 m_baseURL + "long_press_object_fallback.html", true); 2212 m_baseURL + "long_press_object_fallback.html", true);
2209 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(true); 2213 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(true);
2210 webView->resize(WebSize(500, 300)); 2214 webView->resize(WebSize(500, 300));
2211 webView->updateAllLifecyclePhases(); 2215 webView->updateAllLifecyclePhases();
2212 runPendingTasks(); 2216 runPendingTasks();
2213 2217
2214 WebGestureEvent event; 2218 WebGestureEvent event(WebInputEvent::GestureLongPress,
2215 event.type = WebInputEvent::GestureLongPress; 2219 WebInputEvent::NoModifiers,
2220 WebInputEvent::TimeStampForTesting);
2216 event.sourceDevice = WebGestureDeviceTouchscreen; 2221 event.sourceDevice = WebGestureDeviceTouchscreen;
2217 event.x = 10; 2222 event.x = 10;
2218 event.y = 10; 2223 event.y = 10;
2219 2224
2220 EXPECT_EQ(WebInputEventResult::HandledSystem, 2225 EXPECT_EQ(WebInputEventResult::HandledSystem,
2221 webView->handleInputEvent(event)); 2226 webView->handleInputEvent(event));
2222 2227
2223 HTMLElement* element = 2228 HTMLElement* element =
2224 toHTMLElement(webView->mainFrame()->document().getElementById("obj")); 2229 toHTMLElement(webView->mainFrame()->document().getElementById("obj"));
2225 EXPECT_TRUE(element->canStartSelection()); 2230 EXPECT_TRUE(element->canStartSelection());
2226 } 2231 }
2227 2232
2228 TEST_P(WebViewTest, LongPressImage) { 2233 TEST_P(WebViewTest, LongPressImage) {
2229 URLTestHelpers::registerMockedURLFromBaseURL( 2234 URLTestHelpers::registerMockedURLFromBaseURL(
2230 WebString::fromUTF8(m_baseURL.c_str()), 2235 WebString::fromUTF8(m_baseURL.c_str()),
2231 WebString::fromUTF8("long_press_image.html")); 2236 WebString::fromUTF8("long_press_image.html"));
2232 2237
2233 WebViewImpl* webView = m_webViewHelper.initializeAndLoad( 2238 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(
2234 m_baseURL + "long_press_image.html", true); 2239 m_baseURL + "long_press_image.html", true);
2235 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(false); 2240 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(false);
2236 webView->resize(WebSize(500, 300)); 2241 webView->resize(WebSize(500, 300));
2237 webView->updateAllLifecyclePhases(); 2242 webView->updateAllLifecyclePhases();
2238 runPendingTasks(); 2243 runPendingTasks();
2239 2244
2240 WebGestureEvent event; 2245 WebGestureEvent event(WebInputEvent::GestureLongPress,
2241 event.type = WebInputEvent::GestureLongPress; 2246 WebInputEvent::NoModifiers,
2247 WebInputEvent::TimeStampForTesting);
2242 event.sourceDevice = WebGestureDeviceTouchscreen; 2248 event.sourceDevice = WebGestureDeviceTouchscreen;
2243 event.x = 10; 2249 event.x = 10;
2244 event.y = 10; 2250 event.y = 10;
2245 2251
2246 EXPECT_EQ(WebInputEventResult::HandledSystem, 2252 EXPECT_EQ(WebInputEventResult::HandledSystem,
2247 webView->handleInputEvent(event)); 2253 webView->handleInputEvent(event));
2248 } 2254 }
2249 2255
2250 TEST_P(WebViewTest, LongPressVideo) { 2256 TEST_P(WebViewTest, LongPressVideo) {
2251 URLTestHelpers::registerMockedURLFromBaseURL( 2257 URLTestHelpers::registerMockedURLFromBaseURL(
2252 WebString::fromUTF8(m_baseURL.c_str()), 2258 WebString::fromUTF8(m_baseURL.c_str()),
2253 WebString::fromUTF8("long_press_video.html")); 2259 WebString::fromUTF8("long_press_video.html"));
2254 2260
2255 WebViewImpl* webView = m_webViewHelper.initializeAndLoad( 2261 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(
2256 m_baseURL + "long_press_video.html", true); 2262 m_baseURL + "long_press_video.html", true);
2257 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(false); 2263 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(false);
2258 webView->resize(WebSize(500, 300)); 2264 webView->resize(WebSize(500, 300));
2259 webView->updateAllLifecyclePhases(); 2265 webView->updateAllLifecyclePhases();
2260 runPendingTasks(); 2266 runPendingTasks();
2261 2267
2262 WebGestureEvent event; 2268 WebGestureEvent event(WebInputEvent::GestureLongPress,
2263 event.type = WebInputEvent::GestureLongPress; 2269 WebInputEvent::NoModifiers,
2270 WebInputEvent::TimeStampForTesting);
2264 event.sourceDevice = WebGestureDeviceTouchscreen; 2271 event.sourceDevice = WebGestureDeviceTouchscreen;
2265 event.x = 10; 2272 event.x = 10;
2266 event.y = 10; 2273 event.y = 10;
2267 2274
2268 EXPECT_EQ(WebInputEventResult::HandledSystem, 2275 EXPECT_EQ(WebInputEventResult::HandledSystem,
2269 webView->handleInputEvent(event)); 2276 webView->handleInputEvent(event));
2270 } 2277 }
2271 2278
2272 TEST_P(WebViewTest, LongPressLink) { 2279 TEST_P(WebViewTest, LongPressLink) {
2273 URLTestHelpers::registerMockedURLFromBaseURL( 2280 URLTestHelpers::registerMockedURLFromBaseURL(
2274 WebString::fromUTF8(m_baseURL.c_str()), 2281 WebString::fromUTF8(m_baseURL.c_str()),
2275 WebString::fromUTF8("long_press_link.html")); 2282 WebString::fromUTF8("long_press_link.html"));
2276 2283
2277 WebViewImpl* webView = m_webViewHelper.initializeAndLoad( 2284 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(
2278 m_baseURL + "long_press_link.html", true); 2285 m_baseURL + "long_press_link.html", true);
2279 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(false); 2286 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(false);
2280 webView->resize(WebSize(500, 300)); 2287 webView->resize(WebSize(500, 300));
2281 webView->updateAllLifecyclePhases(); 2288 webView->updateAllLifecyclePhases();
2282 runPendingTasks(); 2289 runPendingTasks();
2283 2290
2284 WebGestureEvent event; 2291 WebGestureEvent event(WebInputEvent::GestureLongPress,
2285 event.type = WebInputEvent::GestureLongPress; 2292 WebInputEvent::NoModifiers,
2293 WebInputEvent::TimeStampForTesting);
2286 event.sourceDevice = WebGestureDeviceTouchscreen; 2294 event.sourceDevice = WebGestureDeviceTouchscreen;
2287 event.x = 500; 2295 event.x = 500;
2288 event.y = 300; 2296 event.y = 300;
2289 2297
2290 EXPECT_EQ(WebInputEventResult::HandledSystem, 2298 EXPECT_EQ(WebInputEventResult::HandledSystem,
2291 webView->handleInputEvent(event)); 2299 webView->handleInputEvent(event));
2292 } 2300 }
2293 2301
2294 TEST_P(WebViewTest, showContextMenuOnLongPressingLinks) { 2302 TEST_P(WebViewTest, showContextMenuOnLongPressingLinks) {
2295 URLTestHelpers::registerMockedURLFromBaseURL( 2303 URLTestHelpers::registerMockedURLFromBaseURL(
(...skipping 27 matching lines...) Expand all
2323 WebString::fromUTF8(m_baseURL.c_str()), 2331 WebString::fromUTF8(m_baseURL.c_str()),
2324 WebString::fromUTF8("long_press_empty_editable_selection.html")); 2332 WebString::fromUTF8("long_press_empty_editable_selection.html"));
2325 2333
2326 WebViewImpl* webView = m_webViewHelper.initializeAndLoad( 2334 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(
2327 m_baseURL + "long_press_empty_editable_selection.html", true); 2335 m_baseURL + "long_press_empty_editable_selection.html", true);
2328 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(false); 2336 webView->settingsImpl()->setAlwaysShowContextMenuOnTouch(false);
2329 webView->resize(WebSize(500, 300)); 2337 webView->resize(WebSize(500, 300));
2330 webView->updateAllLifecyclePhases(); 2338 webView->updateAllLifecyclePhases();
2331 runPendingTasks(); 2339 runPendingTasks();
2332 2340
2333 WebGestureEvent event; 2341 WebGestureEvent event(WebInputEvent::GestureLongPress,
2334 event.type = WebInputEvent::GestureLongPress; 2342 WebInputEvent::NoModifiers,
2343 WebInputEvent::TimeStampForTesting);
2335 event.sourceDevice = WebGestureDeviceTouchscreen; 2344 event.sourceDevice = WebGestureDeviceTouchscreen;
2336 event.x = 10; 2345 event.x = 10;
2337 event.y = 10; 2346 event.y = 10;
2338 2347
2339 EXPECT_EQ(WebInputEventResult::HandledSystem, 2348 EXPECT_EQ(WebInputEventResult::HandledSystem,
2340 webView->handleInputEvent(event)); 2349 webView->handleInputEvent(event));
2341 } 2350 }
2342 2351
2343 TEST_P(WebViewTest, LongPressEmptyNonEditableSelection) { 2352 TEST_P(WebViewTest, LongPressEmptyNonEditableSelection) {
2344 URLTestHelpers::registerMockedURLFromBaseURL( 2353 URLTestHelpers::registerMockedURLFromBaseURL(
2345 WebString::fromUTF8(m_baseURL.c_str()), 2354 WebString::fromUTF8(m_baseURL.c_str()),
2346 WebString::fromUTF8("long_press_image.html")); 2355 WebString::fromUTF8("long_press_image.html"));
2347 2356
2348 WebViewImpl* webView = m_webViewHelper.initializeAndLoad( 2357 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(
2349 m_baseURL + "long_press_image.html", true); 2358 m_baseURL + "long_press_image.html", true);
2350 webView->resize(WebSize(500, 500)); 2359 webView->resize(WebSize(500, 500));
2351 webView->updateAllLifecyclePhases(); 2360 webView->updateAllLifecyclePhases();
2352 runPendingTasks(); 2361 runPendingTasks();
2353 2362
2354 WebGestureEvent event; 2363 WebGestureEvent event(WebInputEvent::GestureLongPress,
2355 event.type = WebInputEvent::GestureLongPress; 2364 WebInputEvent::NoModifiers,
2365 WebInputEvent::TimeStampForTesting);
2356 event.sourceDevice = WebGestureDeviceTouchscreen; 2366 event.sourceDevice = WebGestureDeviceTouchscreen;
2357 event.x = 300; 2367 event.x = 300;
2358 event.y = 300; 2368 event.y = 300;
2359 WebLocalFrameImpl* frame = webView->mainFrameImpl(); 2369 WebLocalFrameImpl* frame = webView->mainFrameImpl();
2360 2370
2361 EXPECT_EQ(WebInputEventResult::HandledSystem, 2371 EXPECT_EQ(WebInputEventResult::HandledSystem,
2362 webView->handleInputEvent(event)); 2372 webView->handleInputEvent(event));
2363 EXPECT_TRUE(frame->selectionAsText().isEmpty()); 2373 EXPECT_TRUE(frame->selectionAsText().isEmpty());
2364 } 2374 }
2365 2375
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
2399 2409
2400 WebString blanklinestextbox = WebString::fromUTF8("blanklinestextbox"); 2410 WebString blanklinestextbox = WebString::fromUTF8("blanklinestextbox");
2401 WebLocalFrameImpl* frame = webView->mainFrameImpl(); 2411 WebLocalFrameImpl* frame = webView->mainFrameImpl();
2402 2412
2403 // Long-press on carriage returns. 2413 // Long-press on carriage returns.
2404 EXPECT_TRUE( 2414 EXPECT_TRUE(
2405 tapElementById(WebInputEvent::GestureLongPress, blanklinestextbox)); 2415 tapElementById(WebInputEvent::GestureLongPress, blanklinestextbox));
2406 EXPECT_TRUE(frame->selectionAsText().isEmpty()); 2416 EXPECT_TRUE(frame->selectionAsText().isEmpty());
2407 2417
2408 // Double-tap on carriage returns. 2418 // Double-tap on carriage returns.
2409 WebGestureEvent event; 2419 WebGestureEvent event(WebInputEvent::GestureTap, WebInputEvent::NoModifiers,
2410 event.type = WebInputEvent::GestureTap; 2420 WebInputEvent::TimeStampForTesting);
2411 event.sourceDevice = WebGestureDeviceTouchscreen; 2421 event.sourceDevice = WebGestureDeviceTouchscreen;
2412 event.x = 100; 2422 event.x = 100;
2413 event.y = 25; 2423 event.y = 25;
2414 event.data.tap.tapCount = 2; 2424 event.data.tap.tapCount = 2;
2415 2425
2416 webView->handleInputEvent(event); 2426 webView->handleInputEvent(event);
2417 EXPECT_TRUE(frame->selectionAsText().isEmpty()); 2427 EXPECT_TRUE(frame->selectionAsText().isEmpty());
2418 2428
2419 HTMLTextAreaElement* textAreaElement = toHTMLTextAreaElement( 2429 HTMLTextAreaElement* textAreaElement = toHTMLTextAreaElement(
2420 webView->mainFrame()->document().getElementById(blanklinestextbox)); 2430 webView->mainFrame()->document().getElementById(blanklinestextbox));
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
2474 WebString::fromUTF8(m_baseURL.c_str()), WebString::fromUTF8("form.html")); 2484 WebString::fromUTF8(m_baseURL.c_str()), WebString::fromUTF8("form.html"));
2475 WebViewImpl* webView = 2485 WebViewImpl* webView =
2476 m_webViewHelper.initializeAndLoad(m_baseURL + "form.html", true); 2486 m_webViewHelper.initializeAndLoad(m_baseURL + "form.html", true);
2477 2487
2478 webView->setInitialFocus(false); 2488 webView->setInitialFocus(false);
2479 runPendingTasks(); 2489 runPendingTasks();
2480 2490
2481 // We suspend caret blinking when pressing with mouse right button. 2491 // We suspend caret blinking when pressing with mouse right button.
2482 // Note that we do not send MouseUp event here since it will be consumed 2492 // Note that we do not send MouseUp event here since it will be consumed
2483 // by the context menu once it shows up. 2493 // by the context menu once it shows up.
2484 WebMouseEvent mouseEvent; 2494 WebMouseEvent mouseEvent(WebInputEvent::MouseDown, WebInputEvent::NoModifiers,
2495 WebInputEvent::TimeStampForTesting);
2496
2485 mouseEvent.button = WebMouseEvent::Button::Right; 2497 mouseEvent.button = WebMouseEvent::Button::Right;
2486 mouseEvent.x = 1; 2498 mouseEvent.x = 1;
2487 mouseEvent.y = 1; 2499 mouseEvent.y = 1;
2488 mouseEvent.clickCount = 1; 2500 mouseEvent.clickCount = 1;
2489 mouseEvent.type = WebInputEvent::MouseDown;
2490 webView->handleInputEvent(mouseEvent); 2501 webView->handleInputEvent(mouseEvent);
2491 runPendingTasks(); 2502 runPendingTasks();
2492 2503
2493 WebLocalFrameImpl* mainFrame = webView->mainFrameImpl(); 2504 WebLocalFrameImpl* mainFrame = webView->mainFrameImpl();
2494 EXPECT_TRUE(mainFrame->frame()->selection().isCaretBlinkingSuspended()); 2505 EXPECT_TRUE(mainFrame->frame()->selection().isCaretBlinkingSuspended());
2495 2506
2496 // Caret blinking is still suspended after showing context menu. 2507 // Caret blinking is still suspended after showing context menu.
2497 webView->showContextMenu(); 2508 webView->showContextMenu();
2498 EXPECT_TRUE(mainFrame->frame()->selection().isCaretBlinkingSuspended()); 2509 EXPECT_TRUE(mainFrame->frame()->selection().isCaretBlinkingSuspended());
2499 2510
(...skipping 28 matching lines...) Expand all
2528 URLTestHelpers::registerMockedURLFromBaseURL( 2539 URLTestHelpers::registerMockedURLFromBaseURL(
2529 WebString::fromUTF8(m_baseURL.c_str()), 2540 WebString::fromUTF8(m_baseURL.c_str()),
2530 WebString::fromUTF8("content-width-1000.html")); 2541 WebString::fromUTF8("content-width-1000.html"));
2531 2542
2532 WebViewImpl* webView = m_webViewHelper.initializeAndLoad( 2543 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(
2533 m_baseURL + "content-width-1000.html", true); 2544 m_baseURL + "content-width-1000.html", true);
2534 webView->resize(WebSize(100, 100)); 2545 webView->resize(WebSize(100, 100));
2535 webView->updateAllLifecyclePhases(); 2546 webView->updateAllLifecyclePhases();
2536 runPendingTasks(); 2547 runPendingTasks();
2537 2548
2538 WebKeyboardEvent keyEvent; 2549 WebKeyboardEvent keyEvent(WebInputEvent::RawKeyDown,
2550 WebInputEvent::NoModifiers,
2551 WebInputEvent::TimeStampForTesting);
2539 2552
2540 // RawKeyDown pagedown should be handled. 2553 // RawKeyDown pagedown should be handled.
2541 keyEvent.windowsKeyCode = VKEY_NEXT; 2554 keyEvent.windowsKeyCode = VKEY_NEXT;
2542 keyEvent.type = WebInputEvent::RawKeyDown;
2543 EXPECT_EQ(WebInputEventResult::HandledSystem, 2555 EXPECT_EQ(WebInputEventResult::HandledSystem,
2544 webView->handleInputEvent(keyEvent)); 2556 webView->handleInputEvent(keyEvent));
2545 keyEvent.type = WebInputEvent::KeyUp; 2557 keyEvent.setType(WebInputEvent::KeyUp);
2546 webView->handleInputEvent(keyEvent); 2558 webView->handleInputEvent(keyEvent);
2547 2559
2548 // Coalesced KeyDown arrow-down should be handled. 2560 // Coalesced KeyDown arrow-down should be handled.
2549 keyEvent.windowsKeyCode = VKEY_DOWN; 2561 keyEvent.windowsKeyCode = VKEY_DOWN;
2550 keyEvent.type = WebInputEvent::KeyDown; 2562 keyEvent.setType(WebInputEvent::KeyDown);
2551 EXPECT_EQ(WebInputEventResult::HandledSystem, 2563 EXPECT_EQ(WebInputEventResult::HandledSystem,
2552 webView->handleInputEvent(keyEvent)); 2564 webView->handleInputEvent(keyEvent));
2553 keyEvent.type = WebInputEvent::KeyUp; 2565 keyEvent.setType(WebInputEvent::KeyUp);
2554 webView->handleInputEvent(keyEvent); 2566 webView->handleInputEvent(keyEvent);
2555 2567
2556 // Ctrl-Home should be handled... 2568 // Ctrl-Home should be handled...
2557 keyEvent.windowsKeyCode = VKEY_HOME; 2569 keyEvent.windowsKeyCode = VKEY_HOME;
2558 keyEvent.modifiers = WebInputEvent::ControlKey; 2570 keyEvent.setModifiers(WebInputEvent::ControlKey);
2559 keyEvent.type = WebInputEvent::RawKeyDown; 2571 keyEvent.setType(WebInputEvent::RawKeyDown);
2560 EXPECT_EQ(WebInputEventResult::NotHandled, 2572 EXPECT_EQ(WebInputEventResult::NotHandled,
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 // But Ctrl-Down should not. 2577 // But Ctrl-Down should not.
2566 keyEvent.windowsKeyCode = VKEY_DOWN; 2578 keyEvent.windowsKeyCode = VKEY_DOWN;
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 // Shift, meta, and alt should not be handled. 2586 // Shift, meta, and alt should not be handled.
2575 keyEvent.windowsKeyCode = VKEY_NEXT; 2587 keyEvent.windowsKeyCode = VKEY_NEXT;
2576 keyEvent.modifiers = WebInputEvent::ShiftKey; 2588 keyEvent.setModifiers(WebInputEvent::ShiftKey);
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 keyEvent.windowsKeyCode = VKEY_NEXT; 2595 keyEvent.windowsKeyCode = VKEY_NEXT;
2584 keyEvent.modifiers = WebInputEvent::MetaKey; 2596 keyEvent.setModifiers(WebInputEvent::MetaKey);
2585 keyEvent.type = WebInputEvent::RawKeyDown; 2597 keyEvent.setType(WebInputEvent::RawKeyDown);
2586 EXPECT_EQ(WebInputEventResult::NotHandled, 2598 EXPECT_EQ(WebInputEventResult::NotHandled,
2587 webView->handleInputEvent(keyEvent)); 2599 webView->handleInputEvent(keyEvent));
2588 keyEvent.type = WebInputEvent::KeyUp; 2600 keyEvent.setType(WebInputEvent::KeyUp);
2589 webView->handleInputEvent(keyEvent); 2601 webView->handleInputEvent(keyEvent);
2590 2602
2591 keyEvent.windowsKeyCode = VKEY_NEXT; 2603 keyEvent.windowsKeyCode = VKEY_NEXT;
2592 keyEvent.modifiers = WebInputEvent::AltKey; 2604 keyEvent.setModifiers(WebInputEvent::AltKey);
2593 keyEvent.type = WebInputEvent::RawKeyDown; 2605 keyEvent.setType(WebInputEvent::RawKeyDown);
2594 EXPECT_EQ(WebInputEventResult::NotHandled, 2606 EXPECT_EQ(WebInputEventResult::NotHandled,
2595 webView->handleInputEvent(keyEvent)); 2607 webView->handleInputEvent(keyEvent));
2596 keyEvent.type = WebInputEvent::KeyUp; 2608 keyEvent.setType(WebInputEvent::KeyUp);
2597 webView->handleInputEvent(keyEvent); 2609 webView->handleInputEvent(keyEvent);
2598 2610
2599 // System-key labeled Alt-Down (as in Windows) should do nothing, 2611 // System-key labeled Alt-Down (as in Windows) should do nothing,
2600 // but non-system-key labeled Alt-Down (as in Mac) should be handled 2612 // but non-system-key labeled Alt-Down (as in Mac) should be handled
2601 // as a page-down. 2613 // as a page-down.
2602 keyEvent.windowsKeyCode = VKEY_DOWN; 2614 keyEvent.windowsKeyCode = VKEY_DOWN;
2603 keyEvent.modifiers = WebInputEvent::AltKey; 2615 keyEvent.setModifiers(WebInputEvent::AltKey);
2604 keyEvent.isSystemKey = true; 2616 keyEvent.isSystemKey = true;
2605 keyEvent.type = WebInputEvent::RawKeyDown; 2617 keyEvent.setType(WebInputEvent::RawKeyDown);
2606 EXPECT_EQ(WebInputEventResult::NotHandled, 2618 EXPECT_EQ(WebInputEventResult::NotHandled,
2607 webView->handleInputEvent(keyEvent)); 2619 webView->handleInputEvent(keyEvent));
2608 keyEvent.type = WebInputEvent::KeyUp; 2620 keyEvent.setType(WebInputEvent::KeyUp);
2609 webView->handleInputEvent(keyEvent); 2621 webView->handleInputEvent(keyEvent);
2610 2622
2611 keyEvent.windowsKeyCode = VKEY_DOWN; 2623 keyEvent.windowsKeyCode = VKEY_DOWN;
2612 keyEvent.modifiers = WebInputEvent::AltKey; 2624 keyEvent.setModifiers(WebInputEvent::AltKey);
2613 keyEvent.isSystemKey = false; 2625 keyEvent.isSystemKey = false;
2614 keyEvent.type = WebInputEvent::RawKeyDown; 2626 keyEvent.setType(WebInputEvent::RawKeyDown);
2615 EXPECT_EQ(WebInputEventResult::HandledSystem, 2627 EXPECT_EQ(WebInputEventResult::HandledSystem,
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 2632
2621 static void configueCompositingWebView(WebSettings* settings) { 2633 static void configueCompositingWebView(WebSettings* settings) {
2622 settings->setAcceleratedCompositingEnabled(true); 2634 settings->setAcceleratedCompositingEnabled(true);
2623 settings->setPreferCompositingToLCDTextEnabled(true); 2635 settings->setPreferCompositingToLCDTextEnabled(true);
2624 } 2636 }
2625 2637
2626 TEST_P(WebViewTest, ShowPressOnTransformedLink) { 2638 TEST_P(WebViewTest, ShowPressOnTransformedLink) {
2627 std::unique_ptr<FrameTestHelpers::TestWebViewClient> 2639 std::unique_ptr<FrameTestHelpers::TestWebViewClient>
2628 fakeCompositingWebViewClient = 2640 fakeCompositingWebViewClient =
2629 WTF::makeUnique<FrameTestHelpers::TestWebViewClient>(); 2641 WTF::makeUnique<FrameTestHelpers::TestWebViewClient>();
2630 FrameTestHelpers::WebViewHelper webViewHelper; 2642 FrameTestHelpers::WebViewHelper webViewHelper;
2631 WebViewImpl* webViewImpl = webViewHelper.initialize( 2643 WebViewImpl* webViewImpl = webViewHelper.initialize(
2632 true, nullptr, fakeCompositingWebViewClient.get(), nullptr, 2644 true, nullptr, fakeCompositingWebViewClient.get(), nullptr,
2633 &configueCompositingWebView); 2645 &configueCompositingWebView);
2634 2646
2635 int pageWidth = 640; 2647 int pageWidth = 640;
2636 int pageHeight = 480; 2648 int pageHeight = 480;
2637 webViewImpl->resize(WebSize(pageWidth, pageHeight)); 2649 webViewImpl->resize(WebSize(pageWidth, pageHeight));
2638 2650
2639 WebURL baseURL = URLTestHelpers::toKURL("http://example.com/"); 2651 WebURL baseURL = URLTestHelpers::toKURL("http://example.com/");
2640 FrameTestHelpers::loadHTMLString( 2652 FrameTestHelpers::loadHTMLString(
2641 webViewImpl->mainFrame(), 2653 webViewImpl->mainFrame(),
2642 "<a href='http://www.test.com' style='position: absolute; left: 20px; " 2654 "<a href='http://www.test.com' style='position: absolute; left: 20px; "
2643 "top: 20px; width: 200px; transform:translateZ(0);'>A link to " 2655 "top: 20px; width: 200px; transform:translateZ(0);'>A link to "
2644 "highlight</a>", 2656 "highlight</a>",
2645 baseURL); 2657 baseURL);
2646 2658
2647 WebGestureEvent event; 2659 WebGestureEvent event(WebInputEvent::GestureShowPress,
2648 event.type = WebInputEvent::GestureShowPress; 2660 WebInputEvent::NoModifiers,
2661 WebInputEvent::TimeStampForTesting);
2649 event.sourceDevice = WebGestureDeviceTouchscreen; 2662 event.sourceDevice = WebGestureDeviceTouchscreen;
2650 event.x = 20; 2663 event.x = 20;
2651 event.y = 20; 2664 event.y = 20;
2652 2665
2653 // Just make sure we don't hit any asserts. 2666 // Just make sure we don't hit any asserts.
2654 webViewImpl->handleInputEvent(event); 2667 webViewImpl->handleInputEvent(event);
2655 } 2668 }
2656 2669
2657 class MockAutofillClient : public WebAutofillClient { 2670 class MockAutofillClient : public WebAutofillClient {
2658 public: 2671 public:
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
2762 frame->setEditableSelectionOffsets(6, 6); 2775 frame->setEditableSelectionOffsets(6, 6);
2763 WebInputMethodController* activeInputMethodController = 2776 WebInputMethodController* activeInputMethodController =
2764 frame->frameWidget()->getActiveWebInputMethodController(); 2777 frame->frameWidget()->getActiveWebInputMethodController();
2765 EXPECT_TRUE(activeInputMethodController->setComposition( 2778 EXPECT_TRUE(activeInputMethodController->setComposition(
2766 "fghij", emptyUnderlines, 0, 5)); 2779 "fghij", emptyUnderlines, 0, 5));
2767 frame->setEditableSelectionOffsets(11, 11); 2780 frame->setEditableSelectionOffsets(11, 11);
2768 verifySelectionAndComposition(webView, 11, 11, 6, 11, "initial case"); 2781 verifySelectionAndComposition(webView, 11, 11, 6, 11, "initial case");
2769 2782
2770 // Press Backspace and verify composition didn't get cancelled. This is to 2783 // Press Backspace and verify composition didn't get cancelled. This is to
2771 // verify the fix for crbug.com/429916. 2784 // verify the fix for crbug.com/429916.
2772 WebKeyboardEvent keyEvent; 2785 WebKeyboardEvent keyEvent(WebInputEvent::RawKeyDown,
2786 WebInputEvent::NoModifiers,
2787 WebInputEvent::TimeStampForTesting);
2773 keyEvent.domKey = Platform::current()->domKeyEnumFromString("\b"); 2788 keyEvent.domKey = Platform::current()->domKeyEnumFromString("\b");
2774 keyEvent.windowsKeyCode = VKEY_BACK; 2789 keyEvent.windowsKeyCode = VKEY_BACK;
2775 keyEvent.type = WebInputEvent::RawKeyDown;
2776 webView->handleInputEvent(keyEvent); 2790 webView->handleInputEvent(keyEvent);
2777 2791
2778 frame->setEditableSelectionOffsets(6, 6); 2792 frame->setEditableSelectionOffsets(6, 6);
2779 EXPECT_TRUE(activeInputMethodController->setComposition( 2793 EXPECT_TRUE(activeInputMethodController->setComposition(
2780 "fghi", emptyUnderlines, 0, 4)); 2794 "fghi", emptyUnderlines, 0, 4));
2781 frame->setEditableSelectionOffsets(10, 10); 2795 frame->setEditableSelectionOffsets(10, 10);
2782 verifySelectionAndComposition(webView, 10, 10, 6, 10, 2796 verifySelectionAndComposition(webView, 10, 10, 6, 10,
2783 "after pressing Backspace"); 2797 "after pressing Backspace");
2784 2798
2785 keyEvent.type = WebInputEvent::KeyUp; 2799 keyEvent.setType(WebInputEvent::KeyUp);
2786 webView->handleInputEvent(keyEvent); 2800 webView->handleInputEvent(keyEvent);
2787 2801
2788 webView->advanceFocus(false); 2802 webView->advanceFocus(false);
2789 } 2803 }
2790 2804
2791 frame->setAutofillClient(0); 2805 frame->setAutofillClient(0);
2792 } 2806 }
2793 2807
2794 TEST_P(WebViewTest, FinishComposingTextTriggersAutofillTextChange) { 2808 TEST_P(WebViewTest, FinishComposingTextTriggersAutofillTextChange) {
2795 URLTestHelpers::registerMockedURLFromBaseURL( 2809 URLTestHelpers::registerMockedURLFromBaseURL(
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
2966 2980
2967 WebElement element = 2981 WebElement element =
2968 webView->mainFrame()->document().getElementById("message"); 2982 webView->mainFrame()->document().getElementById("message");
2969 EXPECT_STREQ("DOMFocusOutDOMFocusIn", element.textContent().utf8().data()); 2983 EXPECT_STREQ("DOMFocusOutDOMFocusIn", element.textContent().utf8().data());
2970 } 2984 }
2971 2985
2972 static void openDateTimeChooser(WebView* webView, 2986 static void openDateTimeChooser(WebView* webView,
2973 HTMLInputElement* inputElement) { 2987 HTMLInputElement* inputElement) {
2974 inputElement->focus(); 2988 inputElement->focus();
2975 2989
2976 WebKeyboardEvent keyEvent; 2990 WebKeyboardEvent keyEvent(WebInputEvent::RawKeyDown,
2991 WebInputEvent::NoModifiers,
2992 WebInputEvent::TimeStampForTesting);
2977 keyEvent.domKey = Platform::current()->domKeyEnumFromString(" "); 2993 keyEvent.domKey = Platform::current()->domKeyEnumFromString(" ");
2978 keyEvent.windowsKeyCode = VKEY_SPACE; 2994 keyEvent.windowsKeyCode = VKEY_SPACE;
2979 keyEvent.type = WebInputEvent::RawKeyDown;
2980 webView->handleInputEvent(keyEvent); 2995 webView->handleInputEvent(keyEvent);
2981 2996
2982 keyEvent.type = WebInputEvent::KeyUp; 2997 keyEvent.setType(WebInputEvent::KeyUp);
2983 webView->handleInputEvent(keyEvent); 2998 webView->handleInputEvent(keyEvent);
2984 } 2999 }
2985 3000
2986 // TODO(crbug.com/605112) This test is crashing on Android (Nexus 4) bot. 3001 // TODO(crbug.com/605112) This test is crashing on Android (Nexus 4) bot.
2987 #if OS(ANDROID) 3002 #if OS(ANDROID)
2988 TEST_P(WebViewTest, DISABLED_ChooseValueFromDateTimeChooser) { 3003 TEST_P(WebViewTest, DISABLED_ChooseValueFromDateTimeChooser) {
2989 #else 3004 #else
2990 TEST_P(WebViewTest, ChooseValueFromDateTimeChooser) { 3005 TEST_P(WebViewTest, ChooseValueFromDateTimeChooser) {
2991 #endif 3006 #endif
2992 bool originalMultipleFieldsFlag = 3007 bool originalMultipleFieldsFlag =
(...skipping 554 matching lines...) Expand 10 before | Expand all | Expand 10 after
3547 WebString::fromUTF8(m_baseURL.c_str()), WebString::fromUTF8("form.html")); 3562 WebString::fromUTF8(m_baseURL.c_str()), WebString::fromUTF8("form.html"));
3548 MockAutofillClient client; 3563 MockAutofillClient client;
3549 WebViewImpl* webView = 3564 WebViewImpl* webView =
3550 m_webViewHelper.initializeAndLoad(m_baseURL + "form.html", true); 3565 m_webViewHelper.initializeAndLoad(m_baseURL + "form.html", true);
3551 WebLocalFrameImpl* frame = webView->mainFrameImpl(); 3566 WebLocalFrameImpl* frame = webView->mainFrameImpl();
3552 frame->setAutofillClient(&client); 3567 frame->setAutofillClient(&client);
3553 webView->setInitialFocus(false); 3568 webView->setInitialFocus(false);
3554 3569
3555 EXPECT_EQ(0, client.getUserGestureNotificationsCount()); 3570 EXPECT_EQ(0, client.getUserGestureNotificationsCount());
3556 3571
3557 WebKeyboardEvent keyEvent; 3572 WebKeyboardEvent keyEvent(WebInputEvent::RawKeyDown,
3573 WebInputEvent::NoModifiers,
3574 WebInputEvent::TimeStampForTesting);
3558 keyEvent.domKey = Platform::current()->domKeyEnumFromString(" "); 3575 keyEvent.domKey = Platform::current()->domKeyEnumFromString(" ");
3559 keyEvent.windowsKeyCode = VKEY_SPACE; 3576 keyEvent.windowsKeyCode = VKEY_SPACE;
3560 keyEvent.type = WebInputEvent::RawKeyDown;
3561 webView->handleInputEvent(keyEvent); 3577 webView->handleInputEvent(keyEvent);
3562 keyEvent.type = WebInputEvent::KeyUp; 3578 keyEvent.setType(WebInputEvent::KeyUp);
3563 webView->handleInputEvent(keyEvent); 3579 webView->handleInputEvent(keyEvent);
3564 3580
3565 EXPECT_EQ(1, client.getUserGestureNotificationsCount()); 3581 EXPECT_EQ(1, client.getUserGestureNotificationsCount());
3566 frame->setAutofillClient(0); 3582 frame->setAutofillClient(0);
3567 } 3583 }
3568 3584
3569 TEST_P(WebViewTest, FirstUserGestureObservedMouseEvent) { 3585 TEST_P(WebViewTest, FirstUserGestureObservedMouseEvent) {
3570 URLTestHelpers::registerMockedURLFromBaseURL( 3586 URLTestHelpers::registerMockedURLFromBaseURL(
3571 WebString::fromUTF8(m_baseURL.c_str()), WebString::fromUTF8("form.html")); 3587 WebString::fromUTF8(m_baseURL.c_str()), WebString::fromUTF8("form.html"));
3572 MockAutofillClient client; 3588 MockAutofillClient client;
3573 WebViewImpl* webView = 3589 WebViewImpl* webView =
3574 m_webViewHelper.initializeAndLoad(m_baseURL + "form.html", true); 3590 m_webViewHelper.initializeAndLoad(m_baseURL + "form.html", true);
3575 WebLocalFrameImpl* frame = webView->mainFrameImpl(); 3591 WebLocalFrameImpl* frame = webView->mainFrameImpl();
3576 frame->setAutofillClient(&client); 3592 frame->setAutofillClient(&client);
3577 webView->setInitialFocus(false); 3593 webView->setInitialFocus(false);
3578 3594
3579 EXPECT_EQ(0, client.getUserGestureNotificationsCount()); 3595 EXPECT_EQ(0, client.getUserGestureNotificationsCount());
3580 3596
3581 WebMouseEvent mouseEvent; 3597 WebMouseEvent mouseEvent(WebInputEvent::MouseDown, WebInputEvent::NoModifiers,
3598 WebInputEvent::TimeStampForTesting);
3582 mouseEvent.button = WebMouseEvent::Button::Left; 3599 mouseEvent.button = WebMouseEvent::Button::Left;
3583 mouseEvent.x = 1; 3600 mouseEvent.x = 1;
3584 mouseEvent.y = 1; 3601 mouseEvent.y = 1;
3585 mouseEvent.clickCount = 1; 3602 mouseEvent.clickCount = 1;
3586 mouseEvent.type = WebInputEvent::MouseDown;
3587 webView->handleInputEvent(mouseEvent); 3603 webView->handleInputEvent(mouseEvent);
3588 mouseEvent.type = WebInputEvent::MouseUp; 3604 mouseEvent.setType(WebInputEvent::MouseUp);
3589 webView->handleInputEvent(mouseEvent); 3605 webView->handleInputEvent(mouseEvent);
3590 3606
3591 EXPECT_EQ(1, client.getUserGestureNotificationsCount()); 3607 EXPECT_EQ(1, client.getUserGestureNotificationsCount());
3592 frame->setAutofillClient(0); 3608 frame->setAutofillClient(0);
3593 } 3609 }
3594 3610
3595 TEST_P(WebViewTest, FirstUserGestureObservedGestureTap) { 3611 TEST_P(WebViewTest, FirstUserGestureObservedGestureTap) {
3596 URLTestHelpers::registerMockedURLFromBaseURL( 3612 URLTestHelpers::registerMockedURLFromBaseURL(
3597 WebString::fromUTF8(m_baseURL.c_str()), 3613 WebString::fromUTF8(m_baseURL.c_str()),
3598 WebString::fromUTF8("longpress_selection.html")); 3614 WebString::fromUTF8("longpress_selection.html"));
(...skipping 646 matching lines...) Expand 10 before | Expand all | Expand 10 after
4245 .translate(50, 55) 4261 .translate(50, 55)
4246 .scale(1. / 2.f); 4262 .scale(1. / 2.f);
4247 EXPECT_EQ(expectedMatrix, 4263 EXPECT_EQ(expectedMatrix,
4248 webViewImpl->getDeviceEmulationTransformForTesting()); 4264 webViewImpl->getDeviceEmulationTransformForTesting());
4249 // visibleContentRect doesn't change. 4265 // visibleContentRect doesn't change.
4250 EXPECT_EQ(IntRect(50, 55, 50, 75), 4266 EXPECT_EQ(IntRect(50, 55, 50, 75),
4251 *devToolsEmulator->visibleContentRectForPainting()); 4267 *devToolsEmulator->visibleContentRectForPainting());
4252 } 4268 }
4253 4269
4254 } // namespace blink 4270 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698