Refactor fpdf_formfill_embeddertest for runtime renderer selection

Update tests to include expectation values for both Skia and AGG
renderers in a build, and choose the appropriate values for comparison
based upon a runtime check of the active renderer being used.

Also cleanup for naming convention to use "checksum" instead of "md5".

Bug: pdfium:1878
Change-Id: Id7222f1252fde6064c12d8eca160641f848c695b
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/96898
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Nigi <nigi@chromium.org>
diff --git a/fpdfsdk/fpdf_formfill_embeddertest.cpp b/fpdfsdk/fpdf_formfill_embeddertest.cpp
index fb9f144..3cb89bd 100644
--- a/fpdfsdk/fpdf_formfill_embeddertest.cpp
+++ b/fpdfsdk/fpdf_formfill_embeddertest.cpp
@@ -9,6 +9,7 @@
 #include "core/fxcrt/fx_coordinates.h"
 #include "core/fxcrt/fx_string.h"
 #include "core/fxcrt/fx_system.h"
+#include "core/fxge/cfx_defaultrenderdevice.h"
 #include "public/cpp/fpdf_scopers.h"
 #include "public/fpdf_formfill.h"
 #include "public/fpdf_fwlevent.h"
@@ -1318,27 +1319,28 @@
 #endif  // PDF_ENABLE_V8
 
 TEST_F(FPDFFormFillEmbedderTest, FormText) {
-#if defined(_SKIA_SUPPORT_)
-  const char kFocusedTextFormWithAbcChecksum[] =
-      "07a179a9dfb8f5462746262984109a99";
-  const char kUnfocusedTextFormWithAbcChecksum[] =
-      "a21b74cc620db8a9891ebd69e1aeda98";
-#elif defined(_SKIA_SUPPORT_PATHS_)
-  const char kFocusedTextFormWithAbcChecksum[] =
-      "2866312fb36e9afdc0a99d547027d484";
-  const char kUnfocusedTextFormWithAbcChecksum[] =
-      "03216cae48813f71f81f53b49e3a8aaa";
-#elif BUILDFLAG(IS_APPLE)
-  const char kFocusedTextFormWithAbcChecksum[] =
-      "9fb14198d75ca0a107060c60ca21b0c7";
-  const char kUnfocusedTextFormWithAbcChecksum[] =
-      "3c3209357e0c057a0620afa7d83eb784";
+  const char* focused_text_form_with_abc_checksum = []() {
+    if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer())
+      return "07a179a9dfb8f5462746262984109a99";
+    if (CFX_DefaultRenderDevice::SkiaPathsIsDefaultRenderer())
+      return "2866312fb36e9afdc0a99d547027d484";
+#if BUILDFLAG(IS_APPLE)
+    return "9fb14198d75ca0a107060c60ca21b0c7";
 #else
-  const char kFocusedTextFormWithAbcChecksum[] =
-      "6e6f790bb14c4fc6107faf8c17d23dbd";
-  const char kUnfocusedTextFormWithAbcChecksum[] =
-      "94b7e10ac8c662b73e33628ca2f5e63b";
+    return "6e6f790bb14c4fc6107faf8c17d23dbd";
 #endif
+  }();
+  const char* unfocused_text_form_with_abc_checksum = []() {
+    if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer())
+      return "a21b74cc620db8a9891ebd69e1aeda98";
+    if (CFX_DefaultRenderDevice::SkiaPathsIsDefaultRenderer())
+      return "03216cae48813f71f81f53b49e3a8aaa";
+#if BUILDFLAG(IS_APPLE)
+    return "3c3209357e0c057a0620afa7d83eb784";
+#else
+    return "94b7e10ac8c662b73e33628ca2f5e63b";
+#endif
+  }();
   {
     ASSERT_TRUE(OpenDocument("text_form.pdf"));
     FPDF_PAGE page = LoadPage(0);
@@ -1360,21 +1362,22 @@
     FORM_OnChar(form_handle(), page, 'B', 0);
     FORM_OnChar(form_handle(), page, 'C', 0);
     ScopedFPDFBitmap bitmap2 = RenderLoadedPage(page);
-    CompareBitmap(bitmap2.get(), 300, 300, kFocusedTextFormWithAbcChecksum);
+    CompareBitmap(bitmap2.get(), 300, 300, focused_text_form_with_abc_checksum);
 
     // Focus remains despite right clicking out of the textfield
     FORM_OnMouseMove(form_handle(), page, 0, 15.0, 15.0);
     FORM_OnRButtonDown(form_handle(), page, 0, 15.0, 15.0);
     FORM_OnRButtonUp(form_handle(), page, 0, 15.0, 15.0);
     ScopedFPDFBitmap bitmap3 = RenderLoadedPage(page);
-    CompareBitmap(bitmap3.get(), 300, 300, kFocusedTextFormWithAbcChecksum);
+    CompareBitmap(bitmap3.get(), 300, 300, focused_text_form_with_abc_checksum);
 
     // Take out focus by clicking out of the textfield
     FORM_OnMouseMove(form_handle(), page, 0, 15.0, 15.0);
     FORM_OnLButtonDown(form_handle(), page, 0, 15.0, 15.0);
     FORM_OnLButtonUp(form_handle(), page, 0, 15.0, 15.0);
     ScopedFPDFBitmap bitmap4 = RenderLoadedPage(page);
-    CompareBitmap(bitmap4.get(), 300, 300, kUnfocusedTextFormWithAbcChecksum);
+    CompareBitmap(bitmap4.get(), 300, 300,
+                  unfocused_text_form_with_abc_checksum);
 
     EXPECT_TRUE(FPDF_SaveAsCopy(document(), this, 0));
 
@@ -1382,17 +1385,19 @@
     UnloadPage(page);
   }
   // Check saved document
-  VerifySavedDocument(300, 300, kUnfocusedTextFormWithAbcChecksum);
+  VerifySavedDocument(300, 300, unfocused_text_form_with_abc_checksum);
 }
 
 // Tests using FPDF_REVERSE_BYTE_ORDER with FPDF_FFLDraw(). The two rendered
 // bitmaps should be different.
 TEST_F(FPDFFormFillEmbedderTest, BUG_1281) {
-#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
-  const char kMd5ReverseByteOrder[] = "8077970bbd10333f18186a9bb459bbe6";
-#else
-  const char kMd5ReverseByteOrder[] = "24fff03d1e663b7ece5f6e69ad837124";
-#endif
+  const char* reverse_byte_order_checksum = []() {
+    if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer() ||
+        CFX_DefaultRenderDevice::SkiaPathsIsDefaultRenderer()) {
+      return "8077970bbd10333f18186a9bb459bbe6";
+    }
+    return "24fff03d1e663b7ece5f6e69ad837124";
+  }();
 
   ASSERT_TRUE(OpenDocument("bug_890322.pdf"));
   FPDF_PAGE page = LoadPage(0);
@@ -1404,40 +1409,46 @@
   ScopedFPDFBitmap bitmap_reverse_byte_order =
       RenderLoadedPageWithFlags(page, FPDF_REVERSE_BYTE_ORDER);
   CompareBitmap(bitmap_reverse_byte_order.get(), 200, 200,
-                kMd5ReverseByteOrder);
+                reverse_byte_order_checksum);
 
   UnloadPage(page);
 }
 
 TEST_F(FPDFFormFillEmbedderTest, Bug1302455RenderOnly) {
-#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
-  const char kChecksum[] = "520c4415c9977f40d6b4af5a0a94d764";
-#else
-  const char kChecksum[] = "bbee92af1daec2340c81f482878744d8";
-#endif
+  const char* checksum = []() {
+    if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer() ||
+        CFX_DefaultRenderDevice::SkiaPathsIsDefaultRenderer()) {
+      return "520c4415c9977f40d6b4af5a0a94d764";
+    }
+    return "bbee92af1daec2340c81f482878744d8";
+  }();
   {
     ASSERT_TRUE(OpenDocument("bug_1302455.pdf"));
     FPDF_PAGE page = LoadPage(0);
     ASSERT_TRUE(page);
 
     ScopedFPDFBitmap bitmap = RenderLoadedPage(page);
-    CompareBitmap(bitmap.get(), 300, 300, kChecksum);
+    CompareBitmap(bitmap.get(), 300, 300, checksum);
 
     EXPECT_TRUE(FPDF_SaveAsCopy(document(), this, 0));
 
     UnloadPage(page);
   }
-  VerifySavedDocument(300, 300, kChecksum);
+  VerifySavedDocument(300, 300, checksum);
 }
 
 TEST_F(FPDFFormFillEmbedderTest, Bug1302455EditFirstForm) {
-#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
-  const char kChecksum[] = "29a06da3e47f67535e266b090a5ac82d";
-#elif BUILDFLAG(IS_APPLE)
-  const char kChecksum[] = "bf5423874f188427d2500a2bc4abebbe";
+  const char* checksum = []() {
+    if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer() ||
+        CFX_DefaultRenderDevice::SkiaPathsIsDefaultRenderer()) {
+      return "29a06da3e47f67535e266b090a5ac82d";
+    }
+#if BUILDFLAG(IS_APPLE)
+    return "bf5423874f188427d2500a2bc4abebbe";
 #else
-  const char kChecksum[] = "6a4ac9a15d2c34589616c8f2b05fbedd";
+    return "6a4ac9a15d2c34589616c8f2b05fbedd";
 #endif
+  }();
   {
     ASSERT_TRUE(OpenDocument("bug_1302455.pdf"));
     FPDF_PAGE page = LoadPage(0);
@@ -1452,23 +1463,27 @@
 
     FORM_ForceToKillFocus(form_handle());
     ScopedFPDFBitmap bitmap = RenderLoadedPage(page);
-    CompareBitmap(bitmap.get(), 300, 300, kChecksum);
+    CompareBitmap(bitmap.get(), 300, 300, checksum);
 
     EXPECT_TRUE(FPDF_SaveAsCopy(document(), this, 0));
 
     UnloadPage(page);
   }
-  VerifySavedDocument(300, 300, kChecksum);
+  VerifySavedDocument(300, 300, checksum);
 }
 
 TEST_F(FPDFFormFillEmbedderTest, Bug1302455EditSecondForm) {
-#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
-  const char kChecksum[] = "19f8574d6378ee36e349376d88b7a2c4";
-#elif BUILDFLAG(IS_APPLE)
-  const char kChecksum[] = "8a0fd8772dba6e1e952e49d159cc64b5";
+  const char* checksum = []() {
+    if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer() ||
+        CFX_DefaultRenderDevice::SkiaPathsIsDefaultRenderer()) {
+      return "19f8574d6378ee36e349376d88b7a2c4";
+    }
+#if BUILDFLAG(IS_APPLE)
+    return "8a0fd8772dba6e1e952e49d159cc64b5";
 #else
-  const char kChecksum[] = "45a7694933c2ba3c5dc8f6cc18b79175";
+    return "45a7694933c2ba3c5dc8f6cc18b79175";
 #endif
+  }();
   {
     ASSERT_TRUE(OpenDocument("bug_1302455.pdf"));
     FPDF_PAGE page = LoadPage(0);
@@ -1483,23 +1498,27 @@
 
     FORM_ForceToKillFocus(form_handle());
     ScopedFPDFBitmap bitmap = RenderLoadedPage(page);
-    CompareBitmap(bitmap.get(), 300, 300, kChecksum);
+    CompareBitmap(bitmap.get(), 300, 300, checksum);
 
     EXPECT_TRUE(FPDF_SaveAsCopy(document(), this, 0));
 
     UnloadPage(page);
   }
-  VerifySavedDocument(300, 300, kChecksum);
+  VerifySavedDocument(300, 300, checksum);
 }
 
 TEST_F(FPDFFormFillEmbedderTest, Bug1302455EditBothForms) {
-#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
-  const char kChecksum[] = "edbc9b0e190118a9039fffc11e494081";
-#elif BUILDFLAG(IS_APPLE)
-  const char kChecksum[] = "1f422ee1c520ad74b1a993b64bd4dc4a";
+  const char* checksum = []() {
+    if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer() ||
+        CFX_DefaultRenderDevice::SkiaPathsIsDefaultRenderer()) {
+      return "edbc9b0e190118a9039fffc11e494081";
+    }
+#if BUILDFLAG(IS_APPLE)
+    return "1f422ee1c520ad74b1a993b64bd4dc4a";
 #else
-  const char kChecksum[] = "13984969b1e141079ab5f4aa80185463";
+    return "13984969b1e141079ab5f4aa80185463";
 #endif
+  }();
   {
     ASSERT_TRUE(OpenDocument("bug_1302455.pdf"));
     FPDF_PAGE page = LoadPage(0);
@@ -1521,22 +1540,25 @@
 
     FORM_ForceToKillFocus(form_handle());
     ScopedFPDFBitmap bitmap = RenderLoadedPage(page);
-    CompareBitmap(bitmap.get(), 300, 300, kChecksum);
+    CompareBitmap(bitmap.get(), 300, 300, checksum);
 
     EXPECT_TRUE(FPDF_SaveAsCopy(document(), this, 0));
 
     UnloadPage(page);
   }
-  VerifySavedDocument(300, 300, kChecksum);
+  VerifySavedDocument(300, 300, checksum);
 }
 
 TEST_F(FPDFFormFillEmbedderTest, RemoveFormFieldHighlight) {
-#if BUILDFLAG(IS_APPLE) && !defined(_SKIA_SUPPORT_) && \
-    !defined(_SKIA_SUPPORT_PATHS_)
-  const char kMd5NoHighlight[] = "5c82aa43e3b478aa1e4c94bb9ef1f11f";
-#else
-  const char kMd5NoHighlight[] = "a6268304f7eedfa9ee98fac3caaf2efb";
+  const char* no_highlight_checksum = []() {
+#if BUILDFLAG(IS_APPLE)
+    if (!CFX_DefaultRenderDevice::SkiaIsDefaultRenderer() &&
+        !CFX_DefaultRenderDevice::SkiaPathsIsDefaultRenderer()) {
+      return "5c82aa43e3b478aa1e4c94bb9ef1f11f";
+    }
 #endif
+    return "a6268304f7eedfa9ee98fac3caaf2efb";
+  }();
 
   ASSERT_TRUE(OpenDocument("text_form.pdf"));
   FPDF_PAGE page = LoadPage(0);
@@ -1547,7 +1569,7 @@
   // Removing the highlight changes the rendering.
   FPDF_RemoveFormFieldHighlight(form_handle());
   ScopedFPDFBitmap bitmap2 = RenderLoadedPage(page);
-  CompareBitmap(bitmap2.get(), 300, 300, kMd5NoHighlight);
+  CompareBitmap(bitmap2.get(), 300, 300, no_highlight_checksum);
 
   // Restoring it gives the original rendering.
   SetInitialFormFieldHighlight(form_handle());