Index: Source/WebKit/chromium/tests/GIFImageDecoderTest.cpp |
diff --git a/Source/WebKit/chromium/tests/GIFImageDecoderTest.cpp b/Source/WebKit/chromium/tests/GIFImageDecoderTest.cpp |
index f2486e36c9d2d118aab253a8eb86408812b7d32e..e7e7172fde2ff5c1674af90bc0e2a7fc429499de 100644 |
--- a/Source/WebKit/chromium/tests/GIFImageDecoderTest.cpp |
+++ b/Source/WebKit/chromium/tests/GIFImageDecoderTest.cpp |
@@ -241,6 +241,62 @@ TEST(GIFImageDecoderTest, progressiveDecode) |
EXPECT_TRUE(match); |
} |
+TEST(GIFImageDecoderTest, allDataReceivedTruncation) |
+{ |
+ OwnPtr<GIFImageDecoder> 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"); |
+ ASSERT_TRUE(data.get()); |
+ |
+ ASSERT_GE(data->size(), 10u); |
+ RefPtr<SharedBuffer> tempData = SharedBuffer::create(data->data(), data->size() - 10); |
+ decoder->setData(tempData.get(), false); |
+ |
+ EXPECT_EQ(2u, decoder->frameCount()); |
+ EXPECT_FALSE(decoder->failed()); |
+ EXPECT_TRUE(decoder->frameIsCompleteAtIndex(0)); |
+ EXPECT_FALSE(decoder->frameIsCompleteAtIndex(1)); |
+ |
+ decoder->setData(data.get(), true); |
+ EXPECT_EQ(2u, decoder->frameCount()); |
+ EXPECT_TRUE(decoder->frameIsCompleteAtIndex(0)); |
+ EXPECT_TRUE(decoder->frameIsCompleteAtIndex(1)); |
+} |
+ |
#endif |
} // namespace |