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 090e0d90e3062264bce92ed3317f4b03e6a7a2f8..e505e9dfe49f2311a1f5e608a51a7d63f29fc957 100644 |
--- a/Source/core/platform/image-decoders/gif/GIFImageDecoderTest.cpp |
+++ b/Source/core/platform/image-decoders/gif/GIFImageDecoderTest.cpp |
@@ -451,3 +451,29 @@ TEST(GIFImageDecoderTest, resumePartialDecodeAfterClearFrameBufferCache) |
EXPECT_EQ(ImageFrame::FrameComplete, firstFrame->status()); |
EXPECT_EQ(baselineHashes[0], hashSkBitmap(firstFrame->getSkBitmap())); |
} |
+ |
+// The first LZW code in the image is invalid. Decoding should fail. |
Peter Kasting
2013/09/05 06:13:01
Nit: Perhaps:
The first LZW codes in the image ar
Alpha Left Google
2013/09/05 17:02:28
Done.
|
+TEST(GIFImageDecoderTest, badInitialCode) |
+{ |
+ RefPtr<SharedBuffer> testData = readFile("/Source/web/tests/data/bad-initial-code.gif"); |
+ ASSERT_TRUE(testData.get()); |
+ |
+ OwnPtr<GIFImageDecoder> testDecoder(createDecoder()); |
+ testDecoder->setData(testData.get(), true); |
+ EXPECT_EQ(1u, testDecoder->frameCount()); |
+ ASSERT_TRUE(testDecoder->frameBufferAtIndex(0)); |
+ EXPECT_TRUE(testDecoder->failed()); |
+} |
+ |
+// Image has an invalid LZW code. Decoding should fail. |
+TEST(GIFImageDecoderTest, badCode) |
+{ |
+ RefPtr<SharedBuffer> testData = readFile("/Source/web/tests/data/bad-code.gif"); |
+ ASSERT_TRUE(testData.get()); |
+ |
+ OwnPtr<GIFImageDecoder> testDecoder(createDecoder()); |
+ testDecoder->setData(testData.get(), true); |
+ EXPECT_EQ(1u, testDecoder->frameCount()); |
+ ASSERT_TRUE(testDecoder->frameBufferAtIndex(0)); |
+ EXPECT_TRUE(testDecoder->failed()); |
+} |