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 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
191 | 191 |
192 Persistent<MockImageResourceClient> client = new MockImageResourceClient(cac
hedImage); | 192 Persistent<MockImageResourceClient> client = new MockImageResourceClient(cac
hedImage); |
193 EXPECT_EQ(Resource::Pending, cachedImage->getStatus()); | 193 EXPECT_EQ(Resource::Pending, cachedImage->getStatus()); |
194 | 194 |
195 // Send the multipart response. No image or data buffer is created. | 195 // Send the multipart response. No image or data buffer is created. |
196 // Note that the response must be routed through ResourceLoader to | 196 // Note that the response must be routed through ResourceLoader to |
197 // ensure the load is flagged as multipart. | 197 // ensure the load is flagged as multipart. |
198 ResourceResponse multipartResponse(KURL(), "multipart/x-mixed-replace", 0, n
ullAtom, String()); | 198 ResourceResponse multipartResponse(KURL(), "multipart/x-mixed-replace", 0, n
ullAtom, String()); |
199 multipartResponse.setMultipartBoundary("boundary", strlen("boundary")); | 199 multipartResponse.setMultipartBoundary("boundary", strlen("boundary")); |
200 cachedImage->loader()->didReceiveResponse(nullptr, WrappedResourceResponse(m
ultipartResponse), nullptr); | 200 cachedImage->loader()->didReceiveResponse(nullptr, WrappedResourceResponse(m
ultipartResponse), nullptr); |
201 ASSERT_FALSE(cachedImage->resourceBuffer()); | 201 EXPECT_FALSE(cachedImage->resourceBuffer()); |
202 ASSERT_FALSE(cachedImage->hasImage()); | 202 EXPECT_FALSE(cachedImage->hasImage()); |
203 ASSERT_EQ(client->imageChangedCount(), 0); | 203 EXPECT_EQ(0, client->imageChangedCount()); |
204 ASSERT_FALSE(client->notifyFinishedCalled()); | 204 EXPECT_FALSE(client->notifyFinishedCalled()); |
205 EXPECT_EQ("multipart/x-mixed-replace", cachedImage->response().mimeType()); | 205 EXPECT_EQ("multipart/x-mixed-replace", cachedImage->response().mimeType()); |
206 | 206 |
207 const char firstPart[] = | 207 const char firstPart[] = |
208 "--boundary\n" | 208 "--boundary\n" |
209 "Content-Type: image/svg+xml\n\n"; | 209 "Content-Type: image/svg+xml\n\n"; |
210 cachedImage->appendData(firstPart, strlen(firstPart)); | 210 cachedImage->appendData(firstPart, strlen(firstPart)); |
211 // Send the response for the first real part. No image or data buffer is cre
ated. | 211 // Send the response for the first real part. No image or data buffer is cre
ated. |
212 ASSERT_FALSE(cachedImage->resourceBuffer()); | 212 EXPECT_FALSE(cachedImage->resourceBuffer()); |
213 ASSERT_FALSE(cachedImage->hasImage()); | 213 EXPECT_FALSE(cachedImage->hasImage()); |
214 ASSERT_EQ(client->imageChangedCount(), 0); | 214 EXPECT_EQ(0, client->imageChangedCount()); |
215 ASSERT_FALSE(client->notifyFinishedCalled()); | 215 EXPECT_FALSE(client->notifyFinishedCalled()); |
216 EXPECT_EQ("image/svg+xml", cachedImage->response().mimeType()); | 216 EXPECT_EQ("image/svg+xml", cachedImage->response().mimeType()); |
217 | 217 |
218 const char secondPart[] = "<svg xmlns='http://www.w3.org/2000/svg' width='1'
height='1'><rect width='1' height='1' fill='green'/></svg>\n"; | 218 const char secondPart[] = "<svg xmlns='http://www.w3.org/2000/svg' width='1'
height='1'><rect width='1' height='1' fill='green'/></svg>\n"; |
219 // The first bytes arrive. The data buffer is created, but no image is creat
ed. | 219 // The first bytes arrive. The data buffer is created, but no image is creat
ed. |
220 cachedImage->appendData(secondPart, strlen(secondPart)); | 220 cachedImage->appendData(secondPart, strlen(secondPart)); |
221 ASSERT_TRUE(cachedImage->resourceBuffer()); | 221 EXPECT_TRUE(cachedImage->resourceBuffer()); |
222 ASSERT_FALSE(cachedImage->hasImage()); | 222 EXPECT_FALSE(cachedImage->hasImage()); |
223 ASSERT_EQ(client->imageChangedCount(), 0); | 223 EXPECT_EQ(0, client->imageChangedCount()); |
224 ASSERT_FALSE(client->notifyFinishedCalled()); | 224 EXPECT_FALSE(client->notifyFinishedCalled()); |
225 | 225 |
226 // Add a client to check an assertion error doesn't happen | 226 // Add a client to check an assertion error doesn't happen |
227 // (crbug.com/630983). | 227 // (crbug.com/630983). |
228 Persistent<MockImageResourceClient> client2 = new MockImageResourceClient(ca
chedImage); | 228 Persistent<MockImageResourceClient> client2 = new MockImageResourceClient(ca
chedImage); |
229 ASSERT_EQ(client2->imageChangedCount(), 0); | 229 EXPECT_EQ(0, client2->imageChangedCount()); |
230 ASSERT_FALSE(client2->notifyFinishedCalled()); | 230 EXPECT_FALSE(client2->notifyFinishedCalled()); |
231 | 231 |
232 const char thirdPart[] = "--boundary"; | 232 const char thirdPart[] = "--boundary"; |
233 cachedImage->appendData(thirdPart, strlen(thirdPart)); | 233 cachedImage->appendData(thirdPart, strlen(thirdPart)); |
234 ASSERT_TRUE(cachedImage->resourceBuffer()); | 234 ASSERT_TRUE(cachedImage->resourceBuffer()); |
235 ASSERT_EQ(cachedImage->resourceBuffer()->size(), strlen(secondPart) - 1); | 235 EXPECT_EQ(strlen(secondPart) - 1, cachedImage->resourceBuffer()->size()); |
236 | 236 |
237 // This part finishes. The image is created, callbacks are sent, and the dat
a buffer is cleared. | 237 // This part finishes. The image is created, callbacks are sent, and the dat
a buffer is cleared. |
238 cachedImage->loader()->didFinishLoading(nullptr, 0.0, 0); | 238 cachedImage->loader()->didFinishLoading(nullptr, 0.0, 0); |
239 ASSERT_TRUE(cachedImage->resourceBuffer()); | 239 EXPECT_TRUE(cachedImage->resourceBuffer()); |
240 ASSERT_FALSE(cachedImage->errorOccurred()); | 240 EXPECT_FALSE(cachedImage->errorOccurred()); |
241 ASSERT_TRUE(cachedImage->hasImage()); | 241 ASSERT_TRUE(cachedImage->hasImage()); |
242 ASSERT_FALSE(cachedImage->getImage()->isNull()); | 242 EXPECT_FALSE(cachedImage->getImage()->isNull()); |
243 ASSERT_EQ(cachedImage->getImage()->width(), 1); | 243 EXPECT_EQ(1, cachedImage->getImage()->width()); |
244 ASSERT_EQ(cachedImage->getImage()->height(), 1); | 244 EXPECT_EQ(1, cachedImage->getImage()->height()); |
245 ASSERT_EQ(client->imageChangedCount(), 1); | 245 EXPECT_EQ(1, client->imageChangedCount()); |
246 ASSERT_TRUE(client->notifyFinishedCalled()); | 246 EXPECT_TRUE(client->notifyFinishedCalled()); |
247 ASSERT_EQ(client2->imageChangedCount(), 1); | 247 EXPECT_EQ(1, client2->imageChangedCount()); |
248 ASSERT_TRUE(client2->notifyFinishedCalled()); | 248 EXPECT_TRUE(client2->notifyFinishedCalled()); |
249 } | 249 } |
250 | 250 |
251 TEST(ImageResourceTest, CancelOnDetach) | 251 TEST(ImageResourceTest, CancelOnDetach) |
252 { | 252 { |
253 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); | 253 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); |
254 URLTestHelpers::registerMockedURLLoad(testURL, "cancelTest.html", "text/html
"); | 254 URLTestHelpers::registerMockedURLLoad(testURL, "cancelTest.html", "text/html
"); |
255 | 255 |
256 ResourceFetcher* fetcher = ResourceFetcher::create(ImageResourceTestMockFetc
hContext::create()); | 256 ResourceFetcher* fetcher = ResourceFetcher::create(ImageResourceTestMockFetc
hContext::create()); |
257 | 257 |
258 // Emulate starting a real load. | 258 // Emulate starting a real load. |
259 ImageResource* cachedImage = ImageResource::create(ResourceRequest(testURL))
; | 259 ImageResource* cachedImage = ImageResource::create(ResourceRequest(testURL))
; |
260 cachedImage->setIdentifier(createUniqueIdentifier()); | 260 cachedImage->setIdentifier(createUniqueIdentifier()); |
261 | 261 |
262 fetcher->startLoad(cachedImage); | 262 fetcher->startLoad(cachedImage); |
263 memoryCache()->add(cachedImage); | 263 memoryCache()->add(cachedImage); |
264 | 264 |
265 Persistent<MockImageResourceClient> client = new MockImageResourceClient(cac
hedImage); | 265 Persistent<MockImageResourceClient> client = new MockImageResourceClient(cac
hedImage); |
266 EXPECT_EQ(Resource::Pending, cachedImage->getStatus()); | 266 EXPECT_EQ(Resource::Pending, cachedImage->getStatus()); |
267 | 267 |
268 // The load should still be alive, but a timer should be started to cancel t
he load inside removeClient(). | 268 // The load should still be alive, but a timer should be started to cancel t
he load inside removeClient(). |
269 client->removeAsClient(); | 269 client->removeAsClient(); |
270 EXPECT_EQ(Resource::Pending, cachedImage->getStatus()); | 270 EXPECT_EQ(Resource::Pending, cachedImage->getStatus()); |
271 EXPECT_NE(reinterpret_cast<Resource*>(0), memoryCache()->resourceForURL(test
URL)); | 271 EXPECT_TRUE(memoryCache()->resourceForURL(testURL)); |
272 | 272 |
273 // Trigger the cancel timer, ensure the load was cancelled and the resource
was evicted from the cache. | 273 // Trigger the cancel timer, ensure the load was cancelled and the resource
was evicted from the cache. |
274 blink::testing::runPendingTasks(); | 274 blink::testing::runPendingTasks(); |
275 EXPECT_EQ(Resource::LoadError, cachedImage->getStatus()); | 275 EXPECT_EQ(Resource::LoadError, cachedImage->getStatus()); |
276 EXPECT_EQ(reinterpret_cast<Resource*>(0), memoryCache()->resourceForURL(test
URL)); | 276 EXPECT_FALSE(memoryCache()->resourceForURL(testURL)); |
277 | 277 |
278 Platform::current()->getURLLoaderMockFactory()->unregisterURL(testURL); | 278 Platform::current()->getURLLoaderMockFactory()->unregisterURL(testURL); |
279 } | 279 } |
280 | 280 |
281 TEST(ImageResourceTest, DecodedDataRemainsWhileHasClients) | 281 TEST(ImageResourceTest, DecodedDataRemainsWhileHasClients) |
282 { | 282 { |
283 ImageResource* cachedImage = ImageResource::create(ResourceRequest()); | 283 ImageResource* cachedImage = ImageResource::create(ResourceRequest()); |
284 cachedImage->setStatus(Resource::Pending); | 284 cachedImage->setStatus(Resource::Pending); |
285 | 285 |
286 Persistent<MockImageResourceClient> client = new MockImageResourceClient(cac
hedImage); | 286 Persistent<MockImageResourceClient> client = new MockImageResourceClient(cac
hedImage); |
287 | 287 |
288 // Send the image response. | 288 // Send the image response. |
289 cachedImage->responseReceived(ResourceResponse(KURL(), "multipart/x-mixed-re
place", 0, nullAtom, String()), nullptr); | 289 cachedImage->responseReceived(ResourceResponse(KURL(), "multipart/x-mixed-re
place", 0, nullAtom, String()), nullptr); |
290 | 290 |
291 Vector<unsigned char> jpeg = jpegImage(); | 291 Vector<unsigned char> jpeg = jpegImage(); |
292 cachedImage->responseReceived(ResourceResponse(KURL(), "image/jpeg", jpeg.si
ze(), nullAtom, String()), nullptr); | 292 cachedImage->responseReceived(ResourceResponse(KURL(), "image/jpeg", jpeg.si
ze(), nullAtom, String()), nullptr); |
293 cachedImage->appendData(reinterpret_cast<const char*>(jpeg.data()), jpeg.siz
e()); | 293 cachedImage->appendData(reinterpret_cast<const char*>(jpeg.data()), jpeg.siz
e()); |
294 cachedImage->finish(); | 294 cachedImage->finish(); |
295 ASSERT_FALSE(cachedImage->errorOccurred()); | 295 EXPECT_FALSE(cachedImage->errorOccurred()); |
296 ASSERT_TRUE(cachedImage->hasImage()); | 296 ASSERT_TRUE(cachedImage->hasImage()); |
297 ASSERT_FALSE(cachedImage->getImage()->isNull()); | 297 EXPECT_FALSE(cachedImage->getImage()->isNull()); |
298 ASSERT_TRUE(client->notifyFinishedCalled()); | 298 EXPECT_TRUE(client->notifyFinishedCalled()); |
299 | 299 |
300 // The prune comes when the ImageResource still has clients. The image shoul
d not be deleted. | 300 // The prune comes when the ImageResource still has clients. The image shoul
d not be deleted. |
301 cachedImage->prune(); | 301 cachedImage->prune(); |
302 ASSERT_TRUE(cachedImage->isAlive()); | 302 EXPECT_TRUE(cachedImage->isAlive()); |
303 ASSERT_TRUE(cachedImage->hasImage()); | 303 ASSERT_TRUE(cachedImage->hasImage()); |
304 ASSERT_FALSE(cachedImage->getImage()->isNull()); | 304 EXPECT_FALSE(cachedImage->getImage()->isNull()); |
305 | 305 |
306 // The ImageResource no longer has clients. The decoded image data should be | 306 // The ImageResource no longer has clients. The decoded image data should be |
307 // deleted by prune. | 307 // deleted by prune. |
308 client->removeAsClient(); | 308 client->removeAsClient(); |
309 cachedImage->prune(); | 309 cachedImage->prune(); |
310 ASSERT_FALSE(cachedImage->isAlive()); | 310 EXPECT_FALSE(cachedImage->isAlive()); |
311 ASSERT_TRUE(cachedImage->hasImage()); | 311 EXPECT_TRUE(cachedImage->hasImage()); |
312 // TODO(hajimehoshi): Should check cachedImage doesn't have decoded image | 312 // TODO(hajimehoshi): Should check cachedImage doesn't have decoded image |
313 // data. | 313 // data. |
314 } | 314 } |
315 | 315 |
316 TEST(ImageResourceTest, UpdateBitmapImages) | 316 TEST(ImageResourceTest, UpdateBitmapImages) |
317 { | 317 { |
318 ImageResource* cachedImage = ImageResource::create(ResourceRequest()); | 318 ImageResource* cachedImage = ImageResource::create(ResourceRequest()); |
319 cachedImage->setStatus(Resource::Pending); | 319 cachedImage->setStatus(Resource::Pending); |
320 | 320 |
321 Persistent<MockImageResourceClient> client = new MockImageResourceClient(cac
hedImage); | 321 Persistent<MockImageResourceClient> client = new MockImageResourceClient(cac
hedImage); |
322 | 322 |
323 // Send the image response. | 323 // Send the image response. |
324 Vector<unsigned char> jpeg = jpegImage(); | 324 Vector<unsigned char> jpeg = jpegImage(); |
325 cachedImage->responseReceived(ResourceResponse(KURL(), "image/jpeg", jpeg.si
ze(), nullAtom, String()), nullptr); | 325 cachedImage->responseReceived(ResourceResponse(KURL(), "image/jpeg", jpeg.si
ze(), nullAtom, String()), nullptr); |
326 cachedImage->appendData(reinterpret_cast<const char*>(jpeg.data()), jpeg.siz
e()); | 326 cachedImage->appendData(reinterpret_cast<const char*>(jpeg.data()), jpeg.siz
e()); |
327 cachedImage->finish(); | 327 cachedImage->finish(); |
328 ASSERT_FALSE(cachedImage->errorOccurred()); | 328 EXPECT_FALSE(cachedImage->errorOccurred()); |
329 ASSERT_TRUE(cachedImage->hasImage()); | 329 ASSERT_TRUE(cachedImage->hasImage()); |
330 ASSERT_FALSE(cachedImage->getImage()->isNull()); | 330 EXPECT_FALSE(cachedImage->getImage()->isNull()); |
331 ASSERT_EQ(client->imageChangedCount(), 2); | 331 EXPECT_EQ(2, client->imageChangedCount()); |
332 ASSERT_TRUE(client->notifyFinishedCalled()); | 332 EXPECT_TRUE(client->notifyFinishedCalled()); |
333 ASSERT_TRUE(cachedImage->getImage()->isBitmapImage()); | 333 EXPECT_TRUE(cachedImage->getImage()->isBitmapImage()); |
334 } | 334 } |
335 | 335 |
336 TEST(ImageResourceTest, ReloadIfLoFi) | 336 TEST(ImageResourceTest, ReloadIfLoFi) |
337 { | 337 { |
338 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); | 338 KURL testURL(ParsedURLString, "http://www.test.com/cancelTest.html"); |
339 URLTestHelpers::registerMockedURLLoad(testURL, "cancelTest.html", "text/html
"); | 339 URLTestHelpers::registerMockedURLLoad(testURL, "cancelTest.html", "text/html
"); |
340 ResourceRequest request = ResourceRequest(testURL); | 340 ResourceRequest request = ResourceRequest(testURL); |
341 request.setLoFiState(WebURLRequest::LoFiOn); | 341 request.setLoFiState(WebURLRequest::LoFiOn); |
342 ImageResource* cachedImage = ImageResource::create(request); | 342 ImageResource* cachedImage = ImageResource::create(request); |
343 cachedImage->setStatus(Resource::Pending); | 343 cachedImage->setStatus(Resource::Pending); |
344 | 344 |
345 Persistent<MockImageResourceClient> client = new MockImageResourceClient(cac
hedImage); | 345 Persistent<MockImageResourceClient> client = new MockImageResourceClient(cac
hedImage); |
346 ResourceFetcher* fetcher = ResourceFetcher::create(ImageResourceTestMockFetc
hContext::create()); | 346 ResourceFetcher* fetcher = ResourceFetcher::create(ImageResourceTestMockFetc
hContext::create()); |
347 | 347 |
348 // Send the image response. | 348 // Send the image response. |
349 Vector<unsigned char> jpeg = jpegImage(); | 349 Vector<unsigned char> jpeg = jpegImage(); |
350 ResourceResponse resourceResponse(KURL(), "image/jpeg", jpeg.size(), nullAto
m, String()); | 350 ResourceResponse resourceResponse(KURL(), "image/jpeg", jpeg.size(), nullAto
m, String()); |
351 resourceResponse.addHTTPHeaderField("chrome-proxy", "q=low"); | 351 resourceResponse.addHTTPHeaderField("chrome-proxy", "q=low"); |
352 | 352 |
353 cachedImage->responseReceived(resourceResponse, nullptr); | 353 cachedImage->responseReceived(resourceResponse, nullptr); |
354 cachedImage->appendData(reinterpret_cast<const char*>(jpeg.data()), jpeg.siz
e()); | 354 cachedImage->appendData(reinterpret_cast<const char*>(jpeg.data()), jpeg.siz
e()); |
355 cachedImage->finish(); | 355 cachedImage->finish(); |
356 ASSERT_FALSE(cachedImage->errorOccurred()); | 356 EXPECT_FALSE(cachedImage->errorOccurred()); |
357 ASSERT_TRUE(cachedImage->hasImage()); | 357 ASSERT_TRUE(cachedImage->hasImage()); |
358 ASSERT_FALSE(cachedImage->getImage()->isNull()); | 358 EXPECT_FALSE(cachedImage->getImage()->isNull()); |
359 ASSERT_EQ(client->imageChangedCount(), 2); | 359 EXPECT_EQ(2, client->imageChangedCount()); |
360 ASSERT_TRUE(client->notifyFinishedCalled()); | 360 EXPECT_TRUE(client->notifyFinishedCalled()); |
361 ASSERT_TRUE(cachedImage->getImage()->isBitmapImage()); | 361 EXPECT_TRUE(cachedImage->getImage()->isBitmapImage()); |
362 EXPECT_EQ(1, cachedImage->getImage()->width()); | 362 EXPECT_EQ(1, cachedImage->getImage()->width()); |
363 EXPECT_EQ(1, cachedImage->getImage()->height()); | 363 EXPECT_EQ(1, cachedImage->getImage()->height()); |
364 | 364 |
365 cachedImage->reloadIfLoFi(fetcher); | 365 cachedImage->reloadIfLoFi(fetcher); |
366 ASSERT_FALSE(cachedImage->errorOccurred()); | 366 EXPECT_FALSE(cachedImage->errorOccurred()); |
367 ASSERT_FALSE(cachedImage->resourceBuffer()); | 367 EXPECT_FALSE(cachedImage->resourceBuffer()); |
368 ASSERT_FALSE(cachedImage->hasImage()); | 368 EXPECT_FALSE(cachedImage->hasImage()); |
369 ASSERT_EQ(client->imageChangedCount(), 3); | 369 EXPECT_EQ(3, client->imageChangedCount()); |
370 | 370 |
371 Vector<unsigned char> jpeg2 = jpegImage2(); | 371 Vector<unsigned char> jpeg2 = jpegImage2(); |
372 cachedImage->loader()->didReceiveResponse(nullptr, WrappedResourceResponse(r
esourceResponse), nullptr); | 372 cachedImage->loader()->didReceiveResponse(nullptr, WrappedResourceResponse(r
esourceResponse), nullptr); |
373 cachedImage->loader()->didReceiveData(nullptr, reinterpret_cast<const char*>
(jpeg2.data()), jpeg2.size(), jpeg2.size(), jpeg2.size()); | 373 cachedImage->loader()->didReceiveData(nullptr, reinterpret_cast<const char*>
(jpeg2.data()), jpeg2.size(), jpeg2.size(), jpeg2.size()); |
374 cachedImage->loader()->didFinishLoading(nullptr, 0.0, jpeg2.size()); | 374 cachedImage->loader()->didFinishLoading(nullptr, 0.0, jpeg2.size()); |
375 ASSERT_FALSE(cachedImage->errorOccurred()); | 375 EXPECT_FALSE(cachedImage->errorOccurred()); |
376 ASSERT_TRUE(cachedImage->hasImage()); | 376 ASSERT_TRUE(cachedImage->hasImage()); |
377 ASSERT_FALSE(cachedImage->getImage()->isNull()); | 377 EXPECT_FALSE(cachedImage->getImage()->isNull()); |
378 ASSERT_TRUE(client->notifyFinishedCalled()); | 378 EXPECT_TRUE(client->notifyFinishedCalled()); |
379 ASSERT_TRUE(cachedImage->getImage()->isBitmapImage()); | 379 EXPECT_TRUE(cachedImage->getImage()->isBitmapImage()); |
380 EXPECT_EQ(50, cachedImage->getImage()->width()); | 380 EXPECT_EQ(50, cachedImage->getImage()->width()); |
381 EXPECT_EQ(50, cachedImage->getImage()->height()); | 381 EXPECT_EQ(50, cachedImage->getImage()->height()); |
382 } | 382 } |
383 | 383 |
384 TEST(ImageResourceTest, SVGImage) | 384 TEST(ImageResourceTest, SVGImage) |
385 { | 385 { |
386 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo"); | 386 KURL url(ParsedURLString, "http://127.0.0.1:8000/foo"); |
387 ImageResource* imageResource = ImageResource::create(ResourceRequest(url)); | 387 ImageResource* imageResource = ImageResource::create(ResourceRequest(url)); |
388 Persistent<MockImageResourceClient> client = new MockImageResourceClient(ima
geResource); | 388 Persistent<MockImageResourceClient> client = new MockImageResourceClient(ima
geResource); |
389 | 389 |
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
631 ImageResource* cachedImage = ImageResource::fetch(request, fetcher); | 631 ImageResource* cachedImage = ImageResource::fetch(request, fetcher); |
632 Platform::current()->getURLLoaderMockFactory()->unregisterURL(testURL); | 632 Platform::current()->getURLLoaderMockFactory()->unregisterURL(testURL); |
633 | 633 |
634 cachedImage->loader()->didReceiveResponse(nullptr, WrappedResourceResponse(R
esourceResponse(testURL, "image/jpeg", 18, nullAtom, String())), nullptr); | 634 cachedImage->loader()->didReceiveResponse(nullptr, WrappedResourceResponse(R
esourceResponse(testURL, "image/jpeg", 18, nullAtom, String())), nullptr); |
635 cachedImage->loader()->didReceiveData(nullptr, "notactuallyanimage", 18, 18,
18); | 635 cachedImage->loader()->didReceiveData(nullptr, "notactuallyanimage", 18, 18,
18); |
636 EXPECT_EQ(Resource::DecodeError, cachedImage->getStatus()); | 636 EXPECT_EQ(Resource::DecodeError, cachedImage->getStatus()); |
637 EXPECT_FALSE(cachedImage->isLoading()); | 637 EXPECT_FALSE(cachedImage->isLoading()); |
638 } | 638 } |
639 | 639 |
640 } // namespace blink | 640 } // namespace blink |
OLD | NEW |