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 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
290 ImageFrame::DisposalMethod disposalMethod; | 290 ImageFrame::DisposalMethod disposalMethod; |
291 ImageFrame::AlphaBlendSource alphaBlendSource; | 291 ImageFrame::AlphaBlendSource alphaBlendSource; |
292 unsigned duration; | 292 unsigned duration; |
293 bool hasAlpha; | 293 bool hasAlpha; |
294 } frameParameters[] = { | 294 } frameParameters[] = { |
295 { 0, 0, 11, 29, ImageFrame::DisposeKeep, ImageFrame::BlendAtopPreviousFr
ame, 1000u, true }, | 295 { 0, 0, 11, 29, ImageFrame::DisposeKeep, ImageFrame::BlendAtopPreviousFr
ame, 1000u, true }, |
296 { 2, 10, 7, 17, ImageFrame::DisposeKeep, ImageFrame::BlendAtopPreviousFr
ame, 500u, true }, | 296 { 2, 10, 7, 17, ImageFrame::DisposeKeep, ImageFrame::BlendAtopPreviousFr
ame, 500u, true }, |
297 { 2, 2, 7, 16, ImageFrame::DisposeKeep, ImageFrame::BlendAtopPreviousFra
me, 1000u, true }, | 297 { 2, 2, 7, 16, ImageFrame::DisposeKeep, ImageFrame::BlendAtopPreviousFra
me, 1000u, true }, |
298 }; | 298 }; |
299 | 299 |
300 for (size_t i = 0; i < ARRAY_SIZE(frameParameters); ++i) { | 300 for (size_t i = 0; i < WTF_ARRAY_LENGTH(frameParameters); ++i) { |
301 const ImageFrame* const frame = decoder->frameBufferAtIndex(i); | 301 const ImageFrame* const frame = decoder->frameBufferAtIndex(i); |
302 EXPECT_EQ(ImageFrame::FrameComplete, frame->status()); | 302 EXPECT_EQ(ImageFrame::FrameComplete, frame->status()); |
303 EXPECT_EQ(canvasWidth, frame->getSkBitmap().width()); | 303 EXPECT_EQ(canvasWidth, frame->getSkBitmap().width()); |
304 EXPECT_EQ(canvasHeight, frame->getSkBitmap().height()); | 304 EXPECT_EQ(canvasHeight, frame->getSkBitmap().height()); |
305 EXPECT_EQ(frameParameters[i].xOffset, frame->originalFrameRect().x()); | 305 EXPECT_EQ(frameParameters[i].xOffset, frame->originalFrameRect().x()); |
306 EXPECT_EQ(frameParameters[i].yOffset, frame->originalFrameRect().y()); | 306 EXPECT_EQ(frameParameters[i].yOffset, frame->originalFrameRect().y()); |
307 EXPECT_EQ(frameParameters[i].width, frame->originalFrameRect().width()); | 307 EXPECT_EQ(frameParameters[i].width, frame->originalFrameRect().width()); |
308 EXPECT_EQ(frameParameters[i].height, frame->originalFrameRect().height()
); | 308 EXPECT_EQ(frameParameters[i].height, frame->originalFrameRect().height()
); |
309 EXPECT_EQ(frameParameters[i].disposalMethod, frame->disposalMethod()); | 309 EXPECT_EQ(frameParameters[i].disposalMethod, frame->disposalMethod()); |
310 EXPECT_EQ(frameParameters[i].alphaBlendSource, frame->alphaBlendSource()
); | 310 EXPECT_EQ(frameParameters[i].alphaBlendSource, frame->alphaBlendSource()
); |
311 EXPECT_EQ(frameParameters[i].duration, frame->duration()); | 311 EXPECT_EQ(frameParameters[i].duration, frame->duration()); |
312 EXPECT_EQ(frameParameters[i].hasAlpha, frame->hasAlpha()); | 312 EXPECT_EQ(frameParameters[i].hasAlpha, frame->hasAlpha()); |
313 } | 313 } |
314 | 314 |
315 EXPECT_EQ(ARRAY_SIZE(frameParameters), decoder->frameCount()); | 315 EXPECT_EQ(WTF_ARRAY_LENGTH(frameParameters), decoder->frameCount()); |
316 EXPECT_EQ(cAnimationLoopInfinite, decoder->repetitionCount()); | 316 EXPECT_EQ(cAnimationLoopInfinite, decoder->repetitionCount()); |
317 } | 317 } |
318 | 318 |
319 TEST(AnimatedWebPTests, verifyAnimationParametersOpaqueFramesTransparentBackgrou
nd) | 319 TEST(AnimatedWebPTests, verifyAnimationParametersOpaqueFramesTransparentBackgrou
nd) |
320 { | 320 { |
321 OwnPtr<ImageDecoder> decoder = createDecoder(); | 321 OwnPtr<ImageDecoder> decoder = createDecoder(); |
322 EXPECT_EQ(cAnimationLoopOnce, decoder->repetitionCount()); | 322 EXPECT_EQ(cAnimationLoopOnce, decoder->repetitionCount()); |
323 | 323 |
324 RefPtr<SharedBuffer> data = readFile("/LayoutTests/fast/images/resources/web
p-animated-opaque.webp"); | 324 RefPtr<SharedBuffer> data = readFile("/LayoutTests/fast/images/resources/web
p-animated-opaque.webp"); |
325 ASSERT_TRUE(data.get()); | 325 ASSERT_TRUE(data.get()); |
326 decoder->setData(data.get(), true); | 326 decoder->setData(data.get(), true); |
327 | 327 |
328 const int canvasWidth = 94; | 328 const int canvasWidth = 94; |
329 const int canvasHeight = 87; | 329 const int canvasHeight = 87; |
330 const struct AnimParam { | 330 const struct AnimParam { |
331 int xOffset, yOffset, width, height; | 331 int xOffset, yOffset, width, height; |
332 ImageFrame::DisposalMethod disposalMethod; | 332 ImageFrame::DisposalMethod disposalMethod; |
333 ImageFrame::AlphaBlendSource alphaBlendSource; | 333 ImageFrame::AlphaBlendSource alphaBlendSource; |
334 unsigned duration; | 334 unsigned duration; |
335 bool hasAlpha; | 335 bool hasAlpha; |
336 } frameParameters[] = { | 336 } frameParameters[] = { |
337 { 4, 10, 33, 32, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::BlendA
topPreviousFrame, 1000u, true }, | 337 { 4, 10, 33, 32, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::BlendA
topPreviousFrame, 1000u, true }, |
338 { 34, 30, 33, 32, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::Blend
AtopPreviousFrame, 1000u, true }, | 338 { 34, 30, 33, 32, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::Blend
AtopPreviousFrame, 1000u, true }, |
339 { 62, 50, 32, 32, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::Blend
AtopPreviousFrame, 1000u, true }, | 339 { 62, 50, 32, 32, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::Blend
AtopPreviousFrame, 1000u, true }, |
340 { 10, 54, 32, 33, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::Blend
AtopPreviousFrame, 1000u, true }, | 340 { 10, 54, 32, 33, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::Blend
AtopPreviousFrame, 1000u, true }, |
341 }; | 341 }; |
342 | 342 |
343 for (size_t i = 0; i < ARRAY_SIZE(frameParameters); ++i) { | 343 for (size_t i = 0; i < WTF_ARRAY_LENGTH(frameParameters); ++i) { |
344 const ImageFrame* const frame = decoder->frameBufferAtIndex(i); | 344 const ImageFrame* const frame = decoder->frameBufferAtIndex(i); |
345 EXPECT_EQ(ImageFrame::FrameComplete, frame->status()); | 345 EXPECT_EQ(ImageFrame::FrameComplete, frame->status()); |
346 EXPECT_EQ(canvasWidth, frame->getSkBitmap().width()); | 346 EXPECT_EQ(canvasWidth, frame->getSkBitmap().width()); |
347 EXPECT_EQ(canvasHeight, frame->getSkBitmap().height()); | 347 EXPECT_EQ(canvasHeight, frame->getSkBitmap().height()); |
348 EXPECT_EQ(frameParameters[i].xOffset, frame->originalFrameRect().x()); | 348 EXPECT_EQ(frameParameters[i].xOffset, frame->originalFrameRect().x()); |
349 EXPECT_EQ(frameParameters[i].yOffset, frame->originalFrameRect().y()); | 349 EXPECT_EQ(frameParameters[i].yOffset, frame->originalFrameRect().y()); |
350 EXPECT_EQ(frameParameters[i].width, frame->originalFrameRect().width()); | 350 EXPECT_EQ(frameParameters[i].width, frame->originalFrameRect().width()); |
351 EXPECT_EQ(frameParameters[i].height, frame->originalFrameRect().height()
); | 351 EXPECT_EQ(frameParameters[i].height, frame->originalFrameRect().height()
); |
352 EXPECT_EQ(frameParameters[i].disposalMethod, frame->disposalMethod()); | 352 EXPECT_EQ(frameParameters[i].disposalMethod, frame->disposalMethod()); |
353 EXPECT_EQ(frameParameters[i].alphaBlendSource, frame->alphaBlendSource()
); | 353 EXPECT_EQ(frameParameters[i].alphaBlendSource, frame->alphaBlendSource()
); |
354 EXPECT_EQ(frameParameters[i].duration, frame->duration()); | 354 EXPECT_EQ(frameParameters[i].duration, frame->duration()); |
355 EXPECT_EQ(frameParameters[i].hasAlpha, frame->hasAlpha()); | 355 EXPECT_EQ(frameParameters[i].hasAlpha, frame->hasAlpha()); |
356 } | 356 } |
357 | 357 |
358 EXPECT_EQ(ARRAY_SIZE(frameParameters), decoder->frameCount()); | 358 EXPECT_EQ(WTF_ARRAY_LENGTH(frameParameters), decoder->frameCount()); |
359 EXPECT_EQ(cAnimationLoopInfinite, decoder->repetitionCount()); | 359 EXPECT_EQ(cAnimationLoopInfinite, decoder->repetitionCount()); |
360 } | 360 } |
361 | 361 |
362 TEST(AnimatedWebPTests, verifyAnimationParametersBlendOverwrite) | 362 TEST(AnimatedWebPTests, verifyAnimationParametersBlendOverwrite) |
363 { | 363 { |
364 OwnPtr<ImageDecoder> decoder = createDecoder(); | 364 OwnPtr<ImageDecoder> decoder = createDecoder(); |
365 EXPECT_EQ(cAnimationLoopOnce, decoder->repetitionCount()); | 365 EXPECT_EQ(cAnimationLoopOnce, decoder->repetitionCount()); |
366 | 366 |
367 RefPtr<SharedBuffer> data = readFile("/LayoutTests/fast/images/resources/web
p-animated-no-blend.webp"); | 367 RefPtr<SharedBuffer> data = readFile("/LayoutTests/fast/images/resources/web
p-animated-no-blend.webp"); |
368 ASSERT_TRUE(data.get()); | 368 ASSERT_TRUE(data.get()); |
369 decoder->setData(data.get(), true); | 369 decoder->setData(data.get(), true); |
370 | 370 |
371 const int canvasWidth = 94; | 371 const int canvasWidth = 94; |
372 const int canvasHeight = 87; | 372 const int canvasHeight = 87; |
373 const struct AnimParam { | 373 const struct AnimParam { |
374 int xOffset, yOffset, width, height; | 374 int xOffset, yOffset, width, height; |
375 ImageFrame::DisposalMethod disposalMethod; | 375 ImageFrame::DisposalMethod disposalMethod; |
376 ImageFrame::AlphaBlendSource alphaBlendSource; | 376 ImageFrame::AlphaBlendSource alphaBlendSource; |
377 unsigned duration; | 377 unsigned duration; |
378 bool hasAlpha; | 378 bool hasAlpha; |
379 } frameParameters[] = { | 379 } frameParameters[] = { |
380 { 4, 10, 33, 32, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::BlendA
topBgcolor, 1000u, true }, | 380 { 4, 10, 33, 32, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::BlendA
topBgcolor, 1000u, true }, |
381 { 34, 30, 33, 32, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::Blend
AtopBgcolor, 1000u, true }, | 381 { 34, 30, 33, 32, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::Blend
AtopBgcolor, 1000u, true }, |
382 { 62, 50, 32, 32, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::Blend
AtopBgcolor, 1000u, true }, | 382 { 62, 50, 32, 32, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::Blend
AtopBgcolor, 1000u, true }, |
383 { 10, 54, 32, 33, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::Blend
AtopBgcolor, 1000u, true }, | 383 { 10, 54, 32, 33, ImageFrame::DisposeOverwriteBgcolor, ImageFrame::Blend
AtopBgcolor, 1000u, true }, |
384 }; | 384 }; |
385 | 385 |
386 for (size_t i = 0; i < ARRAY_SIZE(frameParameters); ++i) { | 386 for (size_t i = 0; i < WTF_ARRAY_LENGTH(frameParameters); ++i) { |
387 const ImageFrame* const frame = decoder->frameBufferAtIndex(i); | 387 const ImageFrame* const frame = decoder->frameBufferAtIndex(i); |
388 EXPECT_EQ(ImageFrame::FrameComplete, frame->status()); | 388 EXPECT_EQ(ImageFrame::FrameComplete, frame->status()); |
389 EXPECT_EQ(canvasWidth, frame->getSkBitmap().width()); | 389 EXPECT_EQ(canvasWidth, frame->getSkBitmap().width()); |
390 EXPECT_EQ(canvasHeight, frame->getSkBitmap().height()); | 390 EXPECT_EQ(canvasHeight, frame->getSkBitmap().height()); |
391 EXPECT_EQ(frameParameters[i].xOffset, frame->originalFrameRect().x()); | 391 EXPECT_EQ(frameParameters[i].xOffset, frame->originalFrameRect().x()); |
392 EXPECT_EQ(frameParameters[i].yOffset, frame->originalFrameRect().y()); | 392 EXPECT_EQ(frameParameters[i].yOffset, frame->originalFrameRect().y()); |
393 EXPECT_EQ(frameParameters[i].width, frame->originalFrameRect().width()); | 393 EXPECT_EQ(frameParameters[i].width, frame->originalFrameRect().width()); |
394 EXPECT_EQ(frameParameters[i].height, frame->originalFrameRect().height()
); | 394 EXPECT_EQ(frameParameters[i].height, frame->originalFrameRect().height()
); |
395 EXPECT_EQ(frameParameters[i].disposalMethod, frame->disposalMethod()); | 395 EXPECT_EQ(frameParameters[i].disposalMethod, frame->disposalMethod()); |
396 EXPECT_EQ(frameParameters[i].alphaBlendSource, frame->alphaBlendSource()
); | 396 EXPECT_EQ(frameParameters[i].alphaBlendSource, frame->alphaBlendSource()
); |
397 EXPECT_EQ(frameParameters[i].duration, frame->duration()); | 397 EXPECT_EQ(frameParameters[i].duration, frame->duration()); |
398 EXPECT_EQ(frameParameters[i].hasAlpha, frame->hasAlpha()); | 398 EXPECT_EQ(frameParameters[i].hasAlpha, frame->hasAlpha()); |
399 } | 399 } |
400 | 400 |
401 EXPECT_EQ(ARRAY_SIZE(frameParameters), decoder->frameCount()); | 401 EXPECT_EQ(WTF_ARRAY_LENGTH(frameParameters), decoder->frameCount()); |
402 EXPECT_EQ(cAnimationLoopInfinite, decoder->repetitionCount()); | 402 EXPECT_EQ(cAnimationLoopInfinite, decoder->repetitionCount()); |
403 } | 403 } |
404 | 404 |
405 TEST(AnimatedWebPTests, parseAndDecodeByteByByte) | 405 TEST(AnimatedWebPTests, parseAndDecodeByteByByte) |
406 { | 406 { |
407 testByteByByteDecode(&createDecoder, "/LayoutTests/fast/images/resources/web
p-animated.webp", 3u, cAnimationLoopInfinite); | 407 testByteByByteDecode(&createDecoder, "/LayoutTests/fast/images/resources/web
p-animated.webp", 3u, cAnimationLoopInfinite); |
408 testByteByByteDecode(&createDecoder, "/LayoutTests/fast/images/resources/web
p-animated-icc-xmp.webp", 13u, 31999); | 408 testByteByByteDecode(&createDecoder, "/LayoutTests/fast/images/resources/web
p-animated-icc-xmp.webp", 13u, 31999); |
409 } | 409 } |
410 | 410 |
411 TEST(AnimatedWebPTests, invalidImages) | 411 TEST(AnimatedWebPTests, invalidImages) |
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
682 { | 682 { |
683 OwnPtr<ImageDecoder> decoder = createDecoder(); | 683 OwnPtr<ImageDecoder> decoder = createDecoder(); |
684 RefPtr<SharedBuffer> data = readFile("/LayoutTests/fast/images/resources/web
p-color-profile-lossy.webp"); | 684 RefPtr<SharedBuffer> data = readFile("/LayoutTests/fast/images/resources/web
p-color-profile-lossy.webp"); |
685 ASSERT_TRUE(data.get()); | 685 ASSERT_TRUE(data.get()); |
686 decoder->setData(data.get(), true); | 686 decoder->setData(data.get(), true); |
687 EXPECT_EQ(1u, decoder->frameCount()); | 687 EXPECT_EQ(1u, decoder->frameCount()); |
688 EXPECT_EQ(cAnimationNone, decoder->repetitionCount()); | 688 EXPECT_EQ(cAnimationNone, decoder->repetitionCount()); |
689 } | 689 } |
690 | 690 |
691 } // namespace blink | 691 } // namespace blink |
OLD | NEW |