| Index: Source/core/platform/image-decoders/gif/GIFImageDecoderTest.cpp
|
| diff --git a/Source/core/platform/image-decoders/gif/GIFImageDecoderTest.cpp b/Source/core/platform/image-decoders/gif/GIFImageDecoderTest.cpp
|
| index 80070dca78e429057eba5bf062260d9502507229..356be68f5ddf41cb8631329d2564805d024778cb 100644
|
| --- a/Source/core/platform/image-decoders/gif/GIFImageDecoderTest.cpp
|
| +++ b/Source/core/platform/image-decoders/gif/GIFImageDecoderTest.cpp
|
| @@ -451,3 +451,19 @@ TEST(GIFImageDecoderTest, resumePartialDecodeAfterClearFrameBufferCache)
|
| EXPECT_EQ(ImageFrame::FrameComplete, firstFrame->status());
|
| EXPECT_EQ(baselineHashes[0], hashSkBitmap(firstFrame->getSkBitmap()));
|
| }
|
| +
|
| +TEST(GIFImageDecoderTest, invalidDisposalMethod)
|
| +{
|
| + OwnPtr<GIFImageDecoder> decoder = createDecoder();
|
| +
|
| + // The image has 2 frames, with disposal method 4 and 5, respectively.
|
| + RefPtr<SharedBuffer> data = readFile("/Source/web/tests/data/invalid-disposal-method.gif");
|
| + ASSERT_TRUE(data.get());
|
| + decoder->setData(data.get(), true);
|
| +
|
| + EXPECT_EQ(2u, decoder->frameCount());
|
| + // Disposal method 4 is converted to ImageFrame::DisposeOverwritePrevious.
|
| + EXPECT_EQ(ImageFrame::DisposeOverwritePrevious, decoder->frameBufferAtIndex(0)->disposalMethod());
|
| + // Disposal method 5 is ignored.
|
| + EXPECT_EQ(ImageFrame::DisposeNotSpecified, decoder->frameBufferAtIndex(1)->disposalMethod());
|
| +}
|
|
|