Index: tests/PDFJpegEmbedTest.cpp |
diff --git a/tests/PDFJpegEmbedTest.cpp b/tests/PDFJpegEmbedTest.cpp |
index 133d84a3ff745e9b5177739c59f48c55e43a2975..cfe6776bf5b22f8dedd3cbfd35c66ac7fd79fe56 100644 |
--- a/tests/PDFJpegEmbedTest.cpp |
+++ b/tests/PDFJpegEmbedTest.cpp |
@@ -87,3 +87,41 @@ DEF_TEST(PDFJpegEmbedTest, r) { |
// embedded into the PDF directly. |
REPORTER_ASSERT(r, !is_subset_of(cmykData, pdfData)); |
} |
+ |
+#include "SkJpegInfo.h" |
+ |
+DEF_TEST(JpegIdentification, r) { |
+ static struct { |
+ const char* path; |
+ bool isJfif; |
+ SkJFIFInfo::Type type; |
+ } kTests[] = {{"CMYK.jpg", false, SkJFIFInfo::kGrayscale}, |
+ {"color_wheel.jpg", true, SkJFIFInfo::kYCbCr}, |
+ {"grayscale.jpg", true, SkJFIFInfo::kGrayscale}, |
+ {"mandrill_512_q075.jpg", true, SkJFIFInfo::kYCbCr}, |
+ {"randPixels.jpg", true, SkJFIFInfo::kYCbCr}}; |
+ for (size_t i = 0; i < SK_ARRAY_COUNT(kTests); ++i) { |
+ SkAutoTUnref<SkData> data( |
+ load_resource(r, "JpegIdentification", kTests[i].path)); |
+ if (!data) { |
+ continue; |
+ } |
+ SkJFIFInfo info; |
+ bool isJfif = SkIsJFIF(data, &info); |
+ if (isJfif != kTests[i].isJfif) { |
+ ERRORF(r, "%s failed isJfif test", kTests[i].path); |
+ continue; |
+ } |
+ if (!isJfif) { |
+ continue; // not applicable |
+ } |
+ if (kTests[i].type != info.fType) { |
+ ERRORF(r, "%s failed jfif type test", kTests[i].path); |
+ continue; |
+ } |
+ if (r->verbose()) { |
+ SkDebugf("\nJpegIdentification: %s [%d x %d]\n", kTests[i].path, |
+ info.fWidth, info.fHeight); |
+ } |
+ } |
+} |