Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(231)

Unified Diff: third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoderTest.cpp

Issue 2386453003: WIP: Implement APNG (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoderTest.cpp
diff --git a/third_party/WebKit/Source/platform/exported/WebData.cpp b/third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoderTest.cpp
similarity index 52%
copy from third_party/WebKit/Source/platform/exported/WebData.cpp
copy to third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoderTest.cpp
index 9fc90b3e34ccfcc42764d1084bae5bffc3d10646..12eb4fe507f9c86fcb02f5d660c02e3a15965b43 100644
--- a/third_party/WebKit/Source/platform/exported/WebData.cpp
+++ b/third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoderTest.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009 Google Inc. All rights reserved.
+ * Copyright (C) 2016 Google Inc. All rights reserved.
scroggo_chromium 2016/10/04 14:50:16 I think you want a simpler copyright header: // C
joostouwerling 2016/10/11 16:31:06 Acknowledged.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -28,55 +28,57 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "public/platform/WebData.h"
+#include "platform/image-decoders/png/PNGImageDecoder.h"
+#include "platform/RuntimeEnabledFeatures.h"
#include "platform/SharedBuffer.h"
+#include "platform/image-decoders/ImageDecoderTestHelpers.h"
+#include "public/platform/WebData.h"
+#include "public/platform/WebSize.h"
scroggo_chromium 2016/10/04 14:50:16 I don't think you need this (or WebData.h). Make s
joostouwerling 2016/10/11 16:31:06 Acknowledged.
+#include "testing/gtest/include/gtest/gtest.h"
+#include "wtf/PtrUtil.h"
+#include "wtf/Vector.h"
+#include "wtf/dtoa/utils.h"
+#include <memory>
namespace blink {
-void WebData::reset()
-{
- m_private.reset();
-}
+namespace {
-void WebData::assign(const WebData& other)
+std::unique_ptr<ImageDecoder> createDecoder(ImageDecoder::AlphaOption alphaOption)
{
- m_private = other.m_private;
+ return wrapUnique(new PNGImageDecoder(alphaOption,
+ ImageDecoder::GammaAndColorProfileApplied,
+ ImageDecoder::noDecodedImageByteLimit));
}
-void WebData::assign(const char* data, size_t size)
+std::unique_ptr<ImageDecoder> createDecoder()
{
- m_private = SharedBuffer::create(data, size);
+ return createDecoder(ImageDecoder::AlphaNotPremultiplied);
}
-size_t WebData::size() const
+void testFrameCount(const char* pngFile, size_t expectedFrameCount)
{
- if (m_private.isNull())
- return 0;
- return m_private->size();
-}
+ auto decoder = createDecoder();
-const char* WebData::data() const
-{
- if (m_private.isNull())
- return 0;
- return m_private->data();
-}
+ auto data = readFile(pngFile);
+ ASSERT_TRUE(data.get());
+ decoder->setData(data.get(), true);
-WebData::WebData(PassRefPtr<SharedBuffer> buffer)
- : m_private(buffer)
-{
+ EXPECT_EQ(expectedFrameCount, decoder->frameCount());
}
-WebData& WebData::operator=(PassRefPtr<SharedBuffer> buffer)
+} // Anonymous namespace
+
+TEST(AnimatedPNGTests, FrameCountTest)
{
- m_private = buffer;
- return *this;
+ testFrameCount("/LayoutTests/fast/images/resources/png-animated-idat-part-of-animation.png", 20);
+ testFrameCount("/LayoutTests/fast/images/resources/png-animated-idat-not-part-of-animation.png", 1);
}
-WebData::operator PassRefPtr<SharedBuffer>() const
+TEST(StaticPNGTests, FrameCountTest)
{
- return PassRefPtr<SharedBuffer>(m_private.get());
+ testFrameCount("/LayoutTests/fast/images/resources/png-simple.png", 1);
}
-} // namespace blink
+}; // namespace blink

Powered by Google App Engine
This is Rietveld 408576698