OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2013, Google Inc. All rights reserved. | 2 * Copyright (c) 2013, Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
66 filePath.append(fileName); | 66 filePath.append(fileName); |
67 return Platform::current()->unitTestSupport()->readFromFile(filePath); | 67 return Platform::current()->unitTestSupport()->readFromFile(filePath); |
68 } | 68 } |
69 | 69 |
70 // Accessors to BitmapImage's protected methods. | 70 // Accessors to BitmapImage's protected methods. |
71 void destroyDecodedData(bool destroyAll) { m_image->destroyDecodedData(destr
oyAll); } | 71 void destroyDecodedData(bool destroyAll) { m_image->destroyDecodedData(destr
oyAll); } |
72 size_t frameCount() { return m_image->frameCount(); } | 72 size_t frameCount() { return m_image->frameCount(); } |
73 void setCurrentFrame(size_t frame) { m_image->m_currentFrame = frame; } | 73 void setCurrentFrame(size_t frame) { m_image->m_currentFrame = frame; } |
74 size_t frameDecodedSize(size_t frame) { return m_image->m_frames[frame].m_fr
ameBytes; } | 74 size_t frameDecodedSize(size_t frame) { return m_image->m_frames[frame].m_fr
ameBytes; } |
75 size_t decodedFramesCount() const { return m_image->m_frames.size(); } | 75 size_t decodedFramesCount() const { return m_image->m_frames.size(); } |
76 void resetDecoder() { return m_image->resetDecoder(); } | |
77 | 76 |
78 void loadImage(const char* fileName) | 77 void loadImage(const char* fileName) |
79 { | 78 { |
80 RefPtr<SharedBuffer> imageData = readFile(fileName); | 79 RefPtr<SharedBuffer> imageData = readFile(fileName); |
81 ASSERT_TRUE(imageData.get()); | 80 ASSERT_TRUE(imageData.get()); |
82 | 81 |
83 m_image->setData(imageData, true); | 82 m_image->setData(imageData, true); |
84 EXPECT_EQ(0u, decodedSize()); | 83 EXPECT_EQ(0u, decodedSize()); |
85 | 84 |
86 size_t frameCount = m_image->frameCount(); | 85 size_t frameCount = m_image->frameCount(); |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
181 | 180 |
182 image->setData(SharedBuffer::create("data", sizeof("data")), false); | 181 image->setData(SharedBuffer::create("data", sizeof("data")), false); |
183 EXPECT_FALSE(image->isAllDataReceived()); | 182 EXPECT_FALSE(image->isAllDataReceived()); |
184 | 183 |
185 image->setData(imageData, true); | 184 image->setData(imageData, true); |
186 EXPECT_TRUE(image->isAllDataReceived()); | 185 EXPECT_TRUE(image->isAllDataReceived()); |
187 } | 186 } |
188 | 187 |
189 #if USE(QCMSLIB) | 188 #if USE(QCMSLIB) |
190 | 189 |
| 190 TEST_F(BitmapImageTest, noColorProfile) |
| 191 { |
| 192 loadImage("/LayoutTests/fast/images/resources/green.jpg"); |
| 193 EXPECT_EQ(1u, decodedFramesCount()); |
| 194 EXPECT_EQ(1024u, decodedSize()); |
| 195 EXPECT_FALSE(m_image->hasColorProfile()); |
| 196 } |
| 197 |
191 TEST_F(BitmapImageTest, jpegHasColorProfile) | 198 TEST_F(BitmapImageTest, jpegHasColorProfile) |
192 { | 199 { |
193 loadImage("/LayoutTests/fast/images/resources/icc-v2-gbr.jpg"); | 200 loadImage("/LayoutTests/fast/images/resources/icc-v2-gbr.jpg"); |
194 EXPECT_EQ(1u, decodedFramesCount()); | 201 EXPECT_EQ(1u, decodedFramesCount()); |
195 EXPECT_EQ(227700u, decodedSize()); | 202 EXPECT_EQ(227700u, decodedSize()); |
196 EXPECT_TRUE(m_image->hasColorProfile()); | 203 EXPECT_TRUE(m_image->hasColorProfile()); |
197 | 204 |
198 resetDecoder(); | |
199 destroyDecodedData(true); | 205 destroyDecodedData(true); |
200 | |
201 loadImage("/LayoutTests/fast/images/resources/green.jpg"); | |
202 EXPECT_EQ(1u, decodedFramesCount()); | |
203 EXPECT_EQ(1024u, decodedSize()); | |
204 EXPECT_FALSE(m_image->hasColorProfile()); | |
205 } | 206 } |
206 | 207 |
207 TEST_F(BitmapImageTest, pngHasColorProfile) | 208 TEST_F(BitmapImageTest, pngHasColorProfile) |
208 { | 209 { |
209 loadImage("/LayoutTests/fast/images/resources/palatted-color-png-gamma-one-c
olor-profile.png"); | 210 loadImage("/LayoutTests/fast/images/resources/palatted-color-png-gamma-one-c
olor-profile.png"); |
210 EXPECT_EQ(1u, decodedFramesCount()); | 211 EXPECT_EQ(1u, decodedFramesCount()); |
211 EXPECT_EQ(65536u, decodedSize()); | 212 EXPECT_EQ(65536u, decodedSize()); |
212 EXPECT_TRUE(m_image->hasColorProfile()); | 213 EXPECT_TRUE(m_image->hasColorProfile()); |
213 | 214 |
214 resetDecoder(); | |
215 destroyDecodedData(true); | 215 destroyDecodedData(true); |
216 | |
217 loadImage("/LayoutTests/fast/images/resources/green.jpg"); | |
218 EXPECT_EQ(1u, decodedFramesCount()); | |
219 EXPECT_EQ(1024u, decodedSize()); | |
220 EXPECT_FALSE(m_image->hasColorProfile()); | |
221 } | 216 } |
222 | 217 |
223 TEST_F(BitmapImageTest, webpHasColorProfile) | 218 TEST_F(BitmapImageTest, webpHasColorProfile) |
224 { | 219 { |
225 loadImage("/LayoutTests/fast/images/resources/webp-color-profile-lossy.webp"
); | 220 loadImage("/LayoutTests/fast/images/resources/webp-color-profile-lossy.webp"
); |
226 EXPECT_EQ(1u, decodedFramesCount()); | 221 EXPECT_EQ(1u, decodedFramesCount()); |
227 EXPECT_EQ(2560000u, decodedSize()); | 222 EXPECT_EQ(2560000u, decodedSize()); |
228 EXPECT_TRUE(m_image->hasColorProfile()); | 223 EXPECT_TRUE(m_image->hasColorProfile()); |
229 | 224 |
230 destroyDecodedData(true); | 225 destroyDecodedData(true); |
231 resetDecoder(); | |
232 | |
233 loadImage("/LayoutTests/fast/images/resources/test.webp"); | |
234 EXPECT_EQ(1u, decodedFramesCount()); | |
235 EXPECT_EQ(65536u, decodedSize()); | |
236 EXPECT_FALSE(m_image->hasColorProfile()); | |
237 } | 226 } |
238 | 227 |
239 TEST_F(BitmapImageTest, icoHasWrongFrameDimensions) | 228 TEST_F(BitmapImageTest, icoHasWrongFrameDimensions) |
240 { | 229 { |
241 loadImage("/LayoutTests/fast/images/resources/wrong-frame-dimensions.ico"); | 230 loadImage("/LayoutTests/fast/images/resources/wrong-frame-dimensions.ico"); |
242 // This call would cause crash without fix for 408026 | 231 // This call would cause crash without fix for 408026 |
243 imageForDefaultFrame(); | 232 imageForDefaultFrame(); |
244 } | 233 } |
245 | 234 |
246 #endif // USE(QCMSLIB) | 235 #endif // USE(QCMSLIB) |
247 | 236 |
248 } // namespace blink | 237 } // namespace blink |
OLD | NEW |