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

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

Issue 2654933003: platform/testing/{URL|Unit}TestHelpers improvements (Closed)
Patch Set: header changes Created 3 years, 10 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) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 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 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 : m_baseURL("http://internal.test/"), 192 : m_baseURL("http://internal.test/"),
193 m_notBaseURL("http://external.test/"), 193 m_notBaseURL("http://external.test/"),
194 m_chromeURL("chrome://") {} 194 m_chromeURL("chrome://") {}
195 195
196 ~WebFrameTest() override { 196 ~WebFrameTest() override {
197 Platform::current()->getURLLoaderMockFactory()->unregisterAllURLs(); 197 Platform::current()->getURLLoaderMockFactory()->unregisterAllURLs();
198 WebCache::clear(); 198 WebCache::clear();
199 } 199 }
200 200
201 void registerMockedHttpURLLoad(const std::string& fileName) { 201 void registerMockedHttpURLLoad(const std::string& fileName) {
202 URLTestHelpers::registerMockedURLFromBaseURL( 202 registerMockedURLLoadFromBase(m_baseURL, fileName);
203 WebString::fromUTF8(m_baseURL.c_str()),
204 WebString::fromUTF8(fileName.c_str()));
205 } 203 }
206 204
207 void registerMockedChromeURLLoad(const std::string& fileName) { 205 void registerMockedChromeURLLoad(const std::string& fileName) {
208 URLTestHelpers::registerMockedURLFromBaseURL( 206 registerMockedURLLoadFromBase(m_chromeURL, fileName);
209 WebString::fromUTF8(m_chromeURL.c_str()), 207 }
210 WebString::fromUTF8(fileName.c_str())); 208
209 void registerMockedURLLoadFromBase(const std::string& baseURL,
210 const std::string& fileName) {
211 URLTestHelpers::registerMockedURLLoadFromBase(
212 WebString::fromUTF8(baseURL), testing::webTestDataPath(),
213 WebString::fromUTF8(fileName));
211 } 214 }
212 215
213 void registerMockedHttpURLLoadWithCSP(const std::string& fileName, 216 void registerMockedHttpURLLoadWithCSP(const std::string& fileName,
214 const std::string& csp, 217 const std::string& csp,
215 bool reportOnly = false) { 218 bool reportOnly = false) {
216 WebURLResponse response; 219 WebURLResponse response;
217 response.setMIMEType("text/html"); 220 response.setMIMEType("text/html");
218 response.addHTTPHeaderField( 221 response.addHTTPHeaderField(
219 reportOnly ? WebString("Content-Security-Policy-Report-Only") 222 reportOnly ? WebString("Content-Security-Policy-Report-Only")
220 : WebString("Content-Security-Policy"), 223 : WebString("Content-Security-Policy"),
221 WebString::fromUTF8(csp)); 224 WebString::fromUTF8(csp));
222 std::string fullString = m_baseURL + fileName; 225 std::string fullString = m_baseURL + fileName;
223 URLTestHelpers::registerMockedURLLoadWithCustomResponse( 226 URLTestHelpers::registerMockedURLLoadWithCustomResponse(
224 toKURL(fullString.c_str()), WebString::fromUTF8(fileName.c_str()), 227 toKURL(fullString),
225 WebString::fromUTF8(""), response); 228 testing::webTestDataPath(WebString::fromUTF8(fileName)), response);
226 } 229 }
227 230
228 void registerMockedHttpURLLoadWithMimeType(const std::string& fileName, 231 void registerMockedHttpURLLoadWithMimeType(const std::string& fileName,
229 const std::string& mimeType) { 232 const std::string& mimeType) {
230 URLTestHelpers::registerMockedURLFromBaseURL( 233 URLTestHelpers::registerMockedURLLoadFromBase(
231 WebString::fromUTF8(m_baseURL.c_str()), 234 WebString::fromUTF8(m_baseURL), testing::webTestDataPath(),
232 WebString::fromUTF8(fileName.c_str()), WebString::fromUTF8(mimeType)); 235 WebString::fromUTF8(fileName), WebString::fromUTF8(mimeType));
233 } 236 }
234 237
235 void applyViewportStyleOverride( 238 void applyViewportStyleOverride(
236 FrameTestHelpers::WebViewHelper* webViewHelper) { 239 FrameTestHelpers::WebViewHelper* webViewHelper) {
237 webViewHelper->webView()->settings()->setViewportStyle( 240 webViewHelper->webView()->settings()->setViewportStyle(
238 WebViewportStyle::Mobile); 241 WebViewportStyle::Mobile);
239 } 242 }
240 243
241 static void configureCompositingWebView(WebSettings* settings) { 244 static void configureCompositingWebView(WebSettings* settings) {
242 settings->setAcceleratedCompositingEnabled(true); 245 settings->setAcceleratedCompositingEnabled(true);
(...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after
617 // javascript. 620 // javascript.
618 std::string content = 621 std::string content =
619 WebFrameContentDumper::dumpWebViewAsText(webViewHelper.webView(), 1024) 622 WebFrameContentDumper::dumpWebViewAsText(webViewHelper.webView(), 1024)
620 .utf8(); 623 .utf8();
621 EXPECT_EQ(std::string::npos, content.find("Clobbered")); 624 EXPECT_EQ(std::string::npos, content.find("Clobbered"));
622 } 625 }
623 626
624 TEST_P(ParameterizedWebFrameTest, LocationSetHostWithMissingPort) { 627 TEST_P(ParameterizedWebFrameTest, LocationSetHostWithMissingPort) {
625 std::string fileName = "print-location-href.html"; 628 std::string fileName = "print-location-href.html";
626 registerMockedHttpURLLoad(fileName); 629 registerMockedHttpURLLoad(fileName);
627 URLTestHelpers::registerMockedURLLoad( 630 registerMockedURLLoadFromBase("http://internal.test:0/", fileName);
628 toKURL("http://internal.test:0/" + fileName),
629 WebString::fromUTF8(fileName));
630 631
631 FrameTestHelpers::WebViewHelper webViewHelper; 632 FrameTestHelpers::WebViewHelper webViewHelper;
632 633
633 /// Pass true to enable JavaScript. 634 /// Pass true to enable JavaScript.
634 webViewHelper.initializeAndLoad(m_baseURL + fileName, true); 635 webViewHelper.initializeAndLoad(m_baseURL + fileName, true);
635 636
636 // Setting host to "hostname:" should be treated as "hostname:0". 637 // Setting host to "hostname:" should be treated as "hostname:0".
637 FrameTestHelpers::loadFrame( 638 FrameTestHelpers::loadFrame(
638 webViewHelper.webView()->mainFrame(), 639 webViewHelper.webView()->mainFrame(),
639 "javascript:location.host = 'internal.test:'; void 0;"); 640 "javascript:location.host = 'internal.test:'; void 0;");
640 641
641 FrameTestHelpers::loadFrame( 642 FrameTestHelpers::loadFrame(
642 webViewHelper.webView()->mainFrame(), 643 webViewHelper.webView()->mainFrame(),
643 "javascript:document.body.textContent = location.href; void 0;"); 644 "javascript:document.body.textContent = location.href; void 0;");
644 645
645 std::string content = 646 std::string content =
646 WebFrameContentDumper::dumpWebViewAsText(webViewHelper.webView(), 1024) 647 WebFrameContentDumper::dumpWebViewAsText(webViewHelper.webView(), 1024)
647 .utf8(); 648 .utf8();
648 EXPECT_EQ("http://internal.test:0/" + fileName, content); 649 EXPECT_EQ("http://internal.test:0/" + fileName, content);
649 } 650 }
650 651
651 TEST_P(ParameterizedWebFrameTest, LocationSetEmptyPort) { 652 TEST_P(ParameterizedWebFrameTest, LocationSetEmptyPort) {
652 std::string fileName = "print-location-href.html"; 653 std::string fileName = "print-location-href.html";
653 registerMockedHttpURLLoad(fileName); 654 registerMockedHttpURLLoad(fileName);
654 URLTestHelpers::registerMockedURLLoad( 655 registerMockedURLLoadFromBase("http://internal.test:0/", fileName);
655 toKURL("http://internal.test:0/" + fileName),
656 WebString::fromUTF8(fileName));
657 656
658 FrameTestHelpers::WebViewHelper webViewHelper; 657 FrameTestHelpers::WebViewHelper webViewHelper;
659 658
660 /// Pass true to enable JavaScript. 659 /// Pass true to enable JavaScript.
661 webViewHelper.initializeAndLoad(m_baseURL + fileName, true); 660 webViewHelper.initializeAndLoad(m_baseURL + fileName, true);
662 661
663 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(), 662 FrameTestHelpers::loadFrame(webViewHelper.webView()->mainFrame(),
664 "javascript:location.port = ''; void 0;"); 663 "javascript:location.port = ''; void 0;");
665 664
666 FrameTestHelpers::loadFrame( 665 FrameTestHelpers::loadFrame(
(...skipping 6149 matching lines...) Expand 10 before | Expand all | Expand 10 after
6816 client.reset(); 6815 client.reset();
6817 6816
6818 // Programmatic scroll to same offset. No scroll event should be generated. 6817 // Programmatic scroll to same offset. No scroll event should be generated.
6819 frameImpl->executeScript(WebScriptSource("window.scrollTo(0, 20);")); 6818 frameImpl->executeScript(WebScriptSource("window.scrollTo(0, 20);"));
6820 EXPECT_FALSE(client.wasFrameScrolled()); 6819 EXPECT_FALSE(client.wasFrameScrolled());
6821 EXPECT_FALSE(initialScrollState.wasScrolledByUser); 6820 EXPECT_FALSE(initialScrollState.wasScrolledByUser);
6822 client.reset(); 6821 client.reset();
6823 } 6822 }
6824 6823
6825 TEST_P(ParameterizedWebFrameTest, FirstPartyForCookiesForRedirect) { 6824 TEST_P(ParameterizedWebFrameTest, FirstPartyForCookiesForRedirect) {
6826 String filePath = testing::blinkRootDir(); 6825 String filePath = testing::webTestDataPath("first_party.html");
6827 filePath.append("/Source/web/tests/data/first_party.html");
6828 6826
6829 WebURL testURL(toKURL("http://internal.test/first_party_redirect.html")); 6827 WebURL testURL(toKURL("http://internal.test/first_party_redirect.html"));
6830 char redirect[] = "http://internal.test/first_party.html"; 6828 char redirect[] = "http://internal.test/first_party.html";
6831 WebURL redirectURL(toKURL(redirect)); 6829 WebURL redirectURL(toKURL(redirect));
6832 WebURLResponse redirectResponse; 6830 WebURLResponse redirectResponse;
6833 redirectResponse.setMIMEType("text/html"); 6831 redirectResponse.setMIMEType("text/html");
6834 redirectResponse.setHTTPStatusCode(302); 6832 redirectResponse.setHTTPStatusCode(302);
6835 redirectResponse.setHTTPHeaderField("Location", redirect); 6833 redirectResponse.setHTTPHeaderField("Location", redirect);
6836 Platform::current()->getURLLoaderMockFactory()->registerURL( 6834 Platform::current()->getURLLoaderMockFactory()->registerURL(
6837 testURL, redirectResponse, filePath); 6835 testURL, redirectResponse, filePath);
(...skipping 1405 matching lines...) Expand 10 before | Expand all | Expand 10 after
8243 Document* document = 8241 Document* document =
8244 webViewHelper.webView()->mainFrameImpl()->frame()->document(); 8242 webViewHelper.webView()->mainFrameImpl()->frame()->document();
8245 8243
8246 Resource* resource = 8244 Resource* resource =
8247 fetchManifest(document, toKURL(m_baseURL + "link-manifest-fetch.json")); 8245 fetchManifest(document, toKURL(m_baseURL + "link-manifest-fetch.json"));
8248 8246
8249 EXPECT_TRUE(resource->isLoaded()); 8247 EXPECT_TRUE(resource->isLoaded());
8250 } 8248 }
8251 8249
8252 TEST_P(ParameterizedWebFrameTest, ManifestCSPFetchAllow) { 8250 TEST_P(ParameterizedWebFrameTest, ManifestCSPFetchAllow) {
8253 URLTestHelpers::registerMockedURLLoad( 8251 registerMockedURLLoadFromBase(m_notBaseURL, "link-manifest-fetch.json");
8254 toKURL(m_notBaseURL + "link-manifest-fetch.json"),
8255 "link-manifest-fetch.json");
8256 registerMockedHttpURLLoadWithCSP("foo.html", "manifest-src *"); 8252 registerMockedHttpURLLoadWithCSP("foo.html", "manifest-src *");
8257 8253
8258 FrameTestHelpers::WebViewHelper webViewHelper; 8254 FrameTestHelpers::WebViewHelper webViewHelper;
8259 webViewHelper.initializeAndLoad(m_baseURL + "foo.html"); 8255 webViewHelper.initializeAndLoad(m_baseURL + "foo.html");
8260 Document* document = 8256 Document* document =
8261 webViewHelper.webView()->mainFrameImpl()->frame()->document(); 8257 webViewHelper.webView()->mainFrameImpl()->frame()->document();
8262 8258
8263 Resource* resource = fetchManifest( 8259 Resource* resource = fetchManifest(
8264 document, toKURL(m_notBaseURL + "link-manifest-fetch.json")); 8260 document, toKURL(m_notBaseURL + "link-manifest-fetch.json"));
8265 8261
8266 EXPECT_TRUE(resource->isLoaded()); 8262 EXPECT_TRUE(resource->isLoaded());
8267 } 8263 }
8268 8264
8269 TEST_P(ParameterizedWebFrameTest, ManifestCSPFetchSelf) { 8265 TEST_P(ParameterizedWebFrameTest, ManifestCSPFetchSelf) {
8270 URLTestHelpers::registerMockedURLLoad( 8266 registerMockedURLLoadFromBase(m_notBaseURL, "link-manifest-fetch.json");
8271 toKURL(m_notBaseURL + "link-manifest-fetch.json"),
8272 "link-manifest-fetch.json");
8273 registerMockedHttpURLLoadWithCSP("foo.html", "manifest-src 'self'"); 8267 registerMockedHttpURLLoadWithCSP("foo.html", "manifest-src 'self'");
8274 8268
8275 FrameTestHelpers::WebViewHelper webViewHelper; 8269 FrameTestHelpers::WebViewHelper webViewHelper;
8276 webViewHelper.initializeAndLoad(m_baseURL + "foo.html"); 8270 webViewHelper.initializeAndLoad(m_baseURL + "foo.html");
8277 Document* document = 8271 Document* document =
8278 webViewHelper.webView()->mainFrameImpl()->frame()->document(); 8272 webViewHelper.webView()->mainFrameImpl()->frame()->document();
8279 8273
8280 Resource* resource = fetchManifest( 8274 Resource* resource = fetchManifest(
8281 document, toKURL(m_notBaseURL + "link-manifest-fetch.json")); 8275 document, toKURL(m_notBaseURL + "link-manifest-fetch.json"));
8282 8276
8283 // Fetching resource wasn't allowed. 8277 // Fetching resource wasn't allowed.
8284 ASSERT_TRUE(resource); 8278 ASSERT_TRUE(resource);
8285 EXPECT_TRUE(resource->errorOccurred()); 8279 EXPECT_TRUE(resource->errorOccurred());
8286 EXPECT_TRUE(resource->resourceError().isAccessCheck()); 8280 EXPECT_TRUE(resource->resourceError().isAccessCheck());
8287 } 8281 }
8288 8282
8289 TEST_P(ParameterizedWebFrameTest, ManifestCSPFetchSelfReportOnly) { 8283 TEST_P(ParameterizedWebFrameTest, ManifestCSPFetchSelfReportOnly) {
8290 URLTestHelpers::registerMockedURLLoad( 8284 registerMockedURLLoadFromBase(m_notBaseURL, "link-manifest-fetch.json");
8291 toKURL(m_notBaseURL + "link-manifest-fetch.json"),
8292 "link-manifest-fetch.json");
8293 registerMockedHttpURLLoadWithCSP("foo.html", "manifest-src 'self'", 8285 registerMockedHttpURLLoadWithCSP("foo.html", "manifest-src 'self'",
8294 /* report only */ true); 8286 /* report only */ true);
8295 8287
8296 FrameTestHelpers::WebViewHelper webViewHelper; 8288 FrameTestHelpers::WebViewHelper webViewHelper;
8297 webViewHelper.initializeAndLoad(m_baseURL + "foo.html"); 8289 webViewHelper.initializeAndLoad(m_baseURL + "foo.html");
8298 Document* document = 8290 Document* document =
8299 webViewHelper.webView()->mainFrameImpl()->frame()->document(); 8291 webViewHelper.webView()->mainFrameImpl()->frame()->document();
8300 8292
8301 Resource* resource = fetchManifest( 8293 Resource* resource = fetchManifest(
8302 document, toKURL(m_notBaseURL + "link-manifest-fetch.json")); 8294 document, toKURL(m_notBaseURL + "link-manifest-fetch.json"));
(...skipping 1974 matching lines...) Expand 10 before | Expand all | Expand 10 after
10277 // Local methods 10269 // Local methods
10278 const WebString& result() const { return m_dataURL; } 10270 const WebString& result() const { return m_dataURL; }
10279 void reset() { m_dataURL = WebString(); } 10271 void reset() { m_dataURL = WebString(); }
10280 10272
10281 private: 10273 private:
10282 WebString m_dataURL; 10274 WebString m_dataURL;
10283 }; 10275 };
10284 10276
10285 TEST_F(WebFrameTest, SaveImageAt) { 10277 TEST_F(WebFrameTest, SaveImageAt) {
10286 std::string url = m_baseURL + "image-with-data-url.html"; 10278 std::string url = m_baseURL + "image-with-data-url.html";
10287 URLTestHelpers::registerMockedURLLoad(toKURL(url), 10279 registerMockedURLLoadFromBase(m_baseURL, "image-with-data-url.html");
10288 "image-with-data-url.html"); 10280 URLTestHelpers::registerMockedURLLoad(
10289 URLTestHelpers::registerMockedURLLoad(toKURL("http://test"), "white-1x1.png"); 10281 toKURL("http://test"), testing::webTestDataPath("white-1x1.png"));
10290 10282
10291 FrameTestHelpers::WebViewHelper helper; 10283 FrameTestHelpers::WebViewHelper helper;
10292 SaveImageFromDataURLWebFrameClient client; 10284 SaveImageFromDataURLWebFrameClient client;
10293 WebViewImpl* webView = helper.initializeAndLoad(url, true, &client); 10285 WebViewImpl* webView = helper.initializeAndLoad(url, true, &client);
10294 webView->resize(WebSize(400, 400)); 10286 webView->resize(WebSize(400, 400));
10295 webView->updateAllLifecyclePhases(); 10287 webView->updateAllLifecyclePhases();
10296 10288
10297 WebLocalFrame* localFrame = webView->mainFrameImpl(); 10289 WebLocalFrame* localFrame = webView->mainFrameImpl();
10298 10290
10299 client.reset(); 10291 client.reset();
(...skipping 16 matching lines...) Expand all
10316 WebString::fromUTF8("data:image/gif;base64" 10308 WebString::fromUTF8("data:image/gif;base64"
10317 ",R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs="), 10309 ",R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs="),
10318 client.result()); 10310 client.result());
10319 10311
10320 // Explicitly reset to break dependency on locally scoped client. 10312 // Explicitly reset to break dependency on locally scoped client.
10321 helper.reset(); 10313 helper.reset();
10322 } 10314 }
10323 10315
10324 TEST_F(WebFrameTest, SaveImageWithImageMap) { 10316 TEST_F(WebFrameTest, SaveImageWithImageMap) {
10325 std::string url = m_baseURL + "image-map.html"; 10317 std::string url = m_baseURL + "image-map.html";
10326 URLTestHelpers::registerMockedURLLoad(toKURL(url), "image-map.html"); 10318 registerMockedURLLoadFromBase(m_baseURL, "image-map.html");
10327 10319
10328 FrameTestHelpers::WebViewHelper helper; 10320 FrameTestHelpers::WebViewHelper helper;
10329 SaveImageFromDataURLWebFrameClient client; 10321 SaveImageFromDataURLWebFrameClient client;
10330 WebViewImpl* webView = helper.initializeAndLoad(url, true, &client); 10322 WebViewImpl* webView = helper.initializeAndLoad(url, true, &client);
10331 webView->resize(WebSize(400, 400)); 10323 webView->resize(WebSize(400, 400));
10332 10324
10333 WebLocalFrame* localFrame = webView->mainFrameImpl(); 10325 WebLocalFrame* localFrame = webView->mainFrameImpl();
10334 10326
10335 client.reset(); 10327 client.reset();
10336 localFrame->saveImageAt(WebPoint(25, 25)); 10328 localFrame->saveImageAt(WebPoint(25, 25));
(...skipping 12 matching lines...) Expand all
10349 client.reset(); 10341 client.reset();
10350 localFrame->saveImageAt(WebPoint(125, 25)); 10342 localFrame->saveImageAt(WebPoint(125, 25));
10351 EXPECT_EQ(WebString(), client.result()); 10343 EXPECT_EQ(WebString(), client.result());
10352 10344
10353 // Explicitly reset to break dependency on locally scoped client. 10345 // Explicitly reset to break dependency on locally scoped client.
10354 helper.reset(); 10346 helper.reset();
10355 } 10347 }
10356 10348
10357 TEST_F(WebFrameTest, CopyImageAt) { 10349 TEST_F(WebFrameTest, CopyImageAt) {
10358 std::string url = m_baseURL + "canvas-copy-image.html"; 10350 std::string url = m_baseURL + "canvas-copy-image.html";
10359 URLTestHelpers::registerMockedURLLoad(toKURL(url), "canvas-copy-image.html"); 10351 registerMockedURLLoadFromBase(m_baseURL, "canvas-copy-image.html");
10360 10352
10361 FrameTestHelpers::WebViewHelper helper; 10353 FrameTestHelpers::WebViewHelper helper;
10362 WebViewImpl* webView = helper.initializeAndLoad(url, true, 0); 10354 WebViewImpl* webView = helper.initializeAndLoad(url, true, 0);
10363 webView->resize(WebSize(400, 400)); 10355 webView->resize(WebSize(400, 400));
10364 10356
10365 uint64_t sequence = Platform::current()->clipboard()->sequenceNumber( 10357 uint64_t sequence = Platform::current()->clipboard()->sequenceNumber(
10366 WebClipboard::BufferStandard); 10358 WebClipboard::BufferStandard);
10367 10359
10368 WebLocalFrame* localFrame = webView->mainFrameImpl(); 10360 WebLocalFrame* localFrame = webView->mainFrameImpl();
10369 localFrame->copyImageAt(WebPoint(50, 50)); 10361 localFrame->copyImageAt(WebPoint(50, 50));
10370 10362
10371 EXPECT_NE(sequence, Platform::current()->clipboard()->sequenceNumber( 10363 EXPECT_NE(sequence, Platform::current()->clipboard()->sequenceNumber(
10372 WebClipboard::BufferStandard)); 10364 WebClipboard::BufferStandard));
10373 10365
10374 WebImage image = 10366 WebImage image =
10375 static_cast<WebMockClipboard*>(Platform::current()->clipboard()) 10367 static_cast<WebMockClipboard*>(Platform::current()->clipboard())
10376 ->readRawImage(WebClipboard::Buffer()); 10368 ->readRawImage(WebClipboard::Buffer());
10377 10369
10378 SkAutoLockPixels autoLock(image.getSkBitmap()); 10370 SkAutoLockPixels autoLock(image.getSkBitmap());
10379 EXPECT_EQ(SkColorSetARGB(255, 255, 0, 0), image.getSkBitmap().getColor(0, 0)); 10371 EXPECT_EQ(SkColorSetARGB(255, 255, 0, 0), image.getSkBitmap().getColor(0, 0));
10380 }; 10372 };
10381 10373
10382 TEST_F(WebFrameTest, CopyImageAtWithPinchZoom) { 10374 TEST_F(WebFrameTest, CopyImageAtWithPinchZoom) {
10383 std::string url = m_baseURL + "canvas-copy-image.html"; 10375 std::string url = m_baseURL + "canvas-copy-image.html";
10384 URLTestHelpers::registerMockedURLLoad(toKURL(url), "canvas-copy-image.html"); 10376 registerMockedURLLoadFromBase(m_baseURL, "canvas-copy-image.html");
10385 10377
10386 FrameTestHelpers::WebViewHelper helper; 10378 FrameTestHelpers::WebViewHelper helper;
10387 WebViewImpl* webView = helper.initializeAndLoad(url, true, 0); 10379 WebViewImpl* webView = helper.initializeAndLoad(url, true, 0);
10388 webView->resize(WebSize(400, 400)); 10380 webView->resize(WebSize(400, 400));
10389 webView->updateAllLifecyclePhases(); 10381 webView->updateAllLifecyclePhases();
10390 webView->setPageScaleFactor(2); 10382 webView->setPageScaleFactor(2);
10391 webView->setVisualViewportOffset(WebFloatPoint(200, 200)); 10383 webView->setVisualViewportOffset(WebFloatPoint(200, 200));
10392 10384
10393 uint64_t sequence = Platform::current()->clipboard()->sequenceNumber( 10385 uint64_t sequence = Platform::current()->clipboard()->sequenceNumber(
10394 WebClipboard::BufferStandard); 10386 WebClipboard::BufferStandard);
10395 10387
10396 WebLocalFrame* localFrame = webView->mainFrameImpl(); 10388 WebLocalFrame* localFrame = webView->mainFrameImpl();
10397 localFrame->copyImageAt(WebPoint(0, 0)); 10389 localFrame->copyImageAt(WebPoint(0, 0));
10398 10390
10399 EXPECT_NE(sequence, Platform::current()->clipboard()->sequenceNumber( 10391 EXPECT_NE(sequence, Platform::current()->clipboard()->sequenceNumber(
10400 WebClipboard::BufferStandard)); 10392 WebClipboard::BufferStandard));
10401 10393
10402 WebImage image = 10394 WebImage image =
10403 static_cast<WebMockClipboard*>(Platform::current()->clipboard()) 10395 static_cast<WebMockClipboard*>(Platform::current()->clipboard())
10404 ->readRawImage(WebClipboard::Buffer()); 10396 ->readRawImage(WebClipboard::Buffer());
10405 10397
10406 SkAutoLockPixels autoLock(image.getSkBitmap()); 10398 SkAutoLockPixels autoLock(image.getSkBitmap());
10407 EXPECT_EQ(SkColorSetARGB(255, 255, 0, 0), image.getSkBitmap().getColor(0, 0)); 10399 EXPECT_EQ(SkColorSetARGB(255, 255, 0, 0), image.getSkBitmap().getColor(0, 0));
10408 }; 10400 };
10409 10401
10410 TEST_F(WebFrameTest, CopyImageWithImageMap) { 10402 TEST_F(WebFrameTest, CopyImageWithImageMap) {
10411 SaveImageFromDataURLWebFrameClient client; 10403 SaveImageFromDataURLWebFrameClient client;
10412 10404
10413 std::string url = m_baseURL + "image-map.html"; 10405 std::string url = m_baseURL + "image-map.html";
10414 URLTestHelpers::registerMockedURLLoad(toKURL(url), "image-map.html"); 10406 registerMockedURLLoadFromBase(m_baseURL, "image-map.html");
10415 10407
10416 FrameTestHelpers::WebViewHelper helper; 10408 FrameTestHelpers::WebViewHelper helper;
10417 WebViewImpl* webView = helper.initializeAndLoad(url, true, &client); 10409 WebViewImpl* webView = helper.initializeAndLoad(url, true, &client);
10418 webView->resize(WebSize(400, 400)); 10410 webView->resize(WebSize(400, 400));
10419 10411
10420 client.reset(); 10412 client.reset();
10421 WebLocalFrame* localFrame = webView->mainFrameImpl(); 10413 WebLocalFrame* localFrame = webView->mainFrameImpl();
10422 localFrame->saveImageAt(WebPoint(25, 25)); 10414 localFrame->saveImageAt(WebPoint(25, 25));
10423 EXPECT_EQ( 10415 EXPECT_EQ(
10424 WebString::fromUTF8("data:image/gif;base64" 10416 WebString::fromUTF8("data:image/gif;base64"
(...skipping 12 matching lines...) Expand all
10437 EXPECT_EQ(WebString(), client.result()); 10429 EXPECT_EQ(WebString(), client.result());
10438 // Explicitly reset to break dependency on locally scoped client. 10430 // Explicitly reset to break dependency on locally scoped client.
10439 helper.reset(); 10431 helper.reset();
10440 } 10432 }
10441 10433
10442 TEST_F(WebFrameTest, LoadJavascriptURLInNewFrame) { 10434 TEST_F(WebFrameTest, LoadJavascriptURLInNewFrame) {
10443 FrameTestHelpers::WebViewHelper helper; 10435 FrameTestHelpers::WebViewHelper helper;
10444 helper.initialize(true); 10436 helper.initialize(true);
10445 10437
10446 std::string redirectURL = m_baseURL + "foo.html"; 10438 std::string redirectURL = m_baseURL + "foo.html";
10447 URLTestHelpers::registerMockedURLLoad(toKURL(redirectURL), "foo.html"); 10439 URLTestHelpers::registerMockedURLLoad(toKURL(redirectURL),
10440 testing::webTestDataPath("foo.html"));
10448 WebURLRequest request(toKURL("javascript:location='" + redirectURL + "'")); 10441 WebURLRequest request(toKURL("javascript:location='" + redirectURL + "'"));
10449 helper.webView()->mainFrameImpl()->loadRequest(request); 10442 helper.webView()->mainFrameImpl()->loadRequest(request);
10450 10443
10451 // Normally, the result of the JS url replaces the existing contents on the 10444 // Normally, the result of the JS url replaces the existing contents on the
10452 // Document. However, if the JS triggers a navigation, the contents should 10445 // Document. However, if the JS triggers a navigation, the contents should
10453 // not be replaced. 10446 // not be replaced.
10454 EXPECT_EQ("", toLocalFrame(helper.webView()->page()->mainFrame()) 10447 EXPECT_EQ("", toLocalFrame(helper.webView()->page()->mainFrame())
10455 ->document() 10448 ->document()
10456 ->documentElement() 10449 ->documentElement()
10457 ->innerText()); 10450 ->innerText());
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
10569 int dataLength) override { 10562 int dataLength) override {
10570 EXPECT_GT(dataLength, 16); 10563 EXPECT_GT(dataLength, 16);
10571 originalClient->didReceiveData(data, 16); 10564 originalClient->didReceiveData(data, 16);
10572 // This didReceiveData call shouldn't crash due to a failed assertion. 10565 // This didReceiveData call shouldn't crash due to a failed assertion.
10573 originalClient->didReceiveData(data + 16, dataLength - 16); 10566 originalClient->didReceiveData(data + 16, dataLength - 16);
10574 } 10567 }
10575 }; 10568 };
10576 10569
10577 TEST_F(WebFrameTest, ImageDocumentDecodeError) { 10570 TEST_F(WebFrameTest, ImageDocumentDecodeError) {
10578 std::string url = m_baseURL + "not_an_image.ico"; 10571 std::string url = m_baseURL + "not_an_image.ico";
10579 URLTestHelpers::registerMockedURLLoad(toKURL(url), "not_an_image.ico", 10572 URLTestHelpers::registerMockedURLLoad(
10580 "image/x-icon"); 10573 toKURL(url), testing::webTestDataPath("not_an_image.ico"),
10574 "image/x-icon");
10581 MultipleDataChunkDelegate delegate; 10575 MultipleDataChunkDelegate delegate;
10582 Platform::current()->getURLLoaderMockFactory()->setLoaderDelegate(&delegate); 10576 Platform::current()->getURLLoaderMockFactory()->setLoaderDelegate(&delegate);
10583 FrameTestHelpers::WebViewHelper helper; 10577 FrameTestHelpers::WebViewHelper helper;
10584 helper.initializeAndLoad(url, true); 10578 helper.initializeAndLoad(url, true);
10585 Platform::current()->getURLLoaderMockFactory()->setLoaderDelegate(nullptr); 10579 Platform::current()->getURLLoaderMockFactory()->setLoaderDelegate(nullptr);
10586 10580
10587 Document* document = 10581 Document* document =
10588 toLocalFrame(helper.webView()->page()->mainFrame())->document(); 10582 toLocalFrame(helper.webView()->page()->mainFrame())->document();
10589 EXPECT_TRUE(document->isImageDocument()); 10583 EXPECT_TRUE(document->isImageDocument());
10590 EXPECT_EQ(ResourceStatus::DecodeError, 10584 EXPECT_EQ(ResourceStatus::DecodeError,
(...skipping 735 matching lines...) Expand 10 before | Expand all | Expand 10 after
11326 11320
11327 LoadingObserverFrameClient& childClient() { return m_childClient; } 11321 LoadingObserverFrameClient& childClient() { return m_childClient; }
11328 11322
11329 private: 11323 private:
11330 LoadingObserverFrameClient m_childClient; 11324 LoadingObserverFrameClient m_childClient;
11331 }; 11325 };
11332 11326
11333 registerMockedHttpURLLoad("single_iframe.html"); 11327 registerMockedHttpURLLoad("single_iframe.html");
11334 URLTestHelpers::registerMockedURLLoad( 11328 URLTestHelpers::registerMockedURLLoad(
11335 toKURL(m_baseURL + "visible_iframe.html"), 11329 toKURL(m_baseURL + "visible_iframe.html"),
11336 WebString::fromUTF8("frame_with_frame.html")); 11330 testing::webTestDataPath("frame_with_frame.html"));
11337 registerMockedHttpURLLoad("parent_detaching_frame.html"); 11331 registerMockedHttpURLLoad("parent_detaching_frame.html");
11338 11332
11339 FrameTestHelpers::WebViewHelper webViewHelper; 11333 FrameTestHelpers::WebViewHelper webViewHelper;
11340 MainFrameClient mainFrameClient; 11334 MainFrameClient mainFrameClient;
11341 webViewHelper.initializeAndLoad(m_baseURL + "single_iframe.html", true, 11335 webViewHelper.initializeAndLoad(m_baseURL + "single_iframe.html", true,
11342 &mainFrameClient); 11336 &mainFrameClient);
11343 11337
11344 EXPECT_TRUE(mainFrameClient.childClient().didCallFrameDetached()); 11338 EXPECT_TRUE(mainFrameClient.childClient().didCallFrameDetached());
11345 EXPECT_TRUE(mainFrameClient.childClient().didCallDidStopLoading()); 11339 EXPECT_TRUE(mainFrameClient.childClient().didCallDidStopLoading());
11346 EXPECT_TRUE(mainFrameClient.childClient().didCallDidFinishDocumentLoad()); 11340 EXPECT_TRUE(mainFrameClient.childClient().didCallDidFinishDocumentLoad());
11347 EXPECT_TRUE(mainFrameClient.childClient().didCallDidHandleOnloadEvents()); 11341 EXPECT_TRUE(mainFrameClient.childClient().didCallDidHandleOnloadEvents());
11348 11342
11349 webViewHelper.reset(); 11343 webViewHelper.reset();
11350 } 11344 }
11351 11345
11352 } // namespace blink 11346 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/tests/WebFrameSerializerTest.cpp ('k') | third_party/WebKit/Source/web/tests/WebImageTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698