TEST_F(BitmapImageTest, jpegHasColorProfile) { loadImage("/tests/fast/images/resources/icc-v2-gbr.jpg"); EXPECT_EQ(1u, decodedFramesCount()); EXPECT_EQ(227700u, decodedSize()); EXPECT_TRUE(m_image->hasColorProfile()); resetDecoder(); destroyDecodedData(true); loadImage("/tests/fast/images/resources/green.jpg"); EXPECT_EQ(1u, decodedFramesCount()); EXPECT_EQ(1024u, decodedSize()); EXPECT_FALSE(m_image->hasColorProfile()); }
TEST_F(BitmapImageTest, pngHasColorProfile) { loadImage("/tests/fast/images/resources/palatted-color-png-gamma-one-color-profile.png"); EXPECT_EQ(1u, decodedFramesCount()); EXPECT_EQ(65536u, decodedSize()); EXPECT_TRUE(m_image->hasColorProfile()); resetDecoder(); destroyDecodedData(true); loadImage("/tests/fast/images/resources/green.jpg"); EXPECT_EQ(1u, decodedFramesCount()); EXPECT_EQ(1024u, decodedSize()); EXPECT_FALSE(m_image->hasColorProfile()); }
TEST_F(BitmapImageTest, webpHasColorProfile) { loadImage("/LayoutTests/fast/images/resources/webp-color-profile-lossy.webp"); EXPECT_EQ(1u, decodedFramesCount()); EXPECT_EQ(2560000u, decodedSize()); EXPECT_TRUE(m_image->hasColorProfile()); destroyDecodedData(true); resetDecoder(); loadImage("/LayoutTests/fast/images/resources/test.webp"); EXPECT_EQ(1u, decodedFramesCount()); EXPECT_EQ(65536u, decodedSize()); EXPECT_FALSE(m_image->hasColorProfile()); }
TEST_F(BitmapImageTest, noColorProfile) { loadImage("/LayoutTests/fast/images/resources/green.jpg"); EXPECT_EQ(1u, decodedFramesCount()); EXPECT_EQ(1024u, decodedSize()); EXPECT_FALSE(m_image->hasColorProfile()); }
TEST_F(BitmapImageTest, webpHasColorProfile) { loadImage("/LayoutTests/fast/images/resources/webp-color-profile-lossy.webp"); EXPECT_EQ(1u, decodedFramesCount()); EXPECT_EQ(2560000u, decodedSize()); EXPECT_TRUE(m_image->hasColorProfile()); }
TEST_F(BitmapImageTest, pngHasColorProfile) { loadImage("/LayoutTests/fast/images/resources/palatted-color-png-gamma-one-color-profile.png"); EXPECT_EQ(1u, decodedFramesCount()); EXPECT_EQ(65536u, decodedSize()); EXPECT_TRUE(m_image->hasColorProfile()); }
TEST_F(BitmapImageTest, jpegHasColorProfile) { loadImage("/LayoutTests/fast/images/resources/icc-v2-gbr.jpg"); EXPECT_EQ(1u, decodedFramesCount()); EXPECT_EQ(227700u, decodedSize()); EXPECT_TRUE(m_image->hasColorProfile()); }
size_t decodedSize() { // In the context of this test, the following loop will give the correct result, but only because the test // forces all frames to be decoded in loadImage() above. There is no general guarantee that frameDecodedSize() // is up-to-date. Because of how multi frame images (like GIF) work, requesting one frame to be decoded may // require other previous frames to be decoded as well. In those cases frameDecodedSize() wouldn't return the // correct thing for the previous frame because the decoded size wouldn't have propagated upwards to the // BitmapImage frame cache. size_t size = 0; for (size_t i = 0; i < decodedFramesCount(); ++i) size += frameDecodedSize(i); return size; }