| 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 234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 245 | 245 |
| 246 EXPECT_EQ(5u, decoder->frameCount()); | 246 EXPECT_EQ(5u, decoder->frameCount()); |
| 247 EXPECT_EQ(5u, framesDecoded); | 247 EXPECT_EQ(5u, framesDecoded); |
| 248 EXPECT_EQ(cAnimationLoopInfinite, decoder->repetitionCount()); | 248 EXPECT_EQ(cAnimationLoopInfinite, decoder->repetitionCount()); |
| 249 } | 249 } |
| 250 | 250 |
| 251 TEST(GIFImageDecoderTest, brokenSecondFrame) | 251 TEST(GIFImageDecoderTest, brokenSecondFrame) |
| 252 { | 252 { |
| 253 OwnPtr<GIFImageDecoder> decoder = createDecoder(); | 253 OwnPtr<GIFImageDecoder> decoder = createDecoder(); |
| 254 | 254 |
| 255 RefPtr<SharedBuffer> data = readFile("/Source/WebKit/chromium/tests/data/bro
ken.gif"); | 255 RefPtr<SharedBuffer> data = readFile("/Source/web/tests/data/broken.gif"); |
| 256 ASSERT_TRUE(data.get()); | 256 ASSERT_TRUE(data.get()); |
| 257 decoder->setData(data.get(), true); | 257 decoder->setData(data.get(), true); |
| 258 | 258 |
| 259 // One frame is detected but cannot be decoded. | 259 // One frame is detected but cannot be decoded. |
| 260 EXPECT_EQ(1u, decoder->frameCount()); | 260 EXPECT_EQ(1u, decoder->frameCount()); |
| 261 ImageFrame* frame = decoder->frameBufferAtIndex(1); | 261 ImageFrame* frame = decoder->frameBufferAtIndex(1); |
| 262 EXPECT_FALSE(frame); | 262 EXPECT_FALSE(frame); |
| 263 } | 263 } |
| 264 | 264 |
| 265 TEST(GIFImageDecoderTest, progressiveDecode) | 265 TEST(GIFImageDecoderTest, progressiveDecode) |
| 266 { | 266 { |
| 267 RefPtr<SharedBuffer> fullData = readFile("/Source/WebKit/chromium/tests/data
/radient.gif"); | 267 RefPtr<SharedBuffer> fullData = readFile("/Source/web/tests/data/radient.gif
"); |
| 268 ASSERT_TRUE(fullData.get()); | 268 ASSERT_TRUE(fullData.get()); |
| 269 const size_t fullLength = fullData->size(); | 269 const size_t fullLength = fullData->size(); |
| 270 | 270 |
| 271 OwnPtr<GIFImageDecoder> decoder; | 271 OwnPtr<GIFImageDecoder> decoder; |
| 272 ImageFrame* frame; | 272 ImageFrame* frame; |
| 273 | 273 |
| 274 Vector<unsigned> truncatedHashes; | 274 Vector<unsigned> truncatedHashes; |
| 275 Vector<unsigned> progressiveHashes; | 275 Vector<unsigned> progressiveHashes; |
| 276 | 276 |
| 277 // Compute hashes when the file is truncated. | 277 // Compute hashes when the file is truncated. |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 362 EXPECT_FALSE(decoder->frameIsCompleteAtIndex(1)); | 362 EXPECT_FALSE(decoder->frameIsCompleteAtIndex(1)); |
| 363 | 363 |
| 364 decoder->setData(data.get(), true); | 364 decoder->setData(data.get(), true); |
| 365 EXPECT_EQ(2u, decoder->frameCount()); | 365 EXPECT_EQ(2u, decoder->frameCount()); |
| 366 EXPECT_TRUE(decoder->frameIsCompleteAtIndex(0)); | 366 EXPECT_TRUE(decoder->frameIsCompleteAtIndex(0)); |
| 367 EXPECT_TRUE(decoder->frameIsCompleteAtIndex(1)); | 367 EXPECT_TRUE(decoder->frameIsCompleteAtIndex(1)); |
| 368 } | 368 } |
| 369 | 369 |
| 370 TEST(GIFImageDecoderTest, badTerminator) | 370 TEST(GIFImageDecoderTest, badTerminator) |
| 371 { | 371 { |
| 372 RefPtr<SharedBuffer> referenceData = readFile("/Source/WebKit/chromium/tests
/data/radient.gif"); | 372 RefPtr<SharedBuffer> referenceData = readFile("/Source/web/tests/data/radien
t.gif"); |
| 373 RefPtr<SharedBuffer> testData = readFile("/Source/WebKit/chromium/tests/data
/radient-bad-terminator.gif"); | 373 RefPtr<SharedBuffer> testData = readFile("/Source/web/tests/data/radient-bad
-terminator.gif"); |
| 374 ASSERT_TRUE(referenceData.get()); | 374 ASSERT_TRUE(referenceData.get()); |
| 375 ASSERT_TRUE(testData.get()); | 375 ASSERT_TRUE(testData.get()); |
| 376 | 376 |
| 377 OwnPtr<GIFImageDecoder> referenceDecoder(createDecoder()); | 377 OwnPtr<GIFImageDecoder> referenceDecoder(createDecoder()); |
| 378 referenceDecoder->setData(referenceData.get(), true); | 378 referenceDecoder->setData(referenceData.get(), true); |
| 379 EXPECT_EQ(1u, referenceDecoder->frameCount()); | 379 EXPECT_EQ(1u, referenceDecoder->frameCount()); |
| 380 ImageFrame* referenceFrame = referenceDecoder->frameBufferAtIndex(0); | 380 ImageFrame* referenceFrame = referenceDecoder->frameBufferAtIndex(0); |
| 381 ASSERT(referenceFrame); | 381 ASSERT(referenceFrame); |
| 382 | 382 |
| 383 OwnPtr<GIFImageDecoder> testDecoder(createDecoder()); | 383 OwnPtr<GIFImageDecoder> testDecoder(createDecoder()); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 411 EXPECT_EQ(i - 1, decoder->frameBufferAtIndex(i)->requiredPreviousFrameIn
dex()); | 411 EXPECT_EQ(i - 1, decoder->frameBufferAtIndex(i)->requiredPreviousFrameIn
dex()); |
| 412 | 412 |
| 413 decoder->setData(fullData.get(), true); | 413 decoder->setData(fullData.get(), true); |
| 414 for (size_t i = 0; i < frameCount; ++i) | 414 for (size_t i = 0; i < frameCount; ++i) |
| 415 EXPECT_EQ(notFound, decoder->frameBufferAtIndex(i)->requiredPreviousFram
eIndex()); | 415 EXPECT_EQ(notFound, decoder->frameBufferAtIndex(i)->requiredPreviousFram
eIndex()); |
| 416 } | 416 } |
| 417 | 417 |
| 418 TEST(GIFImageDecoderTest, randomFrameDecode) | 418 TEST(GIFImageDecoderTest, randomFrameDecode) |
| 419 { | 419 { |
| 420 // Single frame image. | 420 // Single frame image. |
| 421 testRandomFrameDecode("/Source/WebKit/chromium/tests/data/radient.gif"); | 421 testRandomFrameDecode("/Source/web/tests/data/radient.gif"); |
| 422 // Multiple frame images. | 422 // Multiple frame images. |
| 423 testRandomFrameDecode("/LayoutTests/fast/images/resources/animated-gif-with-
offsets.gif"); | 423 testRandomFrameDecode("/LayoutTests/fast/images/resources/animated-gif-with-
offsets.gif"); |
| 424 testRandomFrameDecode("/LayoutTests/fast/images/resources/animated-10color.g
if"); | 424 testRandomFrameDecode("/LayoutTests/fast/images/resources/animated-10color.g
if"); |
| 425 } | 425 } |
| 426 | 426 |
| 427 TEST(GIFImageDecoderTest, randomDecodeAfterClearFrameBufferCache) | 427 TEST(GIFImageDecoderTest, randomDecodeAfterClearFrameBufferCache) |
| 428 { | 428 { |
| 429 // Single frame image. | 429 // Single frame image. |
| 430 testRandomDecodeAfterClearFrameBufferCache("/Source/WebKit/chromium/tests/da
ta/radient.gif"); | 430 testRandomDecodeAfterClearFrameBufferCache("/Source/web/tests/data/radient.g
if"); |
| 431 // Multiple frame images. | 431 // Multiple frame images. |
| 432 testRandomDecodeAfterClearFrameBufferCache("/LayoutTests/fast/images/resourc
es/animated-gif-with-offsets.gif"); | 432 testRandomDecodeAfterClearFrameBufferCache("/LayoutTests/fast/images/resourc
es/animated-gif-with-offsets.gif"); |
| 433 testRandomDecodeAfterClearFrameBufferCache("/LayoutTests/fast/images/resourc
es/animated-10color.gif"); | 433 testRandomDecodeAfterClearFrameBufferCache("/LayoutTests/fast/images/resourc
es/animated-10color.gif"); |
| 434 } | 434 } |
| 435 | 435 |
| 436 TEST(GIFImageDecoderTest, resumePartialDecodeAfterClearFrameBufferCache) | 436 TEST(GIFImageDecoderTest, resumePartialDecodeAfterClearFrameBufferCache) |
| 437 { | 437 { |
| 438 RefPtr<SharedBuffer> fullData = readFile("/LayoutTests/fast/images/resources
/animated-10color.gif"); | 438 RefPtr<SharedBuffer> fullData = readFile("/LayoutTests/fast/images/resources
/animated-10color.gif"); |
| 439 ASSERT_TRUE(fullData.get()); | 439 ASSERT_TRUE(fullData.get()); |
| 440 Vector<unsigned> baselineHashes; | 440 Vector<unsigned> baselineHashes; |
| (...skipping 17 matching lines...) Expand all Loading... |
| 458 EXPECT_EQ(baselineHashes[frameCount - 1], hashSkBitmap(lastFrame->getSkBitma
p())); | 458 EXPECT_EQ(baselineHashes[frameCount - 1], hashSkBitmap(lastFrame->getSkBitma
p())); |
| 459 decoder->clearCacheExceptFrame(notFound); | 459 decoder->clearCacheExceptFrame(notFound); |
| 460 | 460 |
| 461 // Resume decoding of the first frame. | 461 // Resume decoding of the first frame. |
| 462 ImageFrame* firstFrame = decoder->frameBufferAtIndex(0); | 462 ImageFrame* firstFrame = decoder->frameBufferAtIndex(0); |
| 463 EXPECT_EQ(ImageFrame::FrameComplete, firstFrame->status()); | 463 EXPECT_EQ(ImageFrame::FrameComplete, firstFrame->status()); |
| 464 EXPECT_EQ(baselineHashes[0], hashSkBitmap(firstFrame->getSkBitmap())); | 464 EXPECT_EQ(baselineHashes[0], hashSkBitmap(firstFrame->getSkBitmap())); |
| 465 } | 465 } |
| 466 | 466 |
| 467 #endif | 467 #endif |
| OLD | NEW |