Bug 1249578 (Part 2) - Add a test that decoding ICOs with a size mismatch between the BIH header and the ICO directory entry fails. r=njn

This commit is contained in:
Seth Fowler 2016-06-20 20:27:39 -07:00
Родитель 1d5c203221
Коммит 82666db699
6 изменённых файлов: 40 добавлений и 0 удалений

Просмотреть файл

@ -485,6 +485,22 @@ ImageTestCase CorruptTestCase()
TEST_CASE_HAS_ERROR); TEST_CASE_HAS_ERROR);
} }
ImageTestCase CorruptICOWithBadBMPWidthTestCase()
{
// This ICO contains a BMP icon which has a width that doesn't match the size
// listed in the corresponding ICO directory entry.
return ImageTestCase("corrupt-with-bad-bmp-width.ico", "image/x-icon",
IntSize(100, 100), TEST_CASE_HAS_ERROR);
}
ImageTestCase CorruptICOWithBadBMPHeightTestCase()
{
// This ICO contains a BMP icon which has a height that doesn't match the size
// listed in the corresponding ICO directory entry.
return ImageTestCase("corrupt-with-bad-bmp-height.ico", "image/x-icon",
IntSize(100, 100), TEST_CASE_HAS_ERROR);
}
ImageTestCase TransparentPNGTestCase() ImageTestCase TransparentPNGTestCase()
{ {
return ImageTestCase("transparent.png", "image/png", IntSize(32, 32), return ImageTestCase("transparent.png", "image/png", IntSize(32, 32),

Просмотреть файл

@ -327,6 +327,8 @@ ImageTestCase GreenFirstFrameAnimatedGIFTestCase();
ImageTestCase GreenFirstFrameAnimatedPNGTestCase(); ImageTestCase GreenFirstFrameAnimatedPNGTestCase();
ImageTestCase CorruptTestCase(); ImageTestCase CorruptTestCase();
ImageTestCase CorruptICOWithBadBMPWidthTestCase();
ImageTestCase CorruptICOWithBadBMPHeightTestCase();
ImageTestCase TransparentPNGTestCase(); ImageTestCase TransparentPNGTestCase();
ImageTestCase TransparentGIFTestCase(); ImageTestCase TransparentGIFTestCase();

Просмотреть файл

@ -350,6 +350,26 @@ TEST(ImageDecoders, CorruptMultiChunk)
CheckDecoderMultiChunk(CorruptTestCase()); CheckDecoderMultiChunk(CorruptTestCase());
} }
TEST(ImageDecoders, CorruptICOWithBadBMPWidthSingleChunk)
{
CheckDecoderSingleChunk(CorruptICOWithBadBMPWidthTestCase());
}
TEST(ImageDecoders, CorruptICOWithBadBMPWidthMultiChunk)
{
CheckDecoderMultiChunk(CorruptICOWithBadBMPWidthTestCase());
}
TEST(ImageDecoders, CorruptICOWithBadBMPHeightSingleChunk)
{
CheckDecoderSingleChunk(CorruptICOWithBadBMPHeightTestCase());
}
TEST(ImageDecoders, CorruptICOWithBadBMPHeightMultiChunk)
{
CheckDecoderMultiChunk(CorruptICOWithBadBMPHeightTestCase());
}
TEST(ImageDecoders, AnimatedGIFWithExtraImageSubBlocks) TEST(ImageDecoders, AnimatedGIFWithExtraImageSubBlocks)
{ {
ImageTestCase testCase = ExtraImageSubBlocksAnimatedGIFTestCase(); ImageTestCase testCase = ExtraImageSubBlocksAnimatedGIFTestCase();

Двоичные данные
image/test/gtest/corrupt-with-bad-bmp-height.ico Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 41 KiB

Двоичные данные
image/test/gtest/corrupt-with-bad-bmp-width.ico Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 41 KiB

Просмотреть файл

@ -31,6 +31,8 @@ SOURCES += [
TEST_HARNESS_FILES.gtest += [ TEST_HARNESS_FILES.gtest += [
'animated-with-extra-image-sub-blocks.gif', 'animated-with-extra-image-sub-blocks.gif',
'corrupt-with-bad-bmp-height.ico',
'corrupt-with-bad-bmp-width.ico',
'corrupt.jpg', 'corrupt.jpg',
'downscaled.bmp', 'downscaled.bmp',
'downscaled.gif', 'downscaled.gif',