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

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

Issue 1836973003: Move download messages from Renderer to Frame filter. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review comments, merge Created 4 years, 6 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 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 // WebViewClient methods 143 // WebViewClient methods
144 void didAutoResize(const WebSize& newSize) override { m_testData.setSize(new Size); } 144 void didAutoResize(const WebSize& newSize) override { m_testData.setSize(new Size); }
145 145
146 // Local methods 146 // Local methods
147 TestData& testData() { return m_testData; } 147 TestData& testData() { return m_testData; }
148 148
149 private: 149 private:
150 TestData m_testData; 150 TestData m_testData;
151 }; 151 };
152 152
153 class SaveImageFromDataURLWebViewClient : public FrameTestHelpers::TestWebViewCl ient {
154 public:
155 // WebViewClient methods
156 void saveImageFromDataURL(const WebString& dataURL) override { m_dataURL = d ataURL; }
157
158 // Local methods
159 const WebString& result() const { return m_dataURL; }
160 void reset() { m_dataURL = WebString(); }
161
162 private:
163 WebString m_dataURL;
164 };
165
166 class TapHandlingWebViewClient : public FrameTestHelpers::TestWebViewClient { 153 class TapHandlingWebViewClient : public FrameTestHelpers::TestWebViewClient {
167 public: 154 public:
168 // WebViewClient methods 155 // WebViewClient methods
169 void didHandleGestureEvent(const WebGestureEvent& event, bool eventCancelled ) override 156 void didHandleGestureEvent(const WebGestureEvent& event, bool eventCancelled ) override
170 { 157 {
171 if (event.type == WebInputEvent::GestureTap) { 158 if (event.type == WebInputEvent::GestureTap) {
172 m_tapX = event.x; 159 m_tapX = event.x;
173 m_tapY = event.y; 160 m_tapY = event.y;
174 } else if (event.type == WebInputEvent::GestureLongPress) { 161 } else if (event.type == WebInputEvent::GestureLongPress) {
175 m_longpressX = event.x; 162 m_longpressX = event.x;
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 234
248 void testTextInputType(WebTextInputType expectedType, const std::string& htm lFile); 235 void testTextInputType(WebTextInputType expectedType, const std::string& htm lFile);
249 void testInputMode(const WebString& expectedInputMode, const std::string& ht mlFile); 236 void testInputMode(const WebString& expectedInputMode, const std::string& ht mlFile);
250 bool tapElement(WebInputEvent::Type, Element*); 237 bool tapElement(WebInputEvent::Type, Element*);
251 bool tapElementById(WebInputEvent::Type, const WebString& id); 238 bool tapElementById(WebInputEvent::Type, const WebString& id);
252 239
253 std::string m_baseURL; 240 std::string m_baseURL;
254 FrameTestHelpers::WebViewHelper m_webViewHelper; 241 FrameTestHelpers::WebViewHelper m_webViewHelper;
255 }; 242 };
256 243
257 TEST_F(WebViewTest, SaveImageAt)
258 {
259 SaveImageFromDataURLWebViewClient client;
260
261 std::string url = m_baseURL + "image-with-data-url.html";
262 URLTestHelpers::registerMockedURLLoad(toKURL(url), "image-with-data-url.html ");
263 URLTestHelpers::registerMockedURLLoad(toKURL("http://test"), "white-1x1.png" );
264 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(url, true, 0, &clie nt);
265 webView->resize(WebSize(400, 400));
266 webView->updateAllLifecyclePhases();
267
268 client.reset();
269 webView->saveImageAt(WebPoint(1, 1));
270 EXPECT_EQ(WebString::fromUTF8("data:image/gif;base64"
271 ",R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs="), client.result());
272
273 client.reset();
274 webView->saveImageAt(WebPoint(1, 2));
275 EXPECT_EQ(WebString(), client.result());
276
277 webView->setPageScaleFactor(4);
278 webView->setVisualViewportOffset(WebFloatPoint(1, 1));
279
280 client.reset();
281 webView->saveImageAt(WebPoint(3, 3));
282 EXPECT_EQ(WebString::fromUTF8("data:image/gif;base64"
283 ",R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs="), client.result());
284
285 m_webViewHelper.reset(); // Explicitly reset to break dependency on locally scoped client.
286 };
287
288 TEST_F(WebViewTest, SaveImageWithImageMap)
289 {
290 SaveImageFromDataURLWebViewClient client;
291
292 std::string url = m_baseURL + "image-map.html";
293 URLTestHelpers::registerMockedURLLoad(toKURL(url), "image-map.html");
294 WebView* webView = m_webViewHelper.initializeAndLoad(url, true, 0, &client);
295 webView->resize(WebSize(400, 400));
296
297 client.reset();
298 webView->saveImageAt(WebPoint(25, 25));
299 EXPECT_EQ(WebString::fromUTF8("data:image/gif;base64"
300 ",R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs="), client.result());
301
302 client.reset();
303 webView->saveImageAt(WebPoint(75, 25));
304 EXPECT_EQ(WebString::fromUTF8("data:image/gif;base64"
305 ",R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs="), client.result());
306
307 client.reset();
308 webView->saveImageAt(WebPoint(125, 25));
309 EXPECT_EQ(WebString(), client.result());
310
311 m_webViewHelper.reset(); // Explicitly reset to break dependency on locally scoped client.
312 }
313
314 TEST_F(WebViewTest, CopyImageAt)
315 {
316 std::string url = m_baseURL + "canvas-copy-image.html";
317 URLTestHelpers::registerMockedURLLoad(toKURL(url), "canvas-copy-image.html") ;
318 WebView* webView = m_webViewHelper.initializeAndLoad(url, true, 0);
319 webView->resize(WebSize(400, 400));
320
321 uint64_t sequence = Platform::current()->clipboard()->sequenceNumber(WebClip board::BufferStandard);
322
323 webView->copyImageAt(WebPoint(50, 50));
324
325 EXPECT_NE(sequence, Platform::current()->clipboard()->sequenceNumber(WebClip board::BufferStandard));
326
327 WebImage image = static_cast<WebMockClipboard*>(Platform::current()->clipboa rd())->readRawImage(WebClipboard::Buffer());
328
329 SkAutoLockPixels autoLock(image.getSkBitmap());
330 EXPECT_EQ(SkColorSetARGB(255, 255, 0, 0), image.getSkBitmap().getColor(0, 0) );
331 };
332
333 TEST_F(WebViewTest, CopyImageAtWithPinchZoom)
334 {
335 std::string url = m_baseURL + "canvas-copy-image.html";
336 URLTestHelpers::registerMockedURLLoad(toKURL(url), "canvas-copy-image.html") ;
337 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(url, true, 0);
338 webView->resize(WebSize(400, 400));
339 webView->updateAllLifecyclePhases();
340 webView->setPageScaleFactor(2);
341 webView->setVisualViewportOffset(WebFloatPoint(200, 200));
342
343 uint64_t sequence = Platform::current()->clipboard()->sequenceNumber(WebClip board::BufferStandard);
344
345 webView->copyImageAt(WebPoint(0, 0));
346
347 EXPECT_NE(sequence, Platform::current()->clipboard()->sequenceNumber(WebClip board::BufferStandard));
348
349 WebImage image = static_cast<WebMockClipboard*>(Platform::current()->clipboa rd())->readRawImage(WebClipboard::Buffer());
350
351 SkAutoLockPixels autoLock(image.getSkBitmap());
352 EXPECT_EQ(SkColorSetARGB(255, 255, 0, 0), image.getSkBitmap().getColor(0, 0) );
353 };
354
355 TEST_F(WebViewTest, CopyImageWithImageMap)
356 {
357 SaveImageFromDataURLWebViewClient client;
358
359 std::string url = m_baseURL + "image-map.html";
360 URLTestHelpers::registerMockedURLLoad(toKURL(url), "image-map.html");
361 WebView* webView = m_webViewHelper.initializeAndLoad(url, true, 0, &client);
362 webView->resize(WebSize(400, 400));
363
364 client.reset();
365 webView->saveImageAt(WebPoint(25, 25));
366 EXPECT_EQ(WebString::fromUTF8("data:image/gif;base64"
367 ",R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs="), client.result());
368
369 client.reset();
370 webView->saveImageAt(WebPoint(75, 25));
371 EXPECT_EQ(WebString::fromUTF8("data:image/gif;base64"
372 ",R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs="), client.result());
373
374 client.reset();
375 webView->saveImageAt(WebPoint(125, 25));
376 EXPECT_EQ(WebString(), client.result());
377
378 m_webViewHelper.reset(); // Explicitly reset to break dependency on locally scoped client.
379 }
380
381 static bool hitTestIsContentEditable(WebView* view, int x, int y) 244 static bool hitTestIsContentEditable(WebView* view, int x, int y)
382 { 245 {
383 WebPoint hitPoint(x, y); 246 WebPoint hitPoint(x, y);
384 WebHitTestResult hitTestResult = view->hitTestResultAt(hitPoint); 247 WebHitTestResult hitTestResult = view->hitTestResultAt(hitPoint);
385 return hitTestResult.isContentEditable(); 248 return hitTestResult.isContentEditable();
386 } 249 }
387 250
388 static std::string hitTestElementId(WebView* view, int x, int y) 251 static std::string hitTestElementId(WebView* view, int x, int y)
389 { 252 {
390 WebPoint hitPoint(x, y); 253 WebPoint hitPoint(x, y);
(...skipping 2786 matching lines...) Expand 10 before | Expand all | Expand 10 after
3177 frame->setAutofillClient(&client); 3040 frame->setAutofillClient(&client);
3178 webView->setInitialFocus(false); 3041 webView->setInitialFocus(false);
3179 3042
3180 EXPECT_TRUE(webView->confirmComposition(WebString::fromUTF8(std::string("hel lo").c_str()))); 3043 EXPECT_TRUE(webView->confirmComposition(WebString::fromUTF8(std::string("hel lo").c_str())));
3181 EXPECT_EQ(1, client.textChangesFromUserGesture()); 3044 EXPECT_EQ(1, client.textChangesFromUserGesture());
3182 EXPECT_FALSE(UserGestureIndicator::processingUserGesture()); 3045 EXPECT_FALSE(UserGestureIndicator::processingUserGesture());
3183 frame->setAutofillClient(0); 3046 frame->setAutofillClient(0);
3184 } 3047 }
3185 3048
3186 } // namespace blink 3049 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/tests/WebFrameTest.cpp ('k') | third_party/WebKit/public/web/WebFrameClient.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698