| Index: tests/ImageTest.cpp
|
| diff --git a/tests/ImageTest.cpp b/tests/ImageTest.cpp
|
| index bbf6682084b4e6c4cf6f2c6d123e9790d60db6f0..d271966979a036325841658011bf5ca18e706edc 100644
|
| --- a/tests/ImageTest.cpp
|
| +++ b/tests/ImageTest.cpp
|
| @@ -10,6 +10,7 @@
|
| #include "SkDevice.h"
|
| #include "SkImageEncoder.h"
|
| #include "SkImage_Base.h"
|
| +#include "SkPixelSerializer.h"
|
| #include "SkRRect.h"
|
| #include "SkSurface.h"
|
| #include "SkUtils.h"
|
| @@ -104,6 +105,36 @@ DEF_GPUTEST(Image_Encode_Gpu, reporter, factory) {
|
| }
|
| #endif
|
|
|
| +namespace {
|
| +
|
| +const char* kSerializedData = "serialized";
|
| +
|
| +class MockSerializer : public SkPixelSerializer {
|
| +protected:
|
| + bool onUseEncodedData(const void*, size_t) override {
|
| + return false;
|
| + }
|
| +
|
| + SkData* onEncodePixels(const SkImageInfo&, const void*, size_t) override {
|
| + return SkData::NewWithCString(kSerializedData);
|
| + }
|
| +};
|
| +
|
| +} // anonymous namespace
|
| +
|
| +// Test that SkImage encoding observes custom pixel serializers.
|
| +DEF_TEST(Image_Encode_Serializer, reporter) {
|
| + MockSerializer serializer;
|
| + const SkIRect ir = SkIRect::MakeXYWH(5, 5, 10, 10);
|
| + SkAutoTUnref<SkImage> image(make_image(nullptr, 20, 20, ir));
|
| + SkAutoTUnref<SkData> encoded(image->encode(&serializer));
|
| + SkAutoTUnref<SkData> reference(SkData::NewWithCString(kSerializedData));
|
| +
|
| + REPORTER_ASSERT(reporter, encoded);
|
| + REPORTER_ASSERT(reporter, encoded->size() > 0);
|
| + REPORTER_ASSERT(reporter, encoded->equals(reference));
|
| +}
|
| +
|
| DEF_TEST(Image_NewRasterCopy, reporter) {
|
| const SkPMColor red = SkPackARGB32(0xFF, 0xFF, 0, 0);
|
| const SkPMColor green = SkPackARGB32(0xFF, 0, 0xFF, 0);
|
|
|