Chromium Code Reviews| Index: Source/core/platform/image-decoders/webp/WEBPImageDecoderTest.cpp |
| diff --git a/Source/core/platform/image-decoders/gif/GIFImageDecoderTest.cpp b/Source/core/platform/image-decoders/webp/WEBPImageDecoderTest.cpp |
| similarity index 55% |
| copy from Source/core/platform/image-decoders/gif/GIFImageDecoderTest.cpp |
| copy to Source/core/platform/image-decoders/webp/WEBPImageDecoderTest.cpp |
| index 3be491e54355e756446379867577b9af9aaefc85..7abe656953e74e817de8f4440dfd330afaae7ef1 100644 |
| --- a/Source/core/platform/image-decoders/gif/GIFImageDecoderTest.cpp |
| +++ b/Source/core/platform/image-decoders/webp/WEBPImageDecoderTest.cpp |
| @@ -30,8 +30,9 @@ |
| #include "config.h" |
| -#include "core/platform/image-decoders/gif/GIFImageDecoder.h" |
| +#include "core/platform/image-decoders/webp/WEBPImageDecoder.h" |
| +#include "RuntimeEnabledFeatures.h" |
| #include "core/platform/FileSystem.h" |
| #include "core/platform/SharedBuffer.h" |
| #include "public/platform/Platform.h" |
| @@ -42,16 +43,17 @@ |
| #include "wtf/PassOwnPtr.h" |
| #include "wtf/StringHasher.h" |
| #include "wtf/Vector.h" |
| +#include <base/basictypes.h> |
|
jamesr
2013/06/21 04:45:30
you shouldn't use chromium's base library in blink
urvang (Google)
2013/06/24 11:02:03
Thanks for pointing that out James!
Using "wtf/dto
|
| #include <gtest/gtest.h> |
| using namespace WebCore; |
| using namespace WebKit; |
| -#if !OS(ANDROID) |
| - |
| namespace { |
| -PassRefPtr<SharedBuffer> readFile(const char* fileName) |
| +#if !OS(ANDROID) |
| + |
| +static PassRefPtr<SharedBuffer> readFile(const char* fileName) |
| { |
| String filePath = Platform::current()->unitTestSupport()->webKitRootDir(); |
| filePath.append(fileName); |
| @@ -68,19 +70,19 @@ PassRefPtr<SharedBuffer> readFile(const char* fileName) |
| return SharedBuffer::adoptVector(buffer); |
| } |
| -PassOwnPtr<GIFImageDecoder> createDecoder() |
| +static PassOwnPtr<WEBPImageDecoder> createDecoder() |
| { |
| - return adoptPtr(new GIFImageDecoder(ImageSource::AlphaNotPremultiplied, ImageSource::GammaAndColorProfileApplied)); |
| + return adoptPtr(new WEBPImageDecoder(ImageSource::AlphaNotPremultiplied, ImageSource::GammaAndColorProfileApplied)); |
| } |
| -unsigned hashSkBitmap(const SkBitmap& bitmap) |
| +static unsigned hashSkBitmap(const SkBitmap& bitmap) |
| { |
| return StringHasher::hashMemory(bitmap.getPixels(), bitmap.getSize()); |
| } |
| -void createDecodingBaseline(SharedBuffer* data, Vector<unsigned>* baselineHashes) |
| +static void createDecodingBaseline(SharedBuffer* data, Vector<unsigned>* baselineHashes) |
| { |
| - OwnPtr<GIFImageDecoder> decoder = createDecoder(); |
| + OwnPtr<WEBPImageDecoder> decoder = createDecoder(); |
| decoder->setData(data, true); |
| size_t frameCount = decoder->frameCount(); |
| for (size_t i = 0; i < frameCount; ++i) { |
| @@ -89,18 +91,18 @@ void createDecodingBaseline(SharedBuffer* data, Vector<unsigned>* baselineHashes |
| } |
| } |
| -void testRandomFrameDecode(const char* gifFile) |
| +void testRandomFrameDecode(const char* webpFile) |
| { |
| - SCOPED_TRACE(gifFile); |
| + SCOPED_TRACE(webpFile); |
| - RefPtr<SharedBuffer> fullData = readFile(gifFile); |
| + RefPtr<SharedBuffer> fullData = readFile(webpFile); |
| ASSERT_TRUE(fullData.get()); |
| Vector<unsigned> baselineHashes; |
| createDecodingBaseline(fullData.get(), &baselineHashes); |
| size_t frameCount = baselineHashes.size(); |
| // Random decoding should get the same results as sequential decoding. |
| - OwnPtr<GIFImageDecoder> decoder = createDecoder(); |
| + OwnPtr<WEBPImageDecoder> decoder = createDecoder(); |
| decoder->setData(fullData.get(), true); |
| const size_t skippingStep = 5; |
| for (size_t i = 0; i < skippingStep; ++i) { |
| @@ -121,17 +123,17 @@ void testRandomFrameDecode(const char* gifFile) |
| } |
| } |
| -void testRandomDecodeAfterClearFrameBufferCache(const char* gifFile) |
| +void testRandomDecodeAfterClearFrameBufferCache(const char* webpFile) |
| { |
| - SCOPED_TRACE(gifFile); |
| + SCOPED_TRACE(webpFile); |
| - RefPtr<SharedBuffer> data = readFile(gifFile); |
| + RefPtr<SharedBuffer> data = readFile(webpFile); |
| ASSERT_TRUE(data.get()); |
| Vector<unsigned> baselineHashes; |
| createDecodingBaseline(data.get(), &baselineHashes); |
| size_t frameCount = baselineHashes.size(); |
| - OwnPtr<GIFImageDecoder> decoder = createDecoder(); |
| + OwnPtr<WEBPImageDecoder> decoder = createDecoder(); |
| decoder->setData(data.get(), true); |
| for (size_t clearExceptFrame = 0; clearExceptFrame < frameCount; ++clearExceptFrame) { |
| decoder->clearCacheExceptFrame(clearExceptFrame); |
| @@ -146,129 +148,114 @@ void testRandomDecodeAfterClearFrameBufferCache(const char* gifFile) |
| } |
| } |
| -} // namespace |
| +class AnimatedWebPTests : public ::testing::Test { |
| +protected: |
| + virtual void SetUp() |
| + { |
| + // Enable animated WebP for all the tests. |
| + WebCore::RuntimeEnabledFeatures::setAnimatedWebPEnabled(true); |
| + } |
| +}; |
| -TEST(GIFImageDecoderTest, decodeTwoFrames) |
| +TEST_F(AnimatedWebPTests, verifyAnimationParameters) |
| { |
| - OwnPtr<GIFImageDecoder> decoder = createDecoder(); |
| - |
| - RefPtr<SharedBuffer> data = readFile("/LayoutTests/fast/images/resources/animated.gif"); |
| - ASSERT_TRUE(data.get()); |
| - decoder->setData(data.get(), true); |
| + OwnPtr<WEBPImageDecoder> decoder = createDecoder(); |
| EXPECT_EQ(cAnimationLoopOnce, decoder->repetitionCount()); |
| - ImageFrame* frame = decoder->frameBufferAtIndex(0); |
| - EXPECT_EQ(ImageFrame::FrameComplete, frame->status()); |
| - EXPECT_EQ(16, frame->getSkBitmap().width()); |
| - EXPECT_EQ(16, frame->getSkBitmap().height()); |
| - |
| - frame = decoder->frameBufferAtIndex(1); |
| - EXPECT_EQ(ImageFrame::FrameComplete, frame->status()); |
| - EXPECT_EQ(16, frame->getSkBitmap().width()); |
| - EXPECT_EQ(16, frame->getSkBitmap().height()); |
| - |
| - EXPECT_EQ(2u, decoder->frameCount()); |
| - EXPECT_EQ(cAnimationLoopInfinite, decoder->repetitionCount()); |
| -} |
| - |
| -TEST(GIFImageDecoderTest, parseAndDecode) |
| -{ |
| - OwnPtr<GIFImageDecoder> decoder = createDecoder(); |
| - |
| - RefPtr<SharedBuffer> data = readFile("/LayoutTests/fast/images/resources/animated.gif"); |
| + RefPtr<SharedBuffer> data = readFile("/LayoutTests/fast/images/resources/webp-animated.webp"); |
| ASSERT_TRUE(data.get()); |
| decoder->setData(data.get(), true); |
| - EXPECT_EQ(cAnimationLoopOnce, decoder->repetitionCount()); |
| - // This call will parse the entire file. |
| - EXPECT_EQ(2u, decoder->frameCount()); |
| - |
| - ImageFrame* frame = decoder->frameBufferAtIndex(0); |
| - EXPECT_EQ(ImageFrame::FrameComplete, frame->status()); |
| - EXPECT_EQ(16, frame->getSkBitmap().width()); |
| - EXPECT_EQ(16, frame->getSkBitmap().height()); |
| - |
| - frame = decoder->frameBufferAtIndex(1); |
| - EXPECT_EQ(ImageFrame::FrameComplete, frame->status()); |
| - EXPECT_EQ(16, frame->getSkBitmap().width()); |
| - EXPECT_EQ(16, frame->getSkBitmap().height()); |
| - EXPECT_EQ(cAnimationLoopInfinite, decoder->repetitionCount()); |
| -} |
| - |
| -TEST(GIFImageDecoderTest, parseByteByByte) |
| -{ |
| - OwnPtr<GIFImageDecoder> decoder = createDecoder(); |
| - |
| - RefPtr<SharedBuffer> data = readFile("/LayoutTests/fast/images/resources/animated.gif"); |
| - ASSERT_TRUE(data.get()); |
| - |
| - size_t frameCount = 0; |
| - |
| - // Pass data to decoder byte by byte. |
| - for (size_t length = 1; length <= data->size(); ++length) { |
| - RefPtr<SharedBuffer> tempData = SharedBuffer::create(data->data(), length); |
| - decoder->setData(tempData.get(), length == data->size()); |
| - |
| - EXPECT_LE(frameCount, decoder->frameCount()); |
| - frameCount = decoder->frameCount(); |
| + const int canvasWidth = 11; |
| + const int canvasHeight = 29; |
| + const int hasAlpha = true; |
| + const struct AnimParam { |
| + int xOffset, yOffset, width, height; |
| + ImageFrame::FrameDisposalMethod dispose; |
| + unsigned duration; |
| + } animParams[] = { |
| + { 0, 0, 11, 29, ImageFrame::DisposeKeep, 1000u }, |
| + { 2, 10, 7, 17, ImageFrame::DisposeKeep, 500u }, |
| + { 2, 2, 7, 16, ImageFrame::DisposeKeep, 1000u }, |
| + }; |
| + |
| + for (size_t i = 0; i < ARRAYSIZE_UNSAFE(animParams); ++i) { |
| + const ImageFrame* const frame = decoder->frameBufferAtIndex(i); |
| + EXPECT_EQ(ImageFrame::FrameComplete, frame->status()); |
| + EXPECT_EQ(canvasWidth, frame->getSkBitmap().width()); |
| + EXPECT_EQ(canvasHeight, frame->getSkBitmap().height()); |
| + EXPECT_EQ(hasAlpha, frame->hasAlpha()); |
| + EXPECT_EQ(animParams[i].xOffset, frame->originalFrameRect().x()); |
| + EXPECT_EQ(animParams[i].yOffset, frame->originalFrameRect().y()); |
| + EXPECT_EQ(animParams[i].width, frame->originalFrameRect().width()); |
| + EXPECT_EQ(animParams[i].height, frame->originalFrameRect().height()); |
| + EXPECT_EQ(animParams[i].dispose, frame->disposalMethod()); |
| + EXPECT_EQ(animParams[i].duration, frame->duration()); |
| } |
| - EXPECT_EQ(2u, decoder->frameCount()); |
| - |
| - decoder->frameBufferAtIndex(0); |
| - decoder->frameBufferAtIndex(1); |
| + EXPECT_EQ(ARRAYSIZE_UNSAFE(animParams), decoder->frameCount()); |
| EXPECT_EQ(cAnimationLoopInfinite, decoder->repetitionCount()); |
| } |
| -TEST(GIFImageDecoderTest, parseAndDecodeByteByByte) |
| +TEST_F(AnimatedWebPTests, parseAndDecodeByteByByte) |
| { |
| - OwnPtr<GIFImageDecoder> decoder = createDecoder(); |
| - |
| - RefPtr<SharedBuffer> data = readFile("/LayoutTests/fast/images/resources/animated-gif-with-offsets.gif"); |
| - ASSERT_TRUE(data.get()); |
| - |
| - size_t frameCount = 0; |
| - size_t framesDecoded = 0; |
| - |
| - // Pass data to decoder byte by byte. |
| - for (size_t length = 1; length <= data->size(); ++length) { |
| - RefPtr<SharedBuffer> tempData = SharedBuffer::create(data->data(), length); |
| - decoder->setData(tempData.get(), length == data->size()); |
| - |
| - EXPECT_LE(frameCount, decoder->frameCount()); |
| - frameCount = decoder->frameCount(); |
| + const struct TestImage { |
| + const char* filename; |
| + unsigned frameCount; |
| + int repetitionCount; |
| + } testImages[] = { |
| + { "/LayoutTests/fast/images/resources/webp-animated.webp", 3u, cAnimationLoopInfinite }, |
| + { "/LayoutTests/fast/images/resources/webp-animated-icc-xmp.webp", 13u, 32000 }, |
| + }; |
| + |
| + for (size_t i = 0; i < ARRAYSIZE_UNSAFE(testImages); ++i) { |
| + OwnPtr<WEBPImageDecoder> decoder = createDecoder(); |
| + RefPtr<SharedBuffer> data = readFile(testImages[i].filename); |
| + ASSERT_TRUE(data.get()); |
| + |
| + size_t frameCount = 0; |
| + size_t framesDecoded = 0; |
| + |
| + // Pass data to decoder byte by byte. |
| + for (size_t length = 1; length <= data->size(); ++length) { |
| + RefPtr<SharedBuffer> tempData = SharedBuffer::create(data->data(), length); |
| + decoder->setData(tempData.get(), length == data->size()); |
| + |
| + EXPECT_LE(frameCount, decoder->frameCount()); |
| + frameCount = decoder->frameCount(); |
| + |
| + ImageFrame* frame = decoder->frameBufferAtIndex(frameCount - 1); |
| + if (frame && frame->status() == ImageFrame::FrameComplete && framesDecoded < frameCount) |
| + ++framesDecoded; |
| + } |
| - ImageFrame* frame = decoder->frameBufferAtIndex(frameCount - 1); |
| - if (frame && frame->status() == ImageFrame::FrameComplete && framesDecoded < frameCount) |
| - ++framesDecoded; |
| + EXPECT_EQ(testImages[i].frameCount, decoder->frameCount()); |
| + EXPECT_EQ(testImages[i].frameCount, framesDecoded); |
| + EXPECT_EQ(testImages[i].repetitionCount, decoder->repetitionCount()); |
| } |
| - |
| - EXPECT_EQ(5u, decoder->frameCount()); |
| - EXPECT_EQ(5u, framesDecoded); |
| - EXPECT_EQ(cAnimationLoopInfinite, decoder->repetitionCount()); |
| } |
| -TEST(GIFImageDecoderTest, brokenSecondFrame) |
| +TEST_F(AnimatedWebPTests, invalidImage) |
| { |
| - OwnPtr<GIFImageDecoder> decoder = createDecoder(); |
| + OwnPtr<WEBPImageDecoder> decoder = createDecoder(); |
| - RefPtr<SharedBuffer> data = readFile("/Source/WebKit/chromium/tests/data/broken.gif"); |
| + RefPtr<SharedBuffer> data = readFile("/LayoutTests/fast/images/resources/invalid-animated-webp.webp"); |
| ASSERT_TRUE(data.get()); |
| decoder->setData(data.get(), true); |
| - // One frame is detected but cannot be decoded. |
| - EXPECT_EQ(1u, decoder->frameCount()); |
| - ImageFrame* frame = decoder->frameBufferAtIndex(1); |
| + EXPECT_EQ(0u, decoder->frameCount()); |
| + ImageFrame* frame = decoder->frameBufferAtIndex(0); |
| EXPECT_FALSE(frame); |
| + EXPECT_EQ(cAnimationLoopOnce, decoder->repetitionCount()); |
| } |
| -TEST(GIFImageDecoderTest, progressiveDecode) |
| +TEST_F(AnimatedWebPTests, progressiveDecode) |
| { |
| - RefPtr<SharedBuffer> fullData = readFile("/Source/WebKit/chromium/tests/data/radient.gif"); |
| + RefPtr<SharedBuffer> fullData = readFile("/LayoutTests/fast/images/resources/webp-animated.webp"); |
| ASSERT_TRUE(fullData.get()); |
| const size_t fullLength = fullData->size(); |
| - OwnPtr<GIFImageDecoder> decoder; |
| + OwnPtr<WEBPImageDecoder> decoder; |
| ImageFrame* frame; |
| Vector<unsigned> truncatedHashes; |
| @@ -311,45 +298,11 @@ TEST(GIFImageDecoderTest, progressiveDecode) |
| EXPECT_TRUE(match); |
| } |
| -TEST(GIFImageDecoderTest, allDataReceivedTruncation) |
| +TEST_F(AnimatedWebPTests, frameIsCompleteAndDuration) |
| { |
| - OwnPtr<GIFImageDecoder> decoder = createDecoder(); |
| + OwnPtr<WEBPImageDecoder> decoder = createDecoder(); |
| - RefPtr<SharedBuffer> data = readFile("/LayoutTests/fast/images/resources/animated.gif"); |
| - ASSERT_TRUE(data.get()); |
| - |
| - ASSERT_GE(data->size(), 10u); |
| - RefPtr<SharedBuffer> tempData = SharedBuffer::create(data->data(), data->size() - 10); |
| - decoder->setData(tempData.get(), true); |
| - |
| - EXPECT_EQ(2u, decoder->frameCount()); |
| - EXPECT_FALSE(decoder->failed()); |
| - |
| - decoder->frameBufferAtIndex(0); |
| - EXPECT_FALSE(decoder->failed()); |
| - decoder->frameBufferAtIndex(1); |
| - EXPECT_TRUE(decoder->failed()); |
| -} |
| - |
| -TEST(GIFImageDecoderTest, frameIsComplete) |
| -{ |
| - OwnPtr<GIFImageDecoder> decoder = createDecoder(); |
| - |
| - RefPtr<SharedBuffer> data = readFile("/LayoutTests/fast/images/resources/animated.gif"); |
| - ASSERT_TRUE(data.get()); |
| - decoder->setData(data.get(), true); |
| - |
| - EXPECT_EQ(2u, decoder->frameCount()); |
| - EXPECT_FALSE(decoder->failed()); |
| - EXPECT_TRUE(decoder->frameIsCompleteAtIndex(0)); |
| - EXPECT_TRUE(decoder->frameIsCompleteAtIndex(1)); |
| -} |
| - |
| -TEST(GIFImageDecoderTest, frameIsCompleteLoading) |
| -{ |
| - OwnPtr<GIFImageDecoder> decoder = createDecoder(); |
| - |
| - RefPtr<SharedBuffer> data = readFile("/LayoutTests/fast/images/resources/animated.gif"); |
| + RefPtr<SharedBuffer> data = readFile("/LayoutTests/fast/images/resources/webp-animated.webp"); |
| ASSERT_TRUE(data.get()); |
| ASSERT_GE(data->size(), 10u); |
| @@ -359,41 +312,25 @@ TEST(GIFImageDecoderTest, frameIsCompleteLoading) |
| EXPECT_EQ(2u, decoder->frameCount()); |
| EXPECT_FALSE(decoder->failed()); |
| EXPECT_TRUE(decoder->frameIsCompleteAtIndex(0)); |
| - EXPECT_FALSE(decoder->frameIsCompleteAtIndex(1)); |
| + EXPECT_EQ(1000, decoder->frameDurationAtIndex(0)); |
| + EXPECT_TRUE(decoder->frameIsCompleteAtIndex(1)); |
| + EXPECT_EQ(500, decoder->frameDurationAtIndex(1)); |
| decoder->setData(data.get(), true); |
| - EXPECT_EQ(2u, decoder->frameCount()); |
| + EXPECT_EQ(3u, decoder->frameCount()); |
| EXPECT_TRUE(decoder->frameIsCompleteAtIndex(0)); |
| + EXPECT_EQ(1000, decoder->frameDurationAtIndex(0)); |
| EXPECT_TRUE(decoder->frameIsCompleteAtIndex(1)); |
| + EXPECT_EQ(500, decoder->frameDurationAtIndex(1)); |
| + EXPECT_TRUE(decoder->frameIsCompleteAtIndex(2)); |
| + EXPECT_EQ(1000.0, decoder->frameDurationAtIndex(2)); |
| } |
| -TEST(GIFImageDecoderTest, badTerminator) |
| +TEST_F(AnimatedWebPTests, updateRequiredPreviousFrameAfterFirstDecode) |
| { |
| - RefPtr<SharedBuffer> referenceData = readFile("/Source/WebKit/chromium/tests/data/radient.gif"); |
| - RefPtr<SharedBuffer> testData = readFile("/Source/WebKit/chromium/tests/data/radient-bad-terminator.gif"); |
| - ASSERT_TRUE(referenceData.get()); |
| - ASSERT_TRUE(testData.get()); |
| - |
| - OwnPtr<GIFImageDecoder> referenceDecoder(createDecoder()); |
| - referenceDecoder->setData(referenceData.get(), true); |
| - EXPECT_EQ(1u, referenceDecoder->frameCount()); |
| - ImageFrame* referenceFrame = referenceDecoder->frameBufferAtIndex(0); |
| - ASSERT(referenceFrame); |
| - |
| - OwnPtr<GIFImageDecoder> testDecoder(createDecoder()); |
| - testDecoder->setData(testData.get(), true); |
| - EXPECT_EQ(1u, testDecoder->frameCount()); |
| - ImageFrame* testFrame = testDecoder->frameBufferAtIndex(0); |
| - ASSERT(testFrame); |
| - |
| - EXPECT_EQ(hashSkBitmap(referenceFrame->getSkBitmap()), hashSkBitmap(testFrame->getSkBitmap())); |
| -} |
| + OwnPtr<WEBPImageDecoder> decoder = createDecoder(); |
| -TEST(GIFImageDecoderTest, updateRequiredPreviousFrameAfterFirstDecode) |
| -{ |
| - OwnPtr<GIFImageDecoder> decoder = createDecoder(); |
| - |
| - RefPtr<SharedBuffer> fullData = readFile("/LayoutTests/fast/images/resources/animated-10color.gif"); |
| + RefPtr<SharedBuffer> fullData = readFile("/LayoutTests/fast/images/resources/webp-animated.webp"); |
| ASSERT_TRUE(fullData.get()); |
| // Give it data that is enough to parse but not decode in order to check the status |
| @@ -415,33 +352,29 @@ TEST(GIFImageDecoderTest, updateRequiredPreviousFrameAfterFirstDecode) |
| EXPECT_EQ(notFound, decoder->frameBufferAtIndex(i)->requiredPreviousFrameIndex()); |
| } |
| -TEST(GIFImageDecoderTest, randomFrameDecode) |
| +TEST_F(AnimatedWebPTests, randomFrameDecode) |
| { |
| - // Single frame image. |
| - testRandomFrameDecode("/Source/WebKit/chromium/tests/data/radient.gif"); |
| - // Multiple frame images. |
| - testRandomFrameDecode("/LayoutTests/fast/images/resources/animated-gif-with-offsets.gif"); |
| - testRandomFrameDecode("/LayoutTests/fast/images/resources/animated-10color.gif"); |
| + testRandomFrameDecode("/LayoutTests/fast/images/resources/webp-animated.webp"); |
| + testRandomFrameDecode("/LayoutTests/fast/images/resources/webp-animated-large.webp"); |
| + testRandomFrameDecode("/LayoutTests/fast/images/resources/webp-animated-icc-xmp.webp"); |
| } |
| -TEST(GIFImageDecoderTest, randomDecodeAfterClearFrameBufferCache) |
| +TEST_F(AnimatedWebPTests, randomDecodeAfterClearFrameBufferCache) |
| { |
| - // Single frame image. |
| - testRandomDecodeAfterClearFrameBufferCache("/Source/WebKit/chromium/tests/data/radient.gif"); |
| - // Multiple frame images. |
| - testRandomDecodeAfterClearFrameBufferCache("/LayoutTests/fast/images/resources/animated-gif-with-offsets.gif"); |
| - testRandomDecodeAfterClearFrameBufferCache("/LayoutTests/fast/images/resources/animated-10color.gif"); |
| + testRandomDecodeAfterClearFrameBufferCache("/LayoutTests/fast/images/resources/webp-animated.webp"); |
| + testRandomDecodeAfterClearFrameBufferCache("/LayoutTests/fast/images/resources/webp-animated-large.webp"); |
| + testRandomDecodeAfterClearFrameBufferCache("/LayoutTests/fast/images/resources/webp-animated-icc-xmp.webp"); |
| } |
| -TEST(GIFImageDecoderTest, resumePartialDecodeAfterClearFrameBufferCache) |
| +TEST_F(AnimatedWebPTests, resumePartialDecodeAfterClearFrameBufferCache) |
| { |
| - RefPtr<SharedBuffer> fullData = readFile("/LayoutTests/fast/images/resources/animated-10color.gif"); |
| + RefPtr<SharedBuffer> fullData = readFile("/LayoutTests/fast/images/resources/webp-animated-large.webp"); |
| ASSERT_TRUE(fullData.get()); |
| Vector<unsigned> baselineHashes; |
| createDecodingBaseline(fullData.get(), &baselineHashes); |
| size_t frameCount = baselineHashes.size(); |
| - OwnPtr<GIFImageDecoder> decoder = createDecoder(); |
| + OwnPtr<WEBPImageDecoder> decoder = createDecoder(); |
| // Let frame 0 be partially decoded. |
| size_t partialSize = 1; |
| @@ -465,3 +398,5 @@ TEST(GIFImageDecoderTest, resumePartialDecodeAfterClearFrameBufferCache) |
| } |
| #endif |
| + |
| +} // namespace |