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

Side by Side Diff: third_party/WebKit/Source/core/fetch/ImageResourceTest.cpp

Issue 2469873002: [ImageResource 4] Split ImageResource into Resource and Image parts (Closed)
Patch Set: style 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) 2013, Google Inc. All rights reserved. 2 * Copyright (c) 2013, 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 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 235
236 // Send the multipart response. No image or data buffer is created. Note that 236 // Send the multipart response. No image or data buffer is created. Note that
237 // the response must be routed through ResourceLoader to ensure the load is 237 // the response must be routed through ResourceLoader to ensure the load is
238 // flagged as multipart. 238 // flagged as multipart.
239 ResourceResponse multipartResponse(KURL(), "multipart/x-mixed-replace", 0, 239 ResourceResponse multipartResponse(KURL(), "multipart/x-mixed-replace", 0,
240 nullAtom, String()); 240 nullAtom, String());
241 multipartResponse.setMultipartBoundary("boundary", strlen("boundary")); 241 multipartResponse.setMultipartBoundary("boundary", strlen("boundary"));
242 cachedImage->loader()->didReceiveResponse( 242 cachedImage->loader()->didReceiveResponse(
243 WrappedResourceResponse(multipartResponse), nullptr); 243 WrappedResourceResponse(multipartResponse), nullptr);
244 EXPECT_FALSE(cachedImage->resourceBuffer()); 244 EXPECT_FALSE(cachedImage->resourceBuffer());
245 EXPECT_FALSE(cachedImage->hasImage()); 245 EXPECT_FALSE(cachedImage->getContent()->hasImage());
246 EXPECT_EQ(0, client->imageChangedCount()); 246 EXPECT_EQ(0, client->imageChangedCount());
247 EXPECT_FALSE(client->notifyFinishedCalled()); 247 EXPECT_FALSE(client->notifyFinishedCalled());
248 EXPECT_EQ("multipart/x-mixed-replace", cachedImage->response().mimeType()); 248 EXPECT_EQ("multipart/x-mixed-replace", cachedImage->response().mimeType());
249 249
250 const char firstPart[] = 250 const char firstPart[] =
251 "--boundary\n" 251 "--boundary\n"
252 "Content-Type: image/svg+xml\n\n"; 252 "Content-Type: image/svg+xml\n\n";
253 cachedImage->appendData(firstPart, strlen(firstPart)); 253 cachedImage->appendData(firstPart, strlen(firstPart));
254 // Send the response for the first real part. No image or data buffer is 254 // Send the response for the first real part. No image or data buffer is
255 // created. 255 // created.
256 EXPECT_FALSE(cachedImage->resourceBuffer()); 256 EXPECT_FALSE(cachedImage->resourceBuffer());
257 EXPECT_FALSE(cachedImage->hasImage()); 257 EXPECT_FALSE(cachedImage->getContent()->hasImage());
258 EXPECT_EQ(0, client->imageChangedCount()); 258 EXPECT_EQ(0, client->imageChangedCount());
259 EXPECT_FALSE(client->notifyFinishedCalled()); 259 EXPECT_FALSE(client->notifyFinishedCalled());
260 EXPECT_EQ("image/svg+xml", cachedImage->response().mimeType()); 260 EXPECT_EQ("image/svg+xml", cachedImage->response().mimeType());
261 261
262 const char secondPart[] = 262 const char secondPart[] =
263 "<svg xmlns='http://www.w3.org/2000/svg' width='1' height='1'><rect " 263 "<svg xmlns='http://www.w3.org/2000/svg' width='1' height='1'><rect "
264 "width='1' height='1' fill='green'/></svg>\n"; 264 "width='1' height='1' fill='green'/></svg>\n";
265 // The first bytes arrive. The data buffer is created, but no image is 265 // The first bytes arrive. The data buffer is created, but no image is
266 // created. 266 // created.
267 cachedImage->appendData(secondPart, strlen(secondPart)); 267 cachedImage->appendData(secondPart, strlen(secondPart));
268 EXPECT_TRUE(cachedImage->resourceBuffer()); 268 EXPECT_TRUE(cachedImage->resourceBuffer());
269 EXPECT_FALSE(cachedImage->hasImage()); 269 EXPECT_FALSE(cachedImage->getContent()->hasImage());
270 EXPECT_EQ(0, client->imageChangedCount()); 270 EXPECT_EQ(0, client->imageChangedCount());
271 EXPECT_FALSE(client->notifyFinishedCalled()); 271 EXPECT_FALSE(client->notifyFinishedCalled());
272 272
273 // Add a client to check an assertion error doesn't happen 273 // Add a client to check an assertion error doesn't happen
274 // (crbug.com/630983). 274 // (crbug.com/630983).
275 Persistent<MockImageResourceClient> client2 = 275 Persistent<MockImageResourceClient> client2 =
276 new MockImageResourceClient(cachedImage); 276 new MockImageResourceClient(cachedImage);
277 EXPECT_EQ(0, client2->imageChangedCount()); 277 EXPECT_EQ(0, client2->imageChangedCount());
278 EXPECT_FALSE(client2->notifyFinishedCalled()); 278 EXPECT_FALSE(client2->notifyFinishedCalled());
279 279
280 const char thirdPart[] = "--boundary"; 280 const char thirdPart[] = "--boundary";
281 cachedImage->appendData(thirdPart, strlen(thirdPart)); 281 cachedImage->appendData(thirdPart, strlen(thirdPart));
282 ASSERT_TRUE(cachedImage->resourceBuffer()); 282 ASSERT_TRUE(cachedImage->resourceBuffer());
283 EXPECT_EQ(strlen(secondPart) - 1, cachedImage->resourceBuffer()->size()); 283 EXPECT_EQ(strlen(secondPart) - 1, cachedImage->resourceBuffer()->size());
284 284
285 // This part finishes. The image is created, callbacks are sent, and the data 285 // This part finishes. The image is created, callbacks are sent, and the data
286 // buffer is cleared. 286 // buffer is cleared.
287 cachedImage->loader()->didFinishLoading(0.0, 0, 0); 287 cachedImage->loader()->didFinishLoading(0.0, 0, 0);
288 EXPECT_TRUE(cachedImage->resourceBuffer()); 288 EXPECT_TRUE(cachedImage->resourceBuffer());
289 EXPECT_FALSE(cachedImage->errorOccurred()); 289 EXPECT_FALSE(cachedImage->errorOccurred());
290 ASSERT_TRUE(cachedImage->hasImage()); 290 ASSERT_TRUE(cachedImage->getContent()->hasImage());
291 EXPECT_FALSE(cachedImage->getImage()->isNull()); 291 EXPECT_FALSE(cachedImage->getContent()->getImage()->isNull());
292 EXPECT_EQ(1, cachedImage->getImage()->width()); 292 EXPECT_EQ(1, cachedImage->getContent()->getImage()->width());
293 EXPECT_EQ(1, cachedImage->getImage()->height()); 293 EXPECT_EQ(1, cachedImage->getContent()->getImage()->height());
294 EXPECT_EQ(1, client->imageChangedCount()); 294 EXPECT_EQ(1, client->imageChangedCount());
295 EXPECT_TRUE(client->notifyFinishedCalled()); 295 EXPECT_TRUE(client->notifyFinishedCalled());
296 EXPECT_EQ(1, client2->imageChangedCount()); 296 EXPECT_EQ(1, client2->imageChangedCount());
297 EXPECT_TRUE(client2->notifyFinishedCalled()); 297 EXPECT_TRUE(client2->notifyFinishedCalled());
298 } 298 }
299 299
300 TEST(ImageResourceTest, CancelOnDetach) { 300 TEST(ImageResourceTest, CancelOnDetach) {
301 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); 301 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html");
302 ScopedRegisteredURL scopedRegisteredURL(testURL); 302 ScopedRegisteredURL scopedRegisteredURL(testURL);
303 303
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
344 cachedImage->responseReceived( 344 cachedImage->responseReceived(
345 ResourceResponse(KURL(), "image/jpeg", sizeof(kJpegImage), nullAtom, 345 ResourceResponse(KURL(), "image/jpeg", sizeof(kJpegImage), nullAtom,
346 String()), 346 String()),
347 nullptr); 347 nullptr);
348 cachedImage->appendData(reinterpret_cast<const char*>(kJpegImage), 348 cachedImage->appendData(reinterpret_cast<const char*>(kJpegImage),
349 sizeof(kJpegImage)); 349 sizeof(kJpegImage));
350 EXPECT_NE(0u, cachedImage->encodedSizeMemoryUsageForTesting()); 350 EXPECT_NE(0u, cachedImage->encodedSizeMemoryUsageForTesting());
351 cachedImage->finish(); 351 cachedImage->finish();
352 EXPECT_EQ(0u, cachedImage->encodedSizeMemoryUsageForTesting()); 352 EXPECT_EQ(0u, cachedImage->encodedSizeMemoryUsageForTesting());
353 EXPECT_FALSE(cachedImage->errorOccurred()); 353 EXPECT_FALSE(cachedImage->errorOccurred());
354 ASSERT_TRUE(cachedImage->hasImage()); 354 ASSERT_TRUE(cachedImage->getContent()->hasImage());
355 EXPECT_FALSE(cachedImage->getImage()->isNull()); 355 EXPECT_FALSE(cachedImage->getContent()->getImage()->isNull());
356 EXPECT_TRUE(client->notifyFinishedCalled()); 356 EXPECT_TRUE(client->notifyFinishedCalled());
357 357
358 // The prune comes when the ImageResource still has clients. The image should 358 // The prune comes when the ImageResource still has clients. The image should
359 // not be deleted. 359 // not be deleted.
360 cachedImage->prune(); 360 cachedImage->prune();
361 EXPECT_TRUE(cachedImage->isAlive()); 361 EXPECT_TRUE(cachedImage->isAlive());
362 ASSERT_TRUE(cachedImage->hasImage()); 362 ASSERT_TRUE(cachedImage->getContent()->hasImage());
363 EXPECT_FALSE(cachedImage->getImage()->isNull()); 363 EXPECT_FALSE(cachedImage->getContent()->getImage()->isNull());
364 364
365 // The ImageResource no longer has clients. The decoded image data should be 365 // The ImageResource no longer has clients. The decoded image data should be
366 // deleted by prune. 366 // deleted by prune.
367 client->removeAsClient(); 367 client->removeAsClient();
368 cachedImage->prune(); 368 cachedImage->prune();
369 EXPECT_FALSE(cachedImage->isAlive()); 369 EXPECT_FALSE(cachedImage->isAlive());
370 EXPECT_TRUE(cachedImage->hasImage()); 370 EXPECT_TRUE(cachedImage->getContent()->hasImage());
371 // TODO(hajimehoshi): Should check cachedImage doesn't have decoded image 371 // TODO(hajimehoshi): Should check cachedImage doesn't have decoded image
372 // data. 372 // data.
373 } 373 }
374 374
375 TEST(ImageResourceTest, UpdateBitmapImages) { 375 TEST(ImageResourceTest, UpdateBitmapImages) {
376 ImageResource* cachedImage = ImageResource::create(ResourceRequest()); 376 ImageResource* cachedImage = ImageResource::create(ResourceRequest());
377 cachedImage->setStatus(Resource::Pending); 377 cachedImage->setStatus(Resource::Pending);
378 378
379 Persistent<MockImageResourceClient> client = 379 Persistent<MockImageResourceClient> client =
380 new MockImageResourceClient(cachedImage); 380 new MockImageResourceClient(cachedImage);
381 381
382 // Send the image response. 382 // Send the image response.
383 cachedImage->responseReceived( 383 cachedImage->responseReceived(
384 ResourceResponse(KURL(), "image/jpeg", sizeof(kJpegImage), nullAtom, 384 ResourceResponse(KURL(), "image/jpeg", sizeof(kJpegImage), nullAtom,
385 String()), 385 String()),
386 nullptr); 386 nullptr);
387 cachedImage->appendData(reinterpret_cast<const char*>(kJpegImage), 387 cachedImage->appendData(reinterpret_cast<const char*>(kJpegImage),
388 sizeof(kJpegImage)); 388 sizeof(kJpegImage));
389 cachedImage->finish(); 389 cachedImage->finish();
390 EXPECT_FALSE(cachedImage->errorOccurred()); 390 EXPECT_FALSE(cachedImage->errorOccurred());
391 ASSERT_TRUE(cachedImage->hasImage()); 391 ASSERT_TRUE(cachedImage->getContent()->hasImage());
392 EXPECT_FALSE(cachedImage->getImage()->isNull()); 392 EXPECT_FALSE(cachedImage->getContent()->getImage()->isNull());
393 EXPECT_EQ(2, client->imageChangedCount()); 393 EXPECT_EQ(2, client->imageChangedCount());
394 EXPECT_TRUE(client->notifyFinishedCalled()); 394 EXPECT_TRUE(client->notifyFinishedCalled());
395 EXPECT_TRUE(cachedImage->getImage()->isBitmapImage()); 395 EXPECT_TRUE(cachedImage->getContent()->getImage()->isBitmapImage());
396 } 396 }
397 397
398 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderAfterFinished) { 398 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderAfterFinished) {
399 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); 399 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html");
400 ScopedRegisteredURL scopedRegisteredURL(testURL); 400 ScopedRegisteredURL scopedRegisteredURL(testURL);
401 ResourceRequest request = ResourceRequest(testURL); 401 ResourceRequest request = ResourceRequest(testURL);
402 request.setLoFiState(WebURLRequest::LoFiOn); 402 request.setLoFiState(WebURLRequest::LoFiOn);
403 ImageResource* cachedImage = ImageResource::create(request); 403 ImageResource* cachedImage = ImageResource::create(request);
404 cachedImage->setStatus(Resource::Pending); 404 cachedImage->setStatus(Resource::Pending);
405 405
406 Persistent<MockImageResourceClient> client = 406 Persistent<MockImageResourceClient> client =
407 new MockImageResourceClient(cachedImage); 407 new MockImageResourceClient(cachedImage);
408 ResourceFetcher* fetcher = 408 ResourceFetcher* fetcher =
409 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()); 409 ResourceFetcher::create(ImageResourceTestMockFetchContext::create());
410 410
411 // Send the image response. 411 // Send the image response.
412 ResourceResponse resourceResponse(KURL(), "image/jpeg", sizeof(kJpegImage), 412 ResourceResponse resourceResponse(KURL(), "image/jpeg", sizeof(kJpegImage),
413 nullAtom, String()); 413 nullAtom, String());
414 resourceResponse.addHTTPHeaderField("chrome-proxy-content-transform", 414 resourceResponse.addHTTPHeaderField("chrome-proxy-content-transform",
415 "empty-image"); 415 "empty-image");
416 416
417 cachedImage->responseReceived(resourceResponse, nullptr); 417 cachedImage->responseReceived(resourceResponse, nullptr);
418 cachedImage->appendData(reinterpret_cast<const char*>(kJpegImage), 418 cachedImage->appendData(reinterpret_cast<const char*>(kJpegImage),
419 sizeof(kJpegImage)); 419 sizeof(kJpegImage));
420 cachedImage->finish(); 420 cachedImage->finish();
421 EXPECT_FALSE(cachedImage->errorOccurred()); 421 EXPECT_FALSE(cachedImage->errorOccurred());
422 ASSERT_TRUE(cachedImage->hasImage()); 422 ASSERT_TRUE(cachedImage->getContent()->hasImage());
423 EXPECT_FALSE(cachedImage->getImage()->isNull()); 423 EXPECT_FALSE(cachedImage->getContent()->getImage()->isNull());
424 EXPECT_EQ(2, client->imageChangedCount()); 424 EXPECT_EQ(2, client->imageChangedCount());
425 EXPECT_EQ(1, client->imageNotifyFinishedCount()); 425 EXPECT_EQ(1, client->imageNotifyFinishedCount());
426 EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnLastImageChanged()); 426 EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnLastImageChanged());
427 // The client should have been notified that the image load completed. 427 // The client should have been notified that the image load completed.
428 EXPECT_TRUE(client->notifyFinishedCalled()); 428 EXPECT_TRUE(client->notifyFinishedCalled());
429 EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnNotifyFinished()); 429 EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnNotifyFinished());
430 EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnImageNotifyFinished()); 430 EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnImageNotifyFinished());
431 EXPECT_TRUE(cachedImage->getImage()->isBitmapImage()); 431 EXPECT_TRUE(cachedImage->getContent()->getImage()->isBitmapImage());
432 EXPECT_EQ(1, cachedImage->getImage()->width()); 432 EXPECT_EQ(1, cachedImage->getContent()->getImage()->width());
433 EXPECT_EQ(1, cachedImage->getImage()->height()); 433 EXPECT_EQ(1, cachedImage->getContent()->getImage()->height());
434 434
435 // Call reloadIfLoFiOrPlaceholder() after the image has finished loading. 435 // Call reloadIfLoFiOrPlaceholder() after the image has finished loading.
436 cachedImage->reloadIfLoFiOrPlaceholder(fetcher); 436 cachedImage->reloadIfLoFiOrPlaceholder(fetcher);
437 EXPECT_FALSE(cachedImage->errorOccurred()); 437 EXPECT_FALSE(cachedImage->errorOccurred());
438 EXPECT_FALSE(cachedImage->resourceBuffer()); 438 EXPECT_FALSE(cachedImage->resourceBuffer());
439 EXPECT_FALSE(cachedImage->hasImage()); 439 EXPECT_FALSE(cachedImage->getContent()->hasImage());
440 EXPECT_EQ(3, client->imageChangedCount()); 440 EXPECT_EQ(3, client->imageChangedCount());
441 EXPECT_EQ(1, client->imageNotifyFinishedCount()); 441 EXPECT_EQ(1, client->imageNotifyFinishedCount());
442 442
443 cachedImage->loader()->didReceiveResponse( 443 cachedImage->loader()->didReceiveResponse(
444 WrappedResourceResponse(resourceResponse), nullptr); 444 WrappedResourceResponse(resourceResponse), nullptr);
445 cachedImage->loader()->didReceiveData( 445 cachedImage->loader()->didReceiveData(
446 reinterpret_cast<const char*>(kJpegImage2), sizeof(kJpegImage2)); 446 reinterpret_cast<const char*>(kJpegImage2), sizeof(kJpegImage2));
447 cachedImage->loader()->didFinishLoading(0.0, sizeof(kJpegImage2), 447 cachedImage->loader()->didFinishLoading(0.0, sizeof(kJpegImage2),
448 sizeof(kJpegImage2)); 448 sizeof(kJpegImage2));
449 EXPECT_FALSE(cachedImage->errorOccurred()); 449 EXPECT_FALSE(cachedImage->errorOccurred());
450 ASSERT_TRUE(cachedImage->hasImage()); 450 ASSERT_TRUE(cachedImage->getContent()->hasImage());
451 EXPECT_FALSE(cachedImage->getImage()->isNull()); 451 EXPECT_FALSE(cachedImage->getContent()->getImage()->isNull());
452 EXPECT_EQ(sizeof(kJpegImage2), client->encodedSizeOnLastImageChanged()); 452 EXPECT_EQ(sizeof(kJpegImage2), client->encodedSizeOnLastImageChanged());
453 EXPECT_TRUE(client->notifyFinishedCalled()); 453 EXPECT_TRUE(client->notifyFinishedCalled());
454 454
455 // The client should not have been notified of completion again. 455 // The client should not have been notified of completion again.
456 EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnNotifyFinished()); 456 EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnNotifyFinished());
457 EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnImageNotifyFinished()); 457 EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnImageNotifyFinished());
458 458
459 EXPECT_TRUE(cachedImage->getImage()->isBitmapImage()); 459 EXPECT_TRUE(cachedImage->getContent()->getImage()->isBitmapImage());
460 EXPECT_EQ(50, cachedImage->getImage()->width()); 460 EXPECT_EQ(50, cachedImage->getContent()->getImage()->width());
461 EXPECT_EQ(50, cachedImage->getImage()->height()); 461 EXPECT_EQ(50, cachedImage->getContent()->getImage()->height());
462 } 462 }
463 463
464 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderDuringFetch) { 464 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderDuringFetch) {
465 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); 465 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html");
466 ScopedRegisteredURL scopedRegisteredURL(testURL); 466 ScopedRegisteredURL scopedRegisteredURL(testURL);
467 467
468 ResourceRequest request(testURL); 468 ResourceRequest request(testURL);
469 request.setLoFiState(WebURLRequest::LoFiOn); 469 request.setLoFiState(WebURLRequest::LoFiOn);
470 FetchRequest fetchRequest(request, FetchInitiatorInfo()); 470 FetchRequest fetchRequest(request, FetchInitiatorInfo());
471 ResourceFetcher* fetcher = 471 ResourceFetcher* fetcher =
472 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()); 472 ResourceFetcher::create(ImageResourceTestMockFetchContext::create());
473 473
474 ImageResource* cachedImage = ImageResource::fetch(fetchRequest, fetcher); 474 ImageResource* cachedImage = ImageResource::fetch(fetchRequest, fetcher);
475 Persistent<MockImageResourceClient> client = 475 Persistent<MockImageResourceClient> client =
476 new MockImageResourceClient(cachedImage); 476 new MockImageResourceClient(cachedImage);
477 477
478 // Send the image response. 478 // Send the image response.
479 ResourceResponse initialResourceResponse( 479 ResourceResponse initialResourceResponse(
480 testURL, "image/jpeg", sizeof(kJpegImage), nullAtom, String()); 480 testURL, "image/jpeg", sizeof(kJpegImage), nullAtom, String());
481 initialResourceResponse.addHTTPHeaderField("chrome-proxy", "q=low"); 481 initialResourceResponse.addHTTPHeaderField("chrome-proxy", "q=low");
482 482
483 cachedImage->loader()->didReceiveResponse( 483 cachedImage->loader()->didReceiveResponse(
484 WrappedResourceResponse(initialResourceResponse)); 484 WrappedResourceResponse(initialResourceResponse));
485 cachedImage->loader()->didReceiveData( 485 cachedImage->loader()->didReceiveData(
486 reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage)); 486 reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage));
487 487
488 EXPECT_FALSE(cachedImage->errorOccurred()); 488 EXPECT_FALSE(cachedImage->errorOccurred());
489 ASSERT_TRUE(cachedImage->hasImage()); 489 ASSERT_TRUE(cachedImage->getContent()->hasImage());
490 EXPECT_FALSE(cachedImage->getImage()->isNull()); 490 EXPECT_FALSE(cachedImage->getContent()->getImage()->isNull());
491 EXPECT_EQ(1, client->imageChangedCount()); 491 EXPECT_EQ(1, client->imageChangedCount());
492 EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnLastImageChanged()); 492 EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnLastImageChanged());
493 EXPECT_FALSE(client->notifyFinishedCalled()); 493 EXPECT_FALSE(client->notifyFinishedCalled());
494 EXPECT_TRUE(cachedImage->getImage()->isBitmapImage()); 494 EXPECT_TRUE(cachedImage->getContent()->getImage()->isBitmapImage());
495 EXPECT_EQ(1, cachedImage->getImage()->width()); 495 EXPECT_EQ(1, cachedImage->getContent()->getImage()->width());
496 EXPECT_EQ(1, cachedImage->getImage()->height()); 496 EXPECT_EQ(1, cachedImage->getContent()->getImage()->height());
497 497
498 // Call reloadIfLoFiOrPlaceholder() while the image is still loading. 498 // Call reloadIfLoFiOrPlaceholder() while the image is still loading.
499 cachedImage->reloadIfLoFiOrPlaceholder(fetcher); 499 cachedImage->reloadIfLoFiOrPlaceholder(fetcher);
500 EXPECT_FALSE(cachedImage->errorOccurred()); 500 EXPECT_FALSE(cachedImage->errorOccurred());
501 EXPECT_FALSE(cachedImage->resourceBuffer()); 501 EXPECT_FALSE(cachedImage->resourceBuffer());
502 EXPECT_FALSE(cachedImage->hasImage()); 502 EXPECT_FALSE(cachedImage->getContent()->hasImage());
503 EXPECT_EQ(2, client->imageChangedCount()); 503 EXPECT_EQ(2, client->imageChangedCount());
504 EXPECT_EQ(0U, client->encodedSizeOnLastImageChanged()); 504 EXPECT_EQ(0U, client->encodedSizeOnLastImageChanged());
505 // The client should not have been notified of completion yet, since the image 505 // The client should not have been notified of completion yet, since the image
506 // is still loading. 506 // is still loading.
507 EXPECT_FALSE(client->notifyFinishedCalled()); 507 EXPECT_FALSE(client->notifyFinishedCalled());
508 508
509 cachedImage->loader()->didReceiveResponse( 509 cachedImage->loader()->didReceiveResponse(
510 WrappedResourceResponse(ResourceResponse( 510 WrappedResourceResponse(ResourceResponse(
511 testURL, "image/jpeg", sizeof(kJpegImage2), nullAtom, String())), 511 testURL, "image/jpeg", sizeof(kJpegImage2), nullAtom, String())),
512 nullptr); 512 nullptr);
513 cachedImage->loader()->didReceiveData( 513 cachedImage->loader()->didReceiveData(
514 reinterpret_cast<const char*>(kJpegImage2), sizeof(kJpegImage2)); 514 reinterpret_cast<const char*>(kJpegImage2), sizeof(kJpegImage2));
515 cachedImage->loader()->didFinishLoading(0.0, sizeof(kJpegImage2), 515 cachedImage->loader()->didFinishLoading(0.0, sizeof(kJpegImage2),
516 sizeof(kJpegImage2)); 516 sizeof(kJpegImage2));
517 517
518 EXPECT_FALSE(cachedImage->errorOccurred()); 518 EXPECT_FALSE(cachedImage->errorOccurred());
519 ASSERT_TRUE(cachedImage->hasImage()); 519 ASSERT_TRUE(cachedImage->getContent()->hasImage());
520 EXPECT_FALSE(cachedImage->getImage()->isNull()); 520 EXPECT_FALSE(cachedImage->getContent()->getImage()->isNull());
521 EXPECT_EQ(sizeof(kJpegImage2), client->encodedSizeOnLastImageChanged()); 521 EXPECT_EQ(sizeof(kJpegImage2), client->encodedSizeOnLastImageChanged());
522 // The client should have been notified of completion only after the reload 522 // The client should have been notified of completion only after the reload
523 // completed. 523 // completed.
524 EXPECT_TRUE(client->notifyFinishedCalled()); 524 EXPECT_TRUE(client->notifyFinishedCalled());
525 EXPECT_EQ(sizeof(kJpegImage2), client->encodedSizeOnNotifyFinished()); 525 EXPECT_EQ(sizeof(kJpegImage2), client->encodedSizeOnNotifyFinished());
526 EXPECT_EQ(sizeof(kJpegImage2), client->encodedSizeOnImageNotifyFinished()); 526 EXPECT_EQ(sizeof(kJpegImage2), client->encodedSizeOnImageNotifyFinished());
527 EXPECT_TRUE(cachedImage->getImage()->isBitmapImage()); 527 EXPECT_TRUE(cachedImage->getContent()->getImage()->isBitmapImage());
528 EXPECT_EQ(50, cachedImage->getImage()->width()); 528 EXPECT_EQ(50, cachedImage->getContent()->getImage()->width());
529 EXPECT_EQ(50, cachedImage->getImage()->height()); 529 EXPECT_EQ(50, cachedImage->getContent()->getImage()->height());
530 } 530 }
531 531
532 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderForPlaceholder) { 532 TEST(ImageResourceTest, ReloadIfLoFiOrPlaceholderForPlaceholder) {
533 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); 533 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html");
534 ScopedRegisteredURL scopedRegisteredURL(testURL); 534 ScopedRegisteredURL scopedRegisteredURL(testURL);
535 535
536 ResourceFetcher* fetcher = 536 ResourceFetcher* fetcher =
537 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()); 537 ResourceFetcher::create(ImageResourceTestMockFetchContext::create());
538 FetchRequest request(testURL, FetchInitiatorInfo()); 538 FetchRequest request(testURL, FetchInitiatorInfo());
539 request.setAllowImagePlaceholder(); 539 request.setAllowImagePlaceholder();
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
574 TEST(ImageResourceTest, SVGImage) { 574 TEST(ImageResourceTest, SVGImage) {
575 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo"); 575 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo");
576 ImageResource* imageResource = ImageResource::create(ResourceRequest(url)); 576 ImageResource* imageResource = ImageResource::create(ResourceRequest(url));
577 Persistent<MockImageResourceClient> client = 577 Persistent<MockImageResourceClient> client =
578 new MockImageResourceClient(imageResource); 578 new MockImageResourceClient(imageResource);
579 579
580 receiveResponse(imageResource, url, "image/svg+xml", kSvgImage, 580 receiveResponse(imageResource, url, "image/svg+xml", kSvgImage,
581 strlen(kSvgImage)); 581 strlen(kSvgImage));
582 582
583 EXPECT_FALSE(imageResource->errorOccurred()); 583 EXPECT_FALSE(imageResource->errorOccurred());
584 ASSERT_TRUE(imageResource->hasImage()); 584 ASSERT_TRUE(imageResource->getContent()->hasImage());
585 EXPECT_FALSE(imageResource->getImage()->isNull()); 585 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull());
586 EXPECT_EQ(1, client->imageChangedCount()); 586 EXPECT_EQ(1, client->imageChangedCount());
587 EXPECT_TRUE(client->notifyFinishedCalled()); 587 EXPECT_TRUE(client->notifyFinishedCalled());
588 EXPECT_FALSE(imageResource->getImage()->isBitmapImage()); 588 EXPECT_FALSE(imageResource->getContent()->getImage()->isBitmapImage());
589 } 589 }
590 590
591 TEST(ImageResourceTest, SuccessfulRevalidationJpeg) { 591 TEST(ImageResourceTest, SuccessfulRevalidationJpeg) {
592 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo"); 592 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo");
593 ImageResource* imageResource = ImageResource::create(ResourceRequest(url)); 593 ImageResource* imageResource = ImageResource::create(ResourceRequest(url));
594 Persistent<MockImageResourceClient> client = 594 Persistent<MockImageResourceClient> client =
595 new MockImageResourceClient(imageResource); 595 new MockImageResourceClient(imageResource);
596 596
597 receiveResponse(imageResource, url, "image/jpeg", 597 receiveResponse(imageResource, url, "image/jpeg",
598 reinterpret_cast<const char*>(kJpegImage), 598 reinterpret_cast<const char*>(kJpegImage),
599 sizeof(kJpegImage)); 599 sizeof(kJpegImage));
600 600
601 EXPECT_FALSE(imageResource->errorOccurred()); 601 EXPECT_FALSE(imageResource->errorOccurred());
602 ASSERT_TRUE(imageResource->hasImage()); 602 ASSERT_TRUE(imageResource->getContent()->hasImage());
603 EXPECT_FALSE(imageResource->getImage()->isNull()); 603 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull());
604 EXPECT_EQ(2, client->imageChangedCount()); 604 EXPECT_EQ(2, client->imageChangedCount());
605 EXPECT_EQ(1, client->imageNotifyFinishedCount()); 605 EXPECT_EQ(1, client->imageNotifyFinishedCount());
606 EXPECT_TRUE(client->notifyFinishedCalled()); 606 EXPECT_TRUE(client->notifyFinishedCalled());
607 EXPECT_TRUE(imageResource->getImage()->isBitmapImage()); 607 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage());
608 EXPECT_EQ(1, imageResource->getImage()->width()); 608 EXPECT_EQ(1, imageResource->getContent()->getImage()->width());
609 EXPECT_EQ(1, imageResource->getImage()->height()); 609 EXPECT_EQ(1, imageResource->getContent()->getImage()->height());
610 610
611 imageResource->setRevalidatingRequest(ResourceRequest(url)); 611 imageResource->setRevalidatingRequest(ResourceRequest(url));
612 ResourceResponse response; 612 ResourceResponse response;
613 response.setURL(url); 613 response.setURL(url);
614 response.setHTTPStatusCode(304); 614 response.setHTTPStatusCode(304);
615 615
616 imageResource->responseReceived(response, nullptr); 616 imageResource->responseReceived(response, nullptr);
617 617
618 EXPECT_FALSE(imageResource->errorOccurred()); 618 EXPECT_FALSE(imageResource->errorOccurred());
619 ASSERT_TRUE(imageResource->hasImage()); 619 ASSERT_TRUE(imageResource->getContent()->hasImage());
620 EXPECT_FALSE(imageResource->getImage()->isNull()); 620 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull());
621 EXPECT_EQ(2, client->imageChangedCount()); 621 EXPECT_EQ(2, client->imageChangedCount());
622 EXPECT_EQ(1, client->imageNotifyFinishedCount()); 622 EXPECT_EQ(1, client->imageNotifyFinishedCount());
623 EXPECT_TRUE(client->notifyFinishedCalled()); 623 EXPECT_TRUE(client->notifyFinishedCalled());
624 EXPECT_TRUE(imageResource->getImage()->isBitmapImage()); 624 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage());
625 EXPECT_EQ(1, imageResource->getImage()->width()); 625 EXPECT_EQ(1, imageResource->getContent()->getImage()->width());
626 EXPECT_EQ(1, imageResource->getImage()->height()); 626 EXPECT_EQ(1, imageResource->getContent()->getImage()->height());
627 } 627 }
628 628
629 TEST(ImageResourceTest, SuccessfulRevalidationSvg) { 629 TEST(ImageResourceTest, SuccessfulRevalidationSvg) {
630 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo"); 630 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo");
631 ImageResource* imageResource = ImageResource::create(ResourceRequest(url)); 631 ImageResource* imageResource = ImageResource::create(ResourceRequest(url));
632 Persistent<MockImageResourceClient> client = 632 Persistent<MockImageResourceClient> client =
633 new MockImageResourceClient(imageResource); 633 new MockImageResourceClient(imageResource);
634 634
635 receiveResponse(imageResource, url, "image/svg+xml", kSvgImage, 635 receiveResponse(imageResource, url, "image/svg+xml", kSvgImage,
636 strlen(kSvgImage)); 636 strlen(kSvgImage));
637 637
638 EXPECT_FALSE(imageResource->errorOccurred()); 638 EXPECT_FALSE(imageResource->errorOccurred());
639 ASSERT_TRUE(imageResource->hasImage()); 639 ASSERT_TRUE(imageResource->getContent()->hasImage());
640 EXPECT_FALSE(imageResource->getImage()->isNull()); 640 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull());
641 EXPECT_EQ(1, client->imageChangedCount()); 641 EXPECT_EQ(1, client->imageChangedCount());
642 EXPECT_EQ(1, client->imageNotifyFinishedCount()); 642 EXPECT_EQ(1, client->imageNotifyFinishedCount());
643 EXPECT_TRUE(client->notifyFinishedCalled()); 643 EXPECT_TRUE(client->notifyFinishedCalled());
644 EXPECT_FALSE(imageResource->getImage()->isBitmapImage()); 644 EXPECT_FALSE(imageResource->getContent()->getImage()->isBitmapImage());
645 EXPECT_EQ(200, imageResource->getImage()->width()); 645 EXPECT_EQ(200, imageResource->getContent()->getImage()->width());
646 EXPECT_EQ(200, imageResource->getImage()->height()); 646 EXPECT_EQ(200, imageResource->getContent()->getImage()->height());
647 647
648 imageResource->setRevalidatingRequest(ResourceRequest(url)); 648 imageResource->setRevalidatingRequest(ResourceRequest(url));
649 ResourceResponse response; 649 ResourceResponse response;
650 response.setURL(url); 650 response.setURL(url);
651 response.setHTTPStatusCode(304); 651 response.setHTTPStatusCode(304);
652 imageResource->responseReceived(response, nullptr); 652 imageResource->responseReceived(response, nullptr);
653 653
654 EXPECT_FALSE(imageResource->errorOccurred()); 654 EXPECT_FALSE(imageResource->errorOccurred());
655 ASSERT_TRUE(imageResource->hasImage()); 655 ASSERT_TRUE(imageResource->getContent()->hasImage());
656 EXPECT_FALSE(imageResource->getImage()->isNull()); 656 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull());
657 EXPECT_EQ(1, client->imageChangedCount()); 657 EXPECT_EQ(1, client->imageChangedCount());
658 EXPECT_EQ(1, client->imageNotifyFinishedCount()); 658 EXPECT_EQ(1, client->imageNotifyFinishedCount());
659 EXPECT_TRUE(client->notifyFinishedCalled()); 659 EXPECT_TRUE(client->notifyFinishedCalled());
660 EXPECT_FALSE(imageResource->getImage()->isBitmapImage()); 660 EXPECT_FALSE(imageResource->getContent()->getImage()->isBitmapImage());
661 EXPECT_EQ(200, imageResource->getImage()->width()); 661 EXPECT_EQ(200, imageResource->getContent()->getImage()->width());
662 EXPECT_EQ(200, imageResource->getImage()->height()); 662 EXPECT_EQ(200, imageResource->getContent()->getImage()->height());
663 } 663 }
664 664
665 TEST(ImageResourceTest, FailedRevalidationJpegToJpeg) { 665 TEST(ImageResourceTest, FailedRevalidationJpegToJpeg) {
666 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo"); 666 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo");
667 ImageResource* imageResource = ImageResource::create(ResourceRequest(url)); 667 ImageResource* imageResource = ImageResource::create(ResourceRequest(url));
668 Persistent<MockImageResourceClient> client = 668 Persistent<MockImageResourceClient> client =
669 new MockImageResourceClient(imageResource); 669 new MockImageResourceClient(imageResource);
670 670
671 receiveResponse(imageResource, url, "image/jpeg", 671 receiveResponse(imageResource, url, "image/jpeg",
672 reinterpret_cast<const char*>(kJpegImage), 672 reinterpret_cast<const char*>(kJpegImage),
673 sizeof(kJpegImage)); 673 sizeof(kJpegImage));
674 674
675 EXPECT_FALSE(imageResource->errorOccurred()); 675 EXPECT_FALSE(imageResource->errorOccurred());
676 ASSERT_TRUE(imageResource->hasImage()); 676 ASSERT_TRUE(imageResource->getContent()->hasImage());
677 EXPECT_FALSE(imageResource->getImage()->isNull()); 677 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull());
678 EXPECT_EQ(2, client->imageChangedCount()); 678 EXPECT_EQ(2, client->imageChangedCount());
679 EXPECT_EQ(1, client->imageNotifyFinishedCount()); 679 EXPECT_EQ(1, client->imageNotifyFinishedCount());
680 EXPECT_TRUE(client->notifyFinishedCalled()); 680 EXPECT_TRUE(client->notifyFinishedCalled());
681 EXPECT_TRUE(imageResource->getImage()->isBitmapImage()); 681 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage());
682 EXPECT_EQ(1, imageResource->getImage()->width()); 682 EXPECT_EQ(1, imageResource->getContent()->getImage()->width());
683 EXPECT_EQ(1, imageResource->getImage()->height()); 683 EXPECT_EQ(1, imageResource->getContent()->getImage()->height());
684 684
685 imageResource->setRevalidatingRequest(ResourceRequest(url)); 685 imageResource->setRevalidatingRequest(ResourceRequest(url));
686 receiveResponse(imageResource, url, "image/jpeg", 686 receiveResponse(imageResource, url, "image/jpeg",
687 reinterpret_cast<const char*>(kJpegImage2), 687 reinterpret_cast<const char*>(kJpegImage2),
688 sizeof(kJpegImage2)); 688 sizeof(kJpegImage2));
689 689
690 EXPECT_FALSE(imageResource->errorOccurred()); 690 EXPECT_FALSE(imageResource->errorOccurred());
691 ASSERT_TRUE(imageResource->hasImage()); 691 ASSERT_TRUE(imageResource->getContent()->hasImage());
692 EXPECT_FALSE(imageResource->getImage()->isNull()); 692 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull());
693 EXPECT_EQ(4, client->imageChangedCount()); 693 EXPECT_EQ(4, client->imageChangedCount());
694 EXPECT_EQ(1, client->imageNotifyFinishedCount()); 694 EXPECT_EQ(1, client->imageNotifyFinishedCount());
695 EXPECT_TRUE(client->notifyFinishedCalled()); 695 EXPECT_TRUE(client->notifyFinishedCalled());
696 EXPECT_TRUE(imageResource->getImage()->isBitmapImage()); 696 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage());
697 EXPECT_EQ(50, imageResource->getImage()->width()); 697 EXPECT_EQ(50, imageResource->getContent()->getImage()->width());
698 EXPECT_EQ(50, imageResource->getImage()->height()); 698 EXPECT_EQ(50, imageResource->getContent()->getImage()->height());
699 } 699 }
700 700
701 TEST(ImageResourceTest, FailedRevalidationJpegToSvg) { 701 TEST(ImageResourceTest, FailedRevalidationJpegToSvg) {
702 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo"); 702 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo");
703 ImageResource* imageResource = ImageResource::create(ResourceRequest(url)); 703 ImageResource* imageResource = ImageResource::create(ResourceRequest(url));
704 Persistent<MockImageResourceClient> client = 704 Persistent<MockImageResourceClient> client =
705 new MockImageResourceClient(imageResource); 705 new MockImageResourceClient(imageResource);
706 706
707 receiveResponse(imageResource, url, "image/jpeg", 707 receiveResponse(imageResource, url, "image/jpeg",
708 reinterpret_cast<const char*>(kJpegImage), 708 reinterpret_cast<const char*>(kJpegImage),
709 sizeof(kJpegImage)); 709 sizeof(kJpegImage));
710 710
711 EXPECT_FALSE(imageResource->errorOccurred()); 711 EXPECT_FALSE(imageResource->errorOccurred());
712 ASSERT_TRUE(imageResource->hasImage()); 712 ASSERT_TRUE(imageResource->getContent()->hasImage());
713 EXPECT_FALSE(imageResource->getImage()->isNull()); 713 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull());
714 EXPECT_EQ(2, client->imageChangedCount()); 714 EXPECT_EQ(2, client->imageChangedCount());
715 EXPECT_EQ(1, client->imageNotifyFinishedCount()); 715 EXPECT_EQ(1, client->imageNotifyFinishedCount());
716 EXPECT_TRUE(client->notifyFinishedCalled()); 716 EXPECT_TRUE(client->notifyFinishedCalled());
717 EXPECT_TRUE(imageResource->getImage()->isBitmapImage()); 717 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage());
718 EXPECT_EQ(1, imageResource->getImage()->width()); 718 EXPECT_EQ(1, imageResource->getContent()->getImage()->width());
719 EXPECT_EQ(1, imageResource->getImage()->height()); 719 EXPECT_EQ(1, imageResource->getContent()->getImage()->height());
720 720
721 imageResource->setRevalidatingRequest(ResourceRequest(url)); 721 imageResource->setRevalidatingRequest(ResourceRequest(url));
722 receiveResponse(imageResource, url, "image/svg+xml", kSvgImage, 722 receiveResponse(imageResource, url, "image/svg+xml", kSvgImage,
723 strlen(kSvgImage)); 723 strlen(kSvgImage));
724 724
725 EXPECT_FALSE(imageResource->errorOccurred()); 725 EXPECT_FALSE(imageResource->errorOccurred());
726 ASSERT_TRUE(imageResource->hasImage()); 726 ASSERT_TRUE(imageResource->getContent()->hasImage());
727 EXPECT_FALSE(imageResource->getImage()->isNull()); 727 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull());
728 EXPECT_EQ(3, client->imageChangedCount()); 728 EXPECT_EQ(3, client->imageChangedCount());
729 EXPECT_EQ(1, client->imageNotifyFinishedCount()); 729 EXPECT_EQ(1, client->imageNotifyFinishedCount());
730 EXPECT_TRUE(client->notifyFinishedCalled()); 730 EXPECT_TRUE(client->notifyFinishedCalled());
731 EXPECT_FALSE(imageResource->getImage()->isBitmapImage()); 731 EXPECT_FALSE(imageResource->getContent()->getImage()->isBitmapImage());
732 EXPECT_EQ(200, imageResource->getImage()->width()); 732 EXPECT_EQ(200, imageResource->getContent()->getImage()->width());
733 EXPECT_EQ(200, imageResource->getImage()->height()); 733 EXPECT_EQ(200, imageResource->getContent()->getImage()->height());
734 } 734 }
735 735
736 TEST(ImageResourceTest, FailedRevalidationSvgToJpeg) { 736 TEST(ImageResourceTest, FailedRevalidationSvgToJpeg) {
737 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo"); 737 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo");
738 ImageResource* imageResource = ImageResource::create(ResourceRequest(url)); 738 ImageResource* imageResource = ImageResource::create(ResourceRequest(url));
739 Persistent<MockImageResourceClient> client = 739 Persistent<MockImageResourceClient> client =
740 new MockImageResourceClient(imageResource); 740 new MockImageResourceClient(imageResource);
741 741
742 receiveResponse(imageResource, url, "image/svg+xml", kSvgImage, 742 receiveResponse(imageResource, url, "image/svg+xml", kSvgImage,
743 strlen(kSvgImage)); 743 strlen(kSvgImage));
744 744
745 EXPECT_FALSE(imageResource->errorOccurred()); 745 EXPECT_FALSE(imageResource->errorOccurred());
746 ASSERT_TRUE(imageResource->hasImage()); 746 ASSERT_TRUE(imageResource->getContent()->hasImage());
747 EXPECT_FALSE(imageResource->getImage()->isNull()); 747 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull());
748 EXPECT_EQ(1, client->imageChangedCount()); 748 EXPECT_EQ(1, client->imageChangedCount());
749 EXPECT_EQ(1, client->imageNotifyFinishedCount()); 749 EXPECT_EQ(1, client->imageNotifyFinishedCount());
750 EXPECT_TRUE(client->notifyFinishedCalled()); 750 EXPECT_TRUE(client->notifyFinishedCalled());
751 EXPECT_FALSE(imageResource->getImage()->isBitmapImage()); 751 EXPECT_FALSE(imageResource->getContent()->getImage()->isBitmapImage());
752 EXPECT_EQ(200, imageResource->getImage()->width()); 752 EXPECT_EQ(200, imageResource->getContent()->getImage()->width());
753 EXPECT_EQ(200, imageResource->getImage()->height()); 753 EXPECT_EQ(200, imageResource->getContent()->getImage()->height());
754 754
755 imageResource->setRevalidatingRequest(ResourceRequest(url)); 755 imageResource->setRevalidatingRequest(ResourceRequest(url));
756 receiveResponse(imageResource, url, "image/jpeg", 756 receiveResponse(imageResource, url, "image/jpeg",
757 reinterpret_cast<const char*>(kJpegImage), 757 reinterpret_cast<const char*>(kJpegImage),
758 sizeof(kJpegImage)); 758 sizeof(kJpegImage));
759 759
760 EXPECT_FALSE(imageResource->errorOccurred()); 760 EXPECT_FALSE(imageResource->errorOccurred());
761 ASSERT_TRUE(imageResource->hasImage()); 761 ASSERT_TRUE(imageResource->getContent()->hasImage());
762 EXPECT_FALSE(imageResource->getImage()->isNull()); 762 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull());
763 EXPECT_EQ(3, client->imageChangedCount()); 763 EXPECT_EQ(3, client->imageChangedCount());
764 EXPECT_EQ(1, client->imageNotifyFinishedCount()); 764 EXPECT_EQ(1, client->imageNotifyFinishedCount());
765 EXPECT_TRUE(client->notifyFinishedCalled()); 765 EXPECT_TRUE(client->notifyFinishedCalled());
766 EXPECT_TRUE(imageResource->getImage()->isBitmapImage()); 766 EXPECT_TRUE(imageResource->getContent()->getImage()->isBitmapImage());
767 EXPECT_EQ(1, imageResource->getImage()->width()); 767 EXPECT_EQ(1, imageResource->getContent()->getImage()->width());
768 EXPECT_EQ(1, imageResource->getImage()->height()); 768 EXPECT_EQ(1, imageResource->getContent()->getImage()->height());
769 } 769 }
770 770
771 TEST(ImageResourceTest, FailedRevalidationSvgToSvg) { 771 TEST(ImageResourceTest, FailedRevalidationSvgToSvg) {
772 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo"); 772 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo");
773 ImageResource* imageResource = ImageResource::create(ResourceRequest(url)); 773 ImageResource* imageResource = ImageResource::create(ResourceRequest(url));
774 Persistent<MockImageResourceClient> client = 774 Persistent<MockImageResourceClient> client =
775 new MockImageResourceClient(imageResource); 775 new MockImageResourceClient(imageResource);
776 776
777 receiveResponse(imageResource, url, "image/svg+xml", kSvgImage, 777 receiveResponse(imageResource, url, "image/svg+xml", kSvgImage,
778 strlen(kSvgImage)); 778 strlen(kSvgImage));
779 779
780 EXPECT_FALSE(imageResource->errorOccurred()); 780 EXPECT_FALSE(imageResource->errorOccurred());
781 ASSERT_TRUE(imageResource->hasImage()); 781 ASSERT_TRUE(imageResource->getContent()->hasImage());
782 EXPECT_FALSE(imageResource->getImage()->isNull()); 782 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull());
783 EXPECT_EQ(1, client->imageChangedCount()); 783 EXPECT_EQ(1, client->imageChangedCount());
784 EXPECT_EQ(1, client->imageNotifyFinishedCount()); 784 EXPECT_EQ(1, client->imageNotifyFinishedCount());
785 EXPECT_TRUE(client->notifyFinishedCalled()); 785 EXPECT_TRUE(client->notifyFinishedCalled());
786 EXPECT_FALSE(imageResource->getImage()->isBitmapImage()); 786 EXPECT_FALSE(imageResource->getContent()->getImage()->isBitmapImage());
787 EXPECT_EQ(200, imageResource->getImage()->width()); 787 EXPECT_EQ(200, imageResource->getContent()->getImage()->width());
788 EXPECT_EQ(200, imageResource->getImage()->height()); 788 EXPECT_EQ(200, imageResource->getContent()->getImage()->height());
789 789
790 imageResource->setRevalidatingRequest(ResourceRequest(url)); 790 imageResource->setRevalidatingRequest(ResourceRequest(url));
791 receiveResponse(imageResource, url, "image/svg+xml", kSvgImage2, 791 receiveResponse(imageResource, url, "image/svg+xml", kSvgImage2,
792 strlen(kSvgImage2)); 792 strlen(kSvgImage2));
793 793
794 EXPECT_FALSE(imageResource->errorOccurred()); 794 EXPECT_FALSE(imageResource->errorOccurred());
795 ASSERT_TRUE(imageResource->hasImage()); 795 ASSERT_TRUE(imageResource->getContent()->hasImage());
796 EXPECT_FALSE(imageResource->getImage()->isNull()); 796 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull());
797 EXPECT_EQ(2, client->imageChangedCount()); 797 EXPECT_EQ(2, client->imageChangedCount());
798 EXPECT_EQ(1, client->imageNotifyFinishedCount()); 798 EXPECT_EQ(1, client->imageNotifyFinishedCount());
799 EXPECT_TRUE(client->notifyFinishedCalled()); 799 EXPECT_TRUE(client->notifyFinishedCalled());
800 EXPECT_FALSE(imageResource->getImage()->isBitmapImage()); 800 EXPECT_FALSE(imageResource->getContent()->getImage()->isBitmapImage());
801 EXPECT_EQ(300, imageResource->getImage()->width()); 801 EXPECT_EQ(300, imageResource->getContent()->getImage()->width());
802 EXPECT_EQ(300, imageResource->getImage()->height()); 802 EXPECT_EQ(300, imageResource->getContent()->getImage()->height());
803 } 803 }
804 804
805 // Tests for pruning. 805 // Tests for pruning.
806 806
807 TEST(ImageResourceTest, AddClientAfterPrune) { 807 TEST(ImageResourceTest, AddClientAfterPrune) {
808 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo"); 808 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo");
809 ImageResource* imageResource = ImageResource::create(ResourceRequest(url)); 809 ImageResource* imageResource = ImageResource::create(ResourceRequest(url));
810 810
811 // Adds a ResourceClient but not ImageResourceObserver. 811 // Adds a ResourceClient but not ImageResourceObserver.
812 Persistent<MockResourceClient> client1 = 812 Persistent<MockResourceClient> client1 =
813 new MockResourceClient(imageResource); 813 new MockResourceClient(imageResource);
814 814
815 receiveResponse(imageResource, url, "image/jpeg", 815 receiveResponse(imageResource, url, "image/jpeg",
816 reinterpret_cast<const char*>(kJpegImage), 816 reinterpret_cast<const char*>(kJpegImage),
817 sizeof(kJpegImage)); 817 sizeof(kJpegImage));
818 818
819 EXPECT_FALSE(imageResource->errorOccurred()); 819 EXPECT_FALSE(imageResource->errorOccurred());
820 ASSERT_TRUE(imageResource->hasImage()); 820 ASSERT_TRUE(imageResource->getContent()->hasImage());
821 EXPECT_FALSE(imageResource->getImage()->isNull()); 821 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull());
822 EXPECT_EQ(1, imageResource->getImage()->width()); 822 EXPECT_EQ(1, imageResource->getContent()->getImage()->width());
823 EXPECT_EQ(1, imageResource->getImage()->height()); 823 EXPECT_EQ(1, imageResource->getContent()->getImage()->height());
824 EXPECT_TRUE(client1->notifyFinishedCalled()); 824 EXPECT_TRUE(client1->notifyFinishedCalled());
825 825
826 client1->removeAsClient(); 826 client1->removeAsClient();
827 827
828 EXPECT_FALSE(imageResource->isAlive()); 828 EXPECT_FALSE(imageResource->isAlive());
829 829
830 imageResource->prune(); 830 imageResource->prune();
831 831
832 EXPECT_TRUE(imageResource->hasImage()); 832 EXPECT_TRUE(imageResource->getContent()->hasImage());
833 833
834 // Re-adds a ResourceClient but not ImageResourceObserver. 834 // Re-adds a ResourceClient but not ImageResourceObserver.
835 Persistent<MockResourceClient> client2 = 835 Persistent<MockResourceClient> client2 =
836 new MockResourceClient(imageResource); 836 new MockResourceClient(imageResource);
837 837
838 ASSERT_TRUE(imageResource->hasImage()); 838 ASSERT_TRUE(imageResource->getContent()->hasImage());
839 EXPECT_FALSE(imageResource->getImage()->isNull()); 839 EXPECT_FALSE(imageResource->getContent()->getImage()->isNull());
840 EXPECT_EQ(1, imageResource->getImage()->width()); 840 EXPECT_EQ(1, imageResource->getContent()->getImage()->width());
841 EXPECT_EQ(1, imageResource->getImage()->height()); 841 EXPECT_EQ(1, imageResource->getContent()->getImage()->height());
842 EXPECT_TRUE(client2->notifyFinishedCalled()); 842 EXPECT_TRUE(client2->notifyFinishedCalled());
843 } 843 }
844 844
845 TEST(ImageResourceTest, CancelOnDecodeError) { 845 TEST(ImageResourceTest, CancelOnDecodeError) {
846 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); 846 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html");
847 ScopedRegisteredURL scopedRegisteredURL(testURL); 847 ScopedRegisteredURL scopedRegisteredURL(testURL);
848 848
849 ResourceFetcher* fetcher = 849 ResourceFetcher* fetcher =
850 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()); 850 ResourceFetcher::create(ImageResourceTestMockFetchContext::create());
851 FetchRequest request(testURL, FetchInitiatorInfo()); 851 FetchRequest request(testURL, FetchInitiatorInfo());
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
885 885
886 EXPECT_EQ(Resource::Cached, image->getStatus()); 886 EXPECT_EQ(Resource::Cached, image->getStatus());
887 EXPECT_EQ(sizeof(kJpegImage), image->encodedSize()); 887 EXPECT_EQ(sizeof(kJpegImage), image->encodedSize());
888 EXPECT_FALSE(image->isPlaceholder()); 888 EXPECT_FALSE(image->isPlaceholder());
889 EXPECT_LT(0, client->imageChangedCount()); 889 EXPECT_LT(0, client->imageChangedCount());
890 EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnLastImageChanged()); 890 EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnLastImageChanged());
891 EXPECT_TRUE(client->notifyFinishedCalled()); 891 EXPECT_TRUE(client->notifyFinishedCalled());
892 EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnNotifyFinished()); 892 EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnNotifyFinished());
893 EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnImageNotifyFinished()); 893 EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnImageNotifyFinished());
894 894
895 ASSERT_TRUE(image->hasImage()); 895 ASSERT_TRUE(image->getContent()->hasImage());
896 EXPECT_EQ(1, image->getImage()->width()); 896 EXPECT_EQ(1, image->getContent()->getImage()->width());
897 EXPECT_EQ(1, image->getImage()->height()); 897 EXPECT_EQ(1, image->getContent()->getImage()->height());
898 EXPECT_TRUE(image->getImage()->isBitmapImage()); 898 EXPECT_TRUE(image->getContent()->getImage()->isBitmapImage());
899 } 899 }
900 900
901 TEST(ImageResourceTest, FetchAllowPlaceholderDataURL) { 901 TEST(ImageResourceTest, FetchAllowPlaceholderDataURL) {
902 KURL testURL(ParsedURLString, 902 KURL testURL(ParsedURLString,
903 "data:image/jpeg;base64," + 903 "data:image/jpeg;base64," +
904 base64Encode(reinterpret_cast<const char*>(kJpegImage), 904 base64Encode(reinterpret_cast<const char*>(kJpegImage),
905 sizeof(kJpegImage))); 905 sizeof(kJpegImage)));
906 FetchRequest request(testURL, FetchInitiatorInfo()); 906 FetchRequest request(testURL, FetchInitiatorInfo());
907 request.setAllowImagePlaceholder(); 907 request.setAllowImagePlaceholder();
908 ImageResource* image = ImageResource::fetch( 908 ImageResource* image = ImageResource::fetch(
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
984 EXPECT_TRUE(image->isPlaceholder()); 984 EXPECT_TRUE(image->isPlaceholder());
985 EXPECT_LT(0, client->imageChangedCount()); 985 EXPECT_LT(0, client->imageChangedCount());
986 EXPECT_EQ(kJpegImageSubrangeWithDimensionsLength, 986 EXPECT_EQ(kJpegImageSubrangeWithDimensionsLength,
987 client->encodedSizeOnLastImageChanged()); 987 client->encodedSizeOnLastImageChanged());
988 EXPECT_TRUE(client->notifyFinishedCalled()); 988 EXPECT_TRUE(client->notifyFinishedCalled());
989 EXPECT_EQ(kJpegImageSubrangeWithDimensionsLength, 989 EXPECT_EQ(kJpegImageSubrangeWithDimensionsLength,
990 client->encodedSizeOnNotifyFinished()); 990 client->encodedSizeOnNotifyFinished());
991 EXPECT_EQ(kJpegImageSubrangeWithDimensionsLength, 991 EXPECT_EQ(kJpegImageSubrangeWithDimensionsLength,
992 client->encodedSizeOnImageNotifyFinished()); 992 client->encodedSizeOnImageNotifyFinished());
993 993
994 ASSERT_TRUE(image->hasImage()); 994 ASSERT_TRUE(image->getContent()->hasImage());
995 EXPECT_EQ(1, image->getImage()->width()); 995 EXPECT_EQ(1, image->getContent()->getImage()->width());
996 EXPECT_EQ(1, image->getImage()->height()); 996 EXPECT_EQ(1, image->getContent()->getImage()->height());
997 EXPECT_FALSE(image->getImage()->isBitmapImage()); 997 EXPECT_FALSE(image->getContent()->getImage()->isBitmapImage());
998 EXPECT_FALSE(image->getImage()->isSVGImage()); 998 EXPECT_FALSE(image->getContent()->getImage()->isSVGImage());
999 } 999 }
1000 1000
1001 TEST(ImageResourceTest, FetchAllowPlaceholderUnsuccessful) { 1001 TEST(ImageResourceTest, FetchAllowPlaceholderUnsuccessful) {
1002 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); 1002 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html");
1003 ScopedRegisteredURL scopedRegisteredURL(testURL); 1003 ScopedRegisteredURL scopedRegisteredURL(testURL);
1004 1004
1005 FetchRequest request(testURL, FetchInitiatorInfo()); 1005 FetchRequest request(testURL, FetchInitiatorInfo());
1006 request.setAllowImagePlaceholder(); 1006 request.setAllowImagePlaceholder();
1007 ImageResource* image = ImageResource::fetch( 1007 ImageResource* image = ImageResource::fetch(
1008 request, 1008 request,
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1042 EXPECT_EQ(Resource::Cached, image->getStatus()); 1042 EXPECT_EQ(Resource::Cached, image->getStatus());
1043 EXPECT_EQ(sizeof(kJpegImage), image->encodedSize()); 1043 EXPECT_EQ(sizeof(kJpegImage), image->encodedSize());
1044 EXPECT_FALSE(image->isPlaceholder()); 1044 EXPECT_FALSE(image->isPlaceholder());
1045 EXPECT_LT(0, client->imageChangedCount()); 1045 EXPECT_LT(0, client->imageChangedCount());
1046 EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnLastImageChanged()); 1046 EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnLastImageChanged());
1047 EXPECT_TRUE(client->notifyFinishedCalled()); 1047 EXPECT_TRUE(client->notifyFinishedCalled());
1048 EXPECT_EQ(1, client->imageNotifyFinishedCount()); 1048 EXPECT_EQ(1, client->imageNotifyFinishedCount());
1049 EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnNotifyFinished()); 1049 EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnNotifyFinished());
1050 EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnImageNotifyFinished()); 1050 EXPECT_EQ(sizeof(kJpegImage), client->encodedSizeOnImageNotifyFinished());
1051 1051
1052 ASSERT_TRUE(image->hasImage()); 1052 ASSERT_TRUE(image->getContent()->hasImage());
1053 EXPECT_EQ(1, image->getImage()->width()); 1053 EXPECT_EQ(1, image->getContent()->getImage()->width());
1054 EXPECT_EQ(1, image->getImage()->height()); 1054 EXPECT_EQ(1, image->getContent()->getImage()->height());
1055 EXPECT_TRUE(image->getImage()->isBitmapImage()); 1055 EXPECT_TRUE(image->getContent()->getImage()->isBitmapImage());
1056 } 1056 }
1057 1057
1058 TEST(ImageResourceTest, FetchAllowPlaceholderThenDisallowPlaceholder) { 1058 TEST(ImageResourceTest, FetchAllowPlaceholderThenDisallowPlaceholder) {
1059 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); 1059 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html");
1060 ScopedRegisteredURL scopedRegisteredURL(testURL); 1060 ScopedRegisteredURL scopedRegisteredURL(testURL);
1061 1061
1062 ResourceFetcher* fetcher = 1062 ResourceFetcher* fetcher =
1063 ResourceFetcher::create(ImageResourceTestMockFetchContext::create()); 1063 ResourceFetcher::create(ImageResourceTestMockFetchContext::create());
1064 FetchRequest placeholderRequest(testURL, FetchInitiatorInfo()); 1064 FetchRequest placeholderRequest(testURL, FetchInitiatorInfo());
1065 placeholderRequest.setAllowImagePlaceholder(); 1065 placeholderRequest.setAllowImagePlaceholder();
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
1147 1147
1148 // This is number is sufficiently large amount of bytes necessary for the 1148 // This is number is sufficiently large amount of bytes necessary for the
1149 // image to be created (since the size is known). This was determined by 1149 // image to be created (since the size is known). This was determined by
1150 // appending one byte at a time (with flushes) until the image was decoded. 1150 // appending one byte at a time (with flushes) until the image was decoded.
1151 size_t meaningfulImageSize = 280; 1151 size_t meaningfulImageSize = 280;
1152 cachedImage->appendData(reinterpret_cast<const char*>(kJpegImage2), 1152 cachedImage->appendData(reinterpret_cast<const char*>(kJpegImage2),
1153 meaningfulImageSize); 1153 meaningfulImageSize);
1154 size_t bytesSent = meaningfulImageSize; 1154 size_t bytesSent = meaningfulImageSize;
1155 1155
1156 EXPECT_FALSE(cachedImage->errorOccurred()); 1156 EXPECT_FALSE(cachedImage->errorOccurred());
1157 EXPECT_TRUE(cachedImage->hasImage()); 1157 EXPECT_TRUE(cachedImage->getContent()->hasImage());
1158 EXPECT_EQ(1, client->imageChangedCount()); 1158 EXPECT_EQ(1, client->imageChangedCount());
1159 1159
1160 platform.runForPeriodSeconds(1.); 1160 platform.runForPeriodSeconds(1.);
1161 platform.advanceClockSeconds(1.); 1161 platform.advanceClockSeconds(1.);
1162 1162
1163 // Sanity check that we created an image after appending |meaningfulImageSize| 1163 // Sanity check that we created an image after appending |meaningfulImageSize|
1164 // bytes just once. 1164 // bytes just once.
1165 EXPECT_FALSE(cachedImage->errorOccurred()); 1165 EXPECT_FALSE(cachedImage->errorOccurred());
1166 ASSERT_TRUE(cachedImage->hasImage()); 1166 ASSERT_TRUE(cachedImage->getContent()->hasImage());
1167 EXPECT_EQ(1, client->imageChangedCount()); 1167 EXPECT_EQ(1, client->imageChangedCount());
1168 1168
1169 for (int flushCount = 1; flushCount <= 3; ++flushCount) { 1169 for (int flushCount = 1; flushCount <= 3; ++flushCount) {
1170 // For each of the iteration that appends data, we don't expect 1170 // For each of the iteration that appends data, we don't expect
1171 // |imageChangeCount()| to change, since the time is adjusted by 0.2001 1171 // |imageChangeCount()| to change, since the time is adjusted by 0.2001
1172 // seconds (it's greater than 0.2 to avoid double precision problems). 1172 // seconds (it's greater than 0.2 to avoid double precision problems).
1173 // After 5 appends, we breach the flush interval and the flush count 1173 // After 5 appends, we breach the flush interval and the flush count
1174 // increases. 1174 // increases.
1175 for (int i = 0; i < 5; ++i) { 1175 for (int i = 0; i < 5; ++i) {
1176 SCOPED_TRACE(i); 1176 SCOPED_TRACE(i);
1177 cachedImage->appendData( 1177 cachedImage->appendData(
1178 reinterpret_cast<const char*>(kJpegImage2) + bytesSent, 1); 1178 reinterpret_cast<const char*>(kJpegImage2) + bytesSent, 1);
1179 1179
1180 EXPECT_FALSE(cachedImage->errorOccurred()); 1180 EXPECT_FALSE(cachedImage->errorOccurred());
1181 ASSERT_TRUE(cachedImage->hasImage()); 1181 ASSERT_TRUE(cachedImage->getContent()->hasImage());
1182 EXPECT_EQ(flushCount, client->imageChangedCount()); 1182 EXPECT_EQ(flushCount, client->imageChangedCount());
1183 1183
1184 ++bytesSent; 1184 ++bytesSent;
1185 platform.runForPeriodSeconds(0.2001); 1185 platform.runForPeriodSeconds(0.2001);
1186 } 1186 }
1187 } 1187 }
1188 1188
1189 // Increasing time by a large number only causes one extra flush. 1189 // Increasing time by a large number only causes one extra flush.
1190 platform.runForPeriodSeconds(10.); 1190 platform.runForPeriodSeconds(10.);
1191 platform.advanceClockSeconds(10.); 1191 platform.advanceClockSeconds(10.);
1192 EXPECT_FALSE(cachedImage->errorOccurred()); 1192 EXPECT_FALSE(cachedImage->errorOccurred());
1193 ASSERT_TRUE(cachedImage->hasImage()); 1193 ASSERT_TRUE(cachedImage->getContent()->hasImage());
1194 EXPECT_FALSE(cachedImage->getImage()->isNull()); 1194 EXPECT_FALSE(cachedImage->getContent()->getImage()->isNull());
1195 EXPECT_EQ(4, client->imageChangedCount()); 1195 EXPECT_EQ(4, client->imageChangedCount());
1196 1196
1197 // Append the rest of the data and finish (which causes another flush). 1197 // Append the rest of the data and finish (which causes another flush).
1198 cachedImage->appendData( 1198 cachedImage->appendData(
1199 reinterpret_cast<const char*>(kJpegImage2) + bytesSent, 1199 reinterpret_cast<const char*>(kJpegImage2) + bytesSent,
1200 sizeof(kJpegImage2) - bytesSent); 1200 sizeof(kJpegImage2) - bytesSent);
1201 cachedImage->finish(); 1201 cachedImage->finish();
1202 1202
1203 EXPECT_FALSE(cachedImage->errorOccurred()); 1203 EXPECT_FALSE(cachedImage->errorOccurred());
1204 ASSERT_TRUE(cachedImage->hasImage()); 1204 ASSERT_TRUE(cachedImage->getContent()->hasImage());
1205 EXPECT_FALSE(cachedImage->getImage()->isNull()); 1205 EXPECT_FALSE(cachedImage->getContent()->getImage()->isNull());
1206 EXPECT_EQ(5, client->imageChangedCount()); 1206 EXPECT_EQ(5, client->imageChangedCount());
1207 EXPECT_TRUE(client->notifyFinishedCalled()); 1207 EXPECT_TRUE(client->notifyFinishedCalled());
1208 EXPECT_TRUE(cachedImage->getImage()->isBitmapImage()); 1208 EXPECT_TRUE(cachedImage->getContent()->getImage()->isBitmapImage());
1209 EXPECT_EQ(50, cachedImage->getImage()->width()); 1209 EXPECT_EQ(50, cachedImage->getContent()->getImage()->width());
1210 EXPECT_EQ(50, cachedImage->getImage()->height()); 1210 EXPECT_EQ(50, cachedImage->getContent()->getImage()->height());
1211 1211
1212 WTF::setTimeFunctionsForTesting(nullptr); 1212 WTF::setTimeFunctionsForTesting(nullptr);
1213 } 1213 }
1214 1214
1215 } // namespace 1215 } // namespace
1216 } // namespace blink 1216 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698