Index: Source/WebKit/chromium/tests/GIFImageDecoderTest.cpp |
diff --git a/Source/WebKit/chromium/tests/GIFImageDecoderTest.cpp b/Source/WebKit/chromium/tests/GIFImageDecoderTest.cpp |
index 8e2bd157a6b698d796b4175c53f48d57ffd53da1..11947fada3143f65f196524e6353810f7edc3587 100644 |
--- a/Source/WebKit/chromium/tests/GIFImageDecoderTest.cpp |
+++ b/Source/WebKit/chromium/tests/GIFImageDecoderTest.cpp |
@@ -241,6 +241,60 @@ 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()); |
+ |
+ RefPtr<SharedBuffer> tempData = SharedBuffer::create(data->data(), data->size() - 10); |
Peter Kasting
2013/04/23 21:43:20
Maybe we should ASSERT_GE(data->size(), 10U) befor
Alpha Left Google
2013/04/25 23:02:44
Done.
|
+ 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()); |
+ |
+ 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 |