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