Cover FPDF_RemoveFormFieldHighlight() from embedder tests.
Change-Id: Iaa497d9ad65ce3678c9e85b91ec3766669bcdbda
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/64710
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/fpdfsdk/fpdf_formfill_embeddertest.cpp b/fpdfsdk/fpdf_formfill_embeddertest.cpp
index a4436b8..3ae272b 100644
--- a/fpdfsdk/fpdf_formfill_embeddertest.cpp
+++ b/fpdfsdk/fpdf_formfill_embeddertest.cpp
@@ -977,6 +977,42 @@
UnloadPage(page);
}
+#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
+#define MAYBE_RemoveFormFieldHighlight DISABLED_RemoveFormFieldHighlight
+#else
+#define MAYBE_RemoveFormFieldHighlight RemoveFormFieldHighlight
+#endif
+TEST_F(FPDFFormFillEmbedderTest, MAYBE_RemoveFormFieldHighlight) {
+#if defined(OS_MACOSX)
+ const char kMd5Normal[] = "5f11dbe575fe197a37c3fb422559f8ff";
+ const char kMd5NoHighlight[] = "575ec237c790950f40bfcaefb2e3923c";
+#elif defined(OS_WIN)
+ const char kMd5Normal[] = "d3204faa62b607f0bd3893c9c22cabcb";
+ const char kMd5NoHighlight[] = "3ec0938828e0a37ef23f687ee95a80e1";
+#else
+ const char kMd5Normal[] = "b890950d4b9bc163b1a96797f3004b53";
+ const char kMd5NoHighlight[] = "006010c318457810a518aa5e0b33c498";
+#endif
+
+ EXPECT_TRUE(OpenDocument("text_form.pdf"));
+ FPDF_PAGE page = LoadPage(0);
+ ASSERT_TRUE(page);
+ ScopedFPDFBitmap bitmap1 = RenderLoadedPage(page);
+ CompareBitmap(bitmap1.get(), 300, 300, kMd5Normal);
+
+ // Removing the highlight changes the rendering.
+ FPDF_RemoveFormFieldHighlight(form_handle());
+ ScopedFPDFBitmap bitmap2 = RenderLoadedPage(page);
+ CompareBitmap(bitmap2.get(), 300, 300, kMd5NoHighlight);
+
+ // Restoring it gives the original rendering.
+ SetInitialFormFieldHighlight(form_handle());
+ ScopedFPDFBitmap bitmap3 = RenderLoadedPage(page);
+ CompareBitmap(bitmap3.get(), 300, 300, kMd5Normal);
+
+ UnloadPage(page);
+}
+
TEST_F(FPDFFormFillEmbedderTest, HasFormInfoNone) {
EXPECT_TRUE(OpenDocument("hello_world.pdf"));
EXPECT_EQ(FORMTYPE_NONE, FPDF_GetFormType(document_));
diff --git a/testing/embedder_test.cpp b/testing/embedder_test.cpp
index 9482454..9bf4a18 100644
--- a/testing/embedder_test.cpp
+++ b/testing/embedder_test.cpp
@@ -262,9 +262,7 @@
FPDF_FORMHANDLE form_handle =
FPDFDOC_InitFormFillEnvironment(doc, formfillinfo);
- FPDF_SetFormFieldHighlightColor(form_handle, FPDF_FORMFIELD_UNKNOWN,
- 0xFFE4DD);
- FPDF_SetFormFieldHighlightAlpha(form_handle, 100);
+ SetInitialFormFieldHighlight(form_handle);
return form_handle;
}
@@ -337,6 +335,11 @@
page_map_.erase(page_number);
}
+void EmbedderTest::SetInitialFormFieldHighlight(FPDF_FORMHANDLE form) {
+ FPDF_SetFormFieldHighlightColor(form, FPDF_FORMFIELD_UNKNOWN, 0xFFE4DD);
+ FPDF_SetFormFieldHighlightAlpha(form, 100);
+}
+
ScopedFPDFBitmap EmbedderTest::RenderLoadedPage(FPDF_PAGE page) {
return RenderLoadedPageWithFlags(page, 0);
}
diff --git a/testing/embedder_test.h b/testing/embedder_test.h
index 94bc610..662333c 100644
--- a/testing/embedder_test.h
+++ b/testing/embedder_test.h
@@ -137,6 +137,9 @@
// Same as UnloadPage(), but does not fire form events.
void UnloadPageNoEvents(FPDF_PAGE page);
+ // Apply standard highlighting color/alpha to forms.
+ void SetInitialFormFieldHighlight(FPDF_FORMHANDLE form);
+
// RenderLoadedPageWithFlags() with no flags.
ScopedFPDFBitmap RenderLoadedPage(FPDF_PAGE page);