Use display list comparisons in form fill embedder tests

Replace bitmap comparisons in FPDFFormFillEmbedderTest with
DisplayListRenderer assertions. This verifies rendered form text
and rectangle highlights directly against display list output instead of
platform-specific rasterized bitmaps, eliminating 42 obsolete golden
PNG files.

Change-Id: I47a8f536bf267559b3a4f4cf5506bb90fc2b1b07
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/160351
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/fpdfsdk/fpdf_formfill_embeddertest.cpp b/fpdfsdk/fpdf_formfill_embeddertest.cpp
index 284d00b..a130f75 100644
--- a/fpdfsdk/fpdf_formfill_embeddertest.cpp
+++ b/fpdfsdk/fpdf_formfill_embeddertest.cpp
@@ -1371,16 +1371,11 @@
 #endif  // PDF_ENABLE_V8
 
 TEST_F(FPDFFormFillEmbedderTest, FormText) {
-  static constexpr char kFocusedTextFormWithAbcPng[] =
-      "focused_text_form_with_abc";
-  static constexpr char kUnfocusedTextFormWithAbcPng[] =
-      "unfocused_text_form_with_abc";
   {
     ASSERT_TRUE(OpenDocument("text_form.pdf"));
     ScopedPage page = LoadScopedPage(0);
     ASSERT_TRUE(page);
-    ScopedFPDFBitmap bitmap1 = RenderLoadedPage(page.get());
-    CompareBitmapWithExpectationSuffix(bitmap1.get(), kTextFormPng);
+    CompareDisplayList(RenderLoadedPageToDisplayList(page.get()), "text_form");
 
     // Click on the textfield
     EXPECT_EQ(
@@ -1396,30 +1391,27 @@
     FORM_OnChar(form_handle(), page.get(), 'A', 0);
     FORM_OnChar(form_handle(), page.get(), 'B', 0);
     FORM_OnChar(form_handle(), page.get(), 'C', 0);
-    ScopedFPDFBitmap bitmap2 = RenderLoadedPage(page.get());
-    CompareBitmapWithExpectationSuffix(bitmap2.get(),
-                                       kFocusedTextFormWithAbcPng);
+    CompareDisplayList(RenderLoadedPageToDisplayList(page.get()),
+                       "focused_text_form_with_abc");
 
     // Focus remains despite right clicking out of the textfield
     FORM_OnMouseMove(form_handle(), page.get(), 0, 15.0, 15.0);
     FORM_OnRButtonDown(form_handle(), page.get(), 0, 15.0, 15.0);
     FORM_OnRButtonUp(form_handle(), page.get(), 0, 15.0, 15.0);
-    ScopedFPDFBitmap bitmap3 = RenderLoadedPage(page.get());
-    CompareBitmapWithExpectationSuffix(bitmap3.get(),
-                                       kFocusedTextFormWithAbcPng);
+    CompareDisplayList(RenderLoadedPageToDisplayList(page.get()),
+                       "focused_text_form_with_abc");
 
     // Take out focus by clicking out of the textfield
     FORM_OnMouseMove(form_handle(), page.get(), 0, 15.0, 15.0);
     FORM_OnLButtonDown(form_handle(), page.get(), 0, 15.0, 15.0);
     FORM_OnLButtonUp(form_handle(), page.get(), 0, 15.0, 15.0);
-    ScopedFPDFBitmap bitmap4 = RenderLoadedPage(page.get());
-    CompareBitmapWithExpectationSuffix(bitmap4.get(),
-                                       kUnfocusedTextFormWithAbcPng);
+    CompareDisplayList(RenderLoadedPageToDisplayList(page.get()),
+                       "unfocused_text_form_with_abc");
 
     EXPECT_TRUE(FPDF_SaveAsCopy(document(), this, 0));
   }
   // Check saved document
-  VerifySavedDocumentWithExpectationSuffix(kUnfocusedTextFormWithAbcPng);
+  VerifySavedDocumentWithDisplayList("unfocused_text_form_with_abc");
 }
 
 // Tests using FPDF_REVERSE_BYTE_ORDER with FPDF_FFLDraw(). The two rendered
@@ -1440,23 +1432,19 @@
 }
 
 TEST_F(FPDFFormFillEmbedderTest, Bug1302455RenderOnly) {
-  static constexpr char kBug1302455ReadOnlyPng[] = "bug_1302455_read_only";
   {
     ASSERT_TRUE(OpenDocument("bug_1302455.pdf"));
     ScopedPage page = LoadScopedPage(0);
     ASSERT_TRUE(page);
-
-    ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get());
-    CompareBitmapWithExpectationSuffix(bitmap.get(), kBug1302455ReadOnlyPng);
+    CompareDisplayList(RenderLoadedPageToDisplayList(page.get()),
+                       "bug_1302455_read_only");
 
     EXPECT_TRUE(FPDF_SaveAsCopy(document(), this, 0));
   }
-  VerifySavedDocumentWithExpectationSuffix(kBug1302455ReadOnlyPng);
+  VerifySavedDocumentWithDisplayList("bug_1302455_read_only");
 }
 
 TEST_F(FPDFFormFillEmbedderTest, Bug1302455EditFirstForm) {
-  static constexpr char kBug1302455EditFirstFormPng[] =
-      "bug_1302455_edit_first_form";
   {
     ASSERT_TRUE(OpenDocument("bug_1302455.pdf"));
     ScopedPage page = LoadScopedPage(0);
@@ -1471,18 +1459,15 @@
     FORM_OnChar(form_handle(), page.get(), 'A', 0);
 
     FORM_ForceToKillFocus(form_handle());
-    ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get());
-    CompareBitmapWithExpectationSuffix(bitmap.get(),
-                                       kBug1302455EditFirstFormPng);
+    CompareDisplayList(RenderLoadedPageToDisplayList(page.get()),
+                       "bug_1302455_edit_first_form");
 
     EXPECT_TRUE(FPDF_SaveAsCopy(document(), this, 0));
   }
-  VerifySavedDocumentWithExpectationSuffix(kBug1302455EditFirstFormPng);
+  VerifySavedDocumentWithDisplayList("bug_1302455_edit_first_form");
 }
 
 TEST_F(FPDFFormFillEmbedderTest, Bug1302455EditSecondForm) {
-  static constexpr char kBug1302455EditSecondFormPng[] =
-      "bug_1302455_edit_second_form";
   {
     ASSERT_TRUE(OpenDocument("bug_1302455.pdf"));
     ScopedPage page = LoadScopedPage(0);
@@ -1497,18 +1482,15 @@
     FORM_OnChar(form_handle(), page.get(), 'B', 0);
 
     FORM_ForceToKillFocus(form_handle());
-    ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get());
-    CompareBitmapWithExpectationSuffix(bitmap.get(),
-                                       kBug1302455EditSecondFormPng);
+    CompareDisplayList(RenderLoadedPageToDisplayList(page.get()),
+                       "bug_1302455_edit_second_form");
 
     EXPECT_TRUE(FPDF_SaveAsCopy(document(), this, 0));
   }
-  VerifySavedDocumentWithExpectationSuffix(kBug1302455EditSecondFormPng);
+  VerifySavedDocumentWithDisplayList("bug_1302455_edit_second_form");
 }
 
 TEST_F(FPDFFormFillEmbedderTest, Bug1302455EditBothForms) {
-  static constexpr char kBug1302455EditBothFormsPng[] =
-      "bug_1302455_edit_both_forms";
   {
     ASSERT_TRUE(OpenDocument("bug_1302455.pdf"));
     ScopedPage page = LoadScopedPage(0);
@@ -1531,31 +1513,28 @@
     FORM_OnChar(form_handle(), page.get(), 'B', 0);
 
     FORM_ForceToKillFocus(form_handle());
-    ScopedFPDFBitmap bitmap = RenderLoadedPage(page.get());
-    CompareBitmapWithExpectationSuffix(bitmap.get(),
-                                       kBug1302455EditBothFormsPng);
+    CompareDisplayList(RenderLoadedPageToDisplayList(page.get()),
+                       "bug_1302455_edit_both_forms");
 
     EXPECT_TRUE(FPDF_SaveAsCopy(document(), this, 0));
   }
-  VerifySavedDocumentWithExpectationSuffix(kBug1302455EditBothFormsPng);
+  VerifySavedDocumentWithDisplayList("bug_1302455_edit_both_forms");
 }
 
 TEST_F(FPDFFormFillEmbedderTest, RemoveFormFieldHighlight) {
   ASSERT_TRUE(OpenDocument("text_form.pdf"));
   ScopedPage page = LoadScopedPage(0);
   ASSERT_TRUE(page);
-  ScopedFPDFBitmap bitmap1 = RenderLoadedPage(page.get());
-  CompareBitmapWithExpectationSuffix(bitmap1.get(), kTextFormPng);
+  CompareDisplayList(RenderLoadedPageToDisplayList(page.get()), "text_form");
 
   // Removing the highlight changes the rendering.
   FPDF_RemoveFormFieldHighlight(form_handle());
-  ScopedFPDFBitmap bitmap2 = RenderLoadedPage(page.get());
-  CompareBitmapWithExpectationSuffix(bitmap2.get(), "text_form_no_highlight");
+  CompareDisplayList(RenderLoadedPageToDisplayList(page.get()),
+                     "text_form_no_highlight");
 
   // Restoring it gives the original rendering.
   SetInitialFormFieldHighlight(form_handle());
-  ScopedFPDFBitmap bitmap3 = RenderLoadedPage(page.get());
-  CompareBitmapWithExpectationSuffix(bitmap3.get(), kTextFormPng);
+  CompareDisplayList(RenderLoadedPageToDisplayList(page.get()), "text_form");
 }
 
 TEST_F(FPDFFormFillEmbedderTest, HasFormInfoNone) {
@@ -1719,9 +1698,7 @@
   constexpr auto kInput =
       std::to_array<uint32_t>({'A', ' ', 0x05E9, ' ', 0x05DE, ' ', 'B'});
   TypeCharactersIntoTextField(kInput, RegularFormBegin());
-
-  ScopedFPDFBitmap bitmap = RenderLoadedPage(page());
-  CompareBitmapWithExpectationSuffix(bitmap.get(), "bug_535730401");
+  CompareDisplayList(RenderLoadedPageToDisplayList(page()), "bug_535730401");
 }
 
 TEST_F(FPDFFormFillTextFormEmbedderTest, GetSelectedTextEmptyAndBasicKeyboard) {
@@ -1802,9 +1779,8 @@
   constexpr auto kInput =
       std::to_array<uint32_t>({'A', ' ', 0x05E9, ' ', 0x05DE, ' ', 'B'});
   TypeCharactersIntoTextField(kInput, EditableFormBegin());
-
-  ScopedFPDFBitmap bitmap = RenderLoadedPage(page());
-  CompareBitmapWithExpectationSuffix(bitmap.get(), "bug_535730401_combobox");
+  CompareDisplayList(RenderLoadedPageToDisplayList(page()),
+                     "bug_535730401_combobox");
 }
 
 TEST_F(FPDFFormFillComboBoxFormEmbedderTest,
diff --git a/testing/resources/embedder_tests/bug_1302455_edit_both_forms.dump.txt b/testing/resources/embedder_tests/bug_1302455_edit_both_forms.dump.txt
new file mode 100644
index 0000000..a69fa49
--- /dev/null
+++ b/testing/resources/embedder_tests/bug_1302455_edit_both_forms.dump.txt
@@ -0,0 +1,14 @@
+SaveState
+SetBaseClip [0,0,300,300]
+SetClip_PathFill rule=winding matrix=none points=[move(0.0000,300.0000) line(0.0000,0.0000) line(300.0000,0.0000) line(300.0000,300.0000) line(0.0000,300.0000,close)]
+SaveState
+RestoreState
+RestoreState
+SaveState
+DrawDeviceText font="Arimo" size=25.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,101.0000,193.6750] glyphs=[(idx=36,u=U+0041,origin=(0.0000,0.0000))]
+RestoreState
+FillRect [100,200,200,170] color=0x64dde4ff
+SaveState
+DrawDeviceText font="Arimo" size=25.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,101.0000,133.6750] glyphs=[(idx=37,u=U+0042,origin=(0.0000,0.0000))]
+RestoreState
+FillRect [100,140,200,110] color=0x64dde4ff
diff --git a/testing/resources/embedder_tests/bug_1302455_edit_both_forms_agg.png b/testing/resources/embedder_tests/bug_1302455_edit_both_forms_agg.png
deleted file mode 100644
index 98a8286..0000000
--- a/testing/resources/embedder_tests/bug_1302455_edit_both_forms_agg.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/bug_1302455_edit_both_forms_agg_mac.png b/testing/resources/embedder_tests/bug_1302455_edit_both_forms_agg_mac.png
deleted file mode 100644
index c30cfbb..0000000
--- a/testing/resources/embedder_tests/bug_1302455_edit_both_forms_agg_mac.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/bug_1302455_edit_both_forms_skia_linux.png b/testing/resources/embedder_tests/bug_1302455_edit_both_forms_skia_linux.png
deleted file mode 100644
index 48ee4e3..0000000
--- a/testing/resources/embedder_tests/bug_1302455_edit_both_forms_skia_linux.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/bug_1302455_edit_both_forms_skia_mac.png b/testing/resources/embedder_tests/bug_1302455_edit_both_forms_skia_mac.png
deleted file mode 100644
index 6e3d11c..0000000
--- a/testing/resources/embedder_tests/bug_1302455_edit_both_forms_skia_mac.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/bug_1302455_edit_both_forms_skia_win.png b/testing/resources/embedder_tests/bug_1302455_edit_both_forms_skia_win.png
deleted file mode 100644
index 40e663d..0000000
--- a/testing/resources/embedder_tests/bug_1302455_edit_both_forms_skia_win.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/bug_1302455_edit_first_form.dump.txt b/testing/resources/embedder_tests/bug_1302455_edit_first_form.dump.txt
new file mode 100644
index 0000000..f806783
--- /dev/null
+++ b/testing/resources/embedder_tests/bug_1302455_edit_first_form.dump.txt
@@ -0,0 +1,14 @@
+SaveState
+SetBaseClip [0,0,300,300]
+SetClip_PathFill rule=winding matrix=none points=[move(0.0000,300.0000) line(0.0000,0.0000) line(300.0000,0.0000) line(300.0000,300.0000) line(0.0000,300.0000,close)]
+SaveState
+RestoreState
+RestoreState
+SaveState
+DrawDeviceText font="Arimo" size=25.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,101.0000,193.6750] glyphs=[(idx=36,u=U+0041,origin=(0.0000,0.0000))]
+RestoreState
+FillRect [100,200,200,170] color=0x64dde4ff
+SaveState
+FillRect [100,110,200,140] color=0xffff0000
+RestoreState
+FillRect [100,140,200,110] color=0x64dde4ff
diff --git a/testing/resources/embedder_tests/bug_1302455_edit_first_form_agg.png b/testing/resources/embedder_tests/bug_1302455_edit_first_form_agg.png
deleted file mode 100644
index 23e37a2..0000000
--- a/testing/resources/embedder_tests/bug_1302455_edit_first_form_agg.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/bug_1302455_edit_first_form_agg_mac.png b/testing/resources/embedder_tests/bug_1302455_edit_first_form_agg_mac.png
deleted file mode 100644
index 6d65fb1..0000000
--- a/testing/resources/embedder_tests/bug_1302455_edit_first_form_agg_mac.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/bug_1302455_edit_first_form_skia_linux.png b/testing/resources/embedder_tests/bug_1302455_edit_first_form_skia_linux.png
deleted file mode 100644
index eb49f0f..0000000
--- a/testing/resources/embedder_tests/bug_1302455_edit_first_form_skia_linux.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/bug_1302455_edit_first_form_skia_mac.png b/testing/resources/embedder_tests/bug_1302455_edit_first_form_skia_mac.png
deleted file mode 100644
index 18035f3..0000000
--- a/testing/resources/embedder_tests/bug_1302455_edit_first_form_skia_mac.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/bug_1302455_edit_first_form_skia_win.png b/testing/resources/embedder_tests/bug_1302455_edit_first_form_skia_win.png
deleted file mode 100644
index 3c24685..0000000
--- a/testing/resources/embedder_tests/bug_1302455_edit_first_form_skia_win.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/bug_1302455_edit_second_form.dump.txt b/testing/resources/embedder_tests/bug_1302455_edit_second_form.dump.txt
new file mode 100644
index 0000000..02bc82b
--- /dev/null
+++ b/testing/resources/embedder_tests/bug_1302455_edit_second_form.dump.txt
@@ -0,0 +1,14 @@
+SaveState
+SetBaseClip [0,0,300,300]
+SetClip_PathFill rule=winding matrix=none points=[move(0.0000,300.0000) line(0.0000,0.0000) line(300.0000,0.0000) line(300.0000,300.0000) line(0.0000,300.0000,close)]
+SaveState
+RestoreState
+RestoreState
+SaveState
+FillRect [100,170,200,200] color=0xffff0000
+RestoreState
+FillRect [100,200,200,170] color=0x64dde4ff
+SaveState
+DrawDeviceText font="Arimo" size=25.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,101.0000,133.6750] glyphs=[(idx=37,u=U+0042,origin=(0.0000,0.0000))]
+RestoreState
+FillRect [100,140,200,110] color=0x64dde4ff
diff --git a/testing/resources/embedder_tests/bug_1302455_edit_second_form_agg.png b/testing/resources/embedder_tests/bug_1302455_edit_second_form_agg.png
deleted file mode 100644
index af0a50b..0000000
--- a/testing/resources/embedder_tests/bug_1302455_edit_second_form_agg.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/bug_1302455_edit_second_form_agg_mac.png b/testing/resources/embedder_tests/bug_1302455_edit_second_form_agg_mac.png
deleted file mode 100644
index f18aa40..0000000
--- a/testing/resources/embedder_tests/bug_1302455_edit_second_form_agg_mac.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/bug_1302455_edit_second_form_skia_linux.png b/testing/resources/embedder_tests/bug_1302455_edit_second_form_skia_linux.png
deleted file mode 100644
index 5d7db1b..0000000
--- a/testing/resources/embedder_tests/bug_1302455_edit_second_form_skia_linux.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/bug_1302455_edit_second_form_skia_mac.png b/testing/resources/embedder_tests/bug_1302455_edit_second_form_skia_mac.png
deleted file mode 100644
index ea1cbdc..0000000
--- a/testing/resources/embedder_tests/bug_1302455_edit_second_form_skia_mac.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/bug_1302455_edit_second_form_skia_win.png b/testing/resources/embedder_tests/bug_1302455_edit_second_form_skia_win.png
deleted file mode 100644
index 63428e6..0000000
--- a/testing/resources/embedder_tests/bug_1302455_edit_second_form_skia_win.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/bug_1302455_read_only.dump.txt b/testing/resources/embedder_tests/bug_1302455_read_only.dump.txt
new file mode 100644
index 0000000..c091f2b
--- /dev/null
+++ b/testing/resources/embedder_tests/bug_1302455_read_only.dump.txt
@@ -0,0 +1,14 @@
+SaveState
+SetBaseClip [0,0,300,300]
+SetClip_PathFill rule=winding matrix=none points=[move(0.0000,300.0000) line(0.0000,0.0000) line(300.0000,0.0000) line(300.0000,300.0000) line(0.0000,300.0000,close)]
+SaveState
+RestoreState
+RestoreState
+SaveState
+FillRect [100,170,200,200] color=0xffff0000
+RestoreState
+FillRect [100,200,200,170] color=0x64dde4ff
+SaveState
+FillRect [100,110,200,140] color=0xffff0000
+RestoreState
+FillRect [100,140,200,110] color=0x64dde4ff
diff --git a/testing/resources/embedder_tests/bug_1302455_read_only_agg.png b/testing/resources/embedder_tests/bug_1302455_read_only_agg.png
deleted file mode 100644
index c04a0dd..0000000
--- a/testing/resources/embedder_tests/bug_1302455_read_only_agg.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/bug_1302455_read_only_skia.png b/testing/resources/embedder_tests/bug_1302455_read_only_skia.png
deleted file mode 100644
index 2887a76..0000000
--- a/testing/resources/embedder_tests/bug_1302455_read_only_skia.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/bug_535730401.dump.txt b/testing/resources/embedder_tests/bug_535730401.dump.txt
new file mode 100644
index 0000000..5973718
--- /dev/null
+++ b/testing/resources/embedder_tests/bug_535730401.dump.txt
@@ -0,0 +1,27 @@
+SaveState
+SetBaseClip [0,0,300,300]
+SetClip_PathFill rule=winding matrix=none points=[move(0.0000,300.0000) line(0.0000,0.0000) line(300.0000,0.0000) line(300.0000,300.0000) line(0.0000,300.0000,close)]
+SaveState
+DrawDeviceText font="Arimo" size=12.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,100.0000,150.0000] glyphs=[(idx=55,u=U+0054,origin=(0.0000,0.0000)) (idx=72,u=U+0065,origin=(7.3320,0.0000)) (idx=86,u=U+0073,origin=(14.0040,0.0000)) (idx=87,u=U+0074,origin=(20.0040,0.0000)) (idx=3,u=U+0020,origin=(23.3400,0.0000)) (idx=41,u=U+0046,origin=(26.6760,0.0000)) (idx=82,u=U+006F,origin=(34.0080,0.0000)) (idx=85,u=U+0072,origin=(40.6800,0.0000)) (idx=80,u=U+006D,origin=(44.6760,0.0000))]
+RestoreState
+RestoreState
+SaveState
+RestoreState
+SaveState
+DrawDeviceText font="Arimo" size=12.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,101.0000,241.6640] glyphs=[(idx=40,u=U+0045,origin=(0.0000,0.0000)) (idx=79,u=U+006C,origin=(8.0040,0.0000)) (idx=72,u=U+0065,origin=(10.6680,0.0000)) (idx=83,u=U+0070,origin=(17.3400,0.0000)) (idx=75,u=U+0068,origin=(24.0120,0.0000)) (idx=68,u=U+0061,origin=(30.6840,0.0000)) (idx=81,u=U+006E,origin=(37.3560,0.0000)) (idx=87,u=U+0074,origin=(44.0280,0.0000))]
+RestoreState
+FillRect [100,250,200,225] color=0x64dde4ff
+SaveState
+RestoreState
+FillRect [100,290,200,265] color=0x64dde4ff
+FillRect [101,171,199,199] color=0x00000000
+DrawPath fill=0x00000000 stroke=0x00000000 rule=even-odd stroke_state=[none] matrix=[1.0000,0.0000,0.0000,-1.0000,100.0000,200.0000] points=[move(0.0000,0.0000) line(0.0000,30.0000) line(100.0000,30.0000) line(100.0000,0.0000) line(0.0000,0.0000,close) move(1.0000,1.0000) line(1.0000,29.0000) line(99.0000,29.0000) line(99.0000,1.0000) line(1.0000,1.0000,close)]
+SaveState
+SetClip_PathFill rule=winding matrix=none points=[move(101.0000,171.0000) line(101.0000,199.0000) line(199.0000,199.0000) line(199.0000,171.0000) line(101.0000,171.0000,close)]
+DrawDeviceText font="Arimo" size=12.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,101.0000,189.1400] glyphs=[(idx=36,u=U+0041,origin=(0.0000,0.0000)) (idx=3,u=U+0020,origin=(8.0040,0.0000))]
+DrawDeviceText font="Tinos" size=12.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,122.7800,189.1400] glyphs=[(idx=2507,u=U+05E9,origin=(0.0000,0.0000))]
+DrawDeviceText font="Arimo" size=12.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,119.4440,189.1400] glyphs=[(idx=3,u=U+0020,origin=(0.0000,0.0000))]
+DrawDeviceText font="Tinos" size=12.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,112.3400,189.1400] glyphs=[(idx=2496,u=U+05DE,origin=(0.0000,0.0000))]
+DrawDeviceText font="Arimo" size=12.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,131.2760,189.1400] glyphs=[(idx=3,u=U+0020,origin=(0.0000,0.0000)) (idx=37,u=U+0042,origin=(3.3360,0.0000))]
+RestoreState
+DrawPath fill=0x00000000 stroke=0xff000000 rule=even-odd stroke_state=[width=0.4000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,100.0000,200.0000] points=[move(42.8160,8.3280) line(42.8160,21.7200)]
diff --git a/testing/resources/embedder_tests/bug_535730401.png b/testing/resources/embedder_tests/bug_535730401.png
deleted file mode 100644
index 9cd89de..0000000
--- a/testing/resources/embedder_tests/bug_535730401.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/bug_535730401_combobox.dump.txt b/testing/resources/embedder_tests/bug_535730401_combobox.dump.txt
new file mode 100644
index 0000000..06337f0
--- /dev/null
+++ b/testing/resources/embedder_tests/bug_535730401_combobox.dump.txt
@@ -0,0 +1,39 @@
+SaveState
+SetBaseClip [0,0,300,600]
+SetClip_PathFill rule=winding matrix=none points=[move(0.0000,600.0000) line(0.0000,0.0000) line(300.0000,0.0000) line(300.0000,600.0000) line(0.0000,600.0000,close)]
+SaveState
+DrawDeviceText font="Arimo" size=12.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,100.0000,150.0000] glyphs=[(idx=55,u=U+0054,origin=(0.0000,0.0000)) (idx=72,u=U+0065,origin=(7.3320,0.0000)) (idx=86,u=U+0073,origin=(14.0040,0.0000)) (idx=87,u=U+0074,origin=(20.0040,0.0000)) (idx=3,u=U+0020,origin=(23.3400,0.0000)) (idx=41,u=U+0046,origin=(26.6760,0.0000)) (idx=82,u=U+006F,origin=(34.0080,0.0000)) (idx=85,u=U+0072,origin=(40.6800,0.0000)) (idx=80,u=U+006D,origin=(44.6760,0.0000))]
+RestoreState
+RestoreState
+SaveState
+DrawDeviceText font="Arimo" size=12.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,101.0000,189.1640] glyphs=[(idx=37,u=U+0042,origin=(0.0000,0.0000)) (idx=68,u=U+0061,origin=(8.0040,0.0000)) (idx=81,u=U+006E,origin=(14.6760,0.0000)) (idx=68,u=U+0061,origin=(21.3480,0.0000)) (idx=81,u=U+006E,origin=(28.0200,0.0000)) (idx=68,u=U+0061,origin=(34.6920,0.0000))]
+FillRect [186,171,199,199] color=0xffdcdcdc
+DrawPath fill=0xffffffff stroke=0x00000000 rule=winding stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,100.0000,200.0000] points=[move(87.0000,2.0000) line(87.0000,28.0000) line(98.0000,28.0000) line(97.0000,27.0000) line(88.0000,27.0000) line(88.0000,3.0000)]
+DrawPath fill=0xff808080 stroke=0x00000000 rule=winding stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,100.0000,200.0000] points=[move(98.0000,28.0000) line(98.0000,2.0000) line(87.0000,2.0000) line(88.0000,3.0000) line(97.0000,3.0000) line(97.0000,27.0000)]
+DrawPath fill=0xff000000 stroke=0x00000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,100.0000,200.0000] points=[move(86.0000,1.0000) line(99.0000,1.0000) line(99.0000,29.0000) line(86.0000,29.0000) line(86.0000,1.0000,close) move(87.0000,2.0000) line(98.0000,2.0000) line(98.0000,28.0000) line(87.0000,28.0000) line(87.0000,2.0000,close)]
+DrawPath fill=0xff000000 stroke=0x00000000 rule=winding stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,100.0000,200.0000] points=[move(89.5000,16.5000) line(95.5000,16.5000) line(92.5000,13.5000) line(89.5000,16.5000)]
+RestoreState
+FillRect [100,200,200,170] color=0x64dde4ff
+SaveState
+FillRect [186,71,199,99] color=0xffdcdcdc
+DrawPath fill=0xffffffff stroke=0x00000000 rule=winding stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,100.0000,100.0000] points=[move(87.0000,2.0000) line(87.0000,28.0000) line(98.0000,28.0000) line(97.0000,27.0000) line(88.0000,27.0000) line(88.0000,3.0000)]
+DrawPath fill=0xff808080 stroke=0x00000000 rule=winding stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,100.0000,100.0000] points=[move(98.0000,28.0000) line(98.0000,2.0000) line(87.0000,2.0000) line(88.0000,3.0000) line(97.0000,3.0000) line(97.0000,27.0000)]
+DrawPath fill=0xff000000 stroke=0x00000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,100.0000,100.0000] points=[move(86.0000,1.0000) line(99.0000,1.0000) line(99.0000,29.0000) line(86.0000,29.0000) line(86.0000,1.0000,close) move(87.0000,2.0000) line(98.0000,2.0000) line(98.0000,28.0000) line(87.0000,28.0000) line(87.0000,2.0000,close)]
+DrawPath fill=0xff000000 stroke=0x00000000 rule=winding stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,100.0000,100.0000] points=[move(89.5000,16.5000) line(95.5000,16.5000) line(92.5000,13.5000) line(89.5000,16.5000)]
+RestoreState
+FillRect [101,221,199,249] color=0x00000000
+DrawPath fill=0x00000000 stroke=0x00000000 rule=even-odd stroke_state=[none] matrix=[1.0000,0.0000,0.0000,-1.0000,100.0000,250.0000] points=[move(0.0000,0.0000) line(0.0000,30.0000) line(100.0000,30.0000) line(100.0000,0.0000) line(0.0000,0.0000,close) move(1.0000,1.0000) line(1.0000,29.0000) line(99.0000,29.0000) line(99.0000,1.0000) line(1.0000,1.0000,close)]
+SaveState
+SetClip_PathFill rule=winding matrix=none points=[move(101.0000,221.0000) line(101.0000,249.0000) line(185.0000,249.0000) line(185.0000,221.0000) line(101.0000,221.0000,close)]
+DrawDeviceText font="Arimo" size=12.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,101.0000,239.1400] glyphs=[(idx=36,u=U+0041,origin=(0.0000,0.0000)) (idx=3,u=U+0020,origin=(8.0040,0.0000))]
+DrawDeviceText font="Tinos" size=12.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,122.7800,239.1400] glyphs=[(idx=2507,u=U+05E9,origin=(0.0000,0.0000))]
+DrawDeviceText font="Arimo" size=12.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,119.4440,239.1400] glyphs=[(idx=3,u=U+0020,origin=(0.0000,0.0000))]
+DrawDeviceText font="Tinos" size=12.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,112.3400,239.1400] glyphs=[(idx=2496,u=U+05DE,origin=(0.0000,0.0000))]
+DrawDeviceText font="Arimo" size=12.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,131.2760,239.1400] glyphs=[(idx=3,u=U+0020,origin=(0.0000,0.0000)) (idx=37,u=U+0042,origin=(3.3360,0.0000))]
+RestoreState
+DrawPath fill=0x00000000 stroke=0xff000000 rule=even-odd stroke_state=[width=0.4000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,100.0000,250.0000] points=[move(42.8160,8.3280) line(42.8160,21.7200)]
+FillRect [188,223,197,247] color=0xffdcdcdc
+DrawPath fill=0xffffffff stroke=0x00000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,100.0000,250.0000] points=[move(87.0000,2.0000) line(87.0000,28.0000) line(98.0000,28.0000) line(97.0000,27.0000) line(88.0000,27.0000) line(88.0000,3.0000) line(87.0000,2.0000)]
+DrawPath fill=0xff6e6e6e stroke=0x00000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,100.0000,250.0000] points=[move(98.0000,28.0000) line(98.0000,2.0000) line(87.0000,2.0000) line(88.0000,3.0000) line(97.0000,3.0000) line(97.0000,27.0000) line(98.0000,28.0000)]
+DrawPath fill=0xff000000 stroke=0x00000000 rule=even-odd stroke_state=[width=1.0000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,100.0000,250.0000] points=[move(86.0000,1.0000) line(86.0000,29.0000) line(99.0000,29.0000) line(99.0000,1.0000) line(86.0000,1.0000,close) move(87.0000,2.0000) line(87.0000,28.0000) line(98.0000,28.0000) line(98.0000,2.0000) line(87.0000,2.0000,close)]
+DrawPath fill=0xff000000 stroke=0x00000000 rule=even-odd stroke_state=[none] matrix=[1.0000,0.0000,0.0000,-1.0000,100.0000,250.0000] points=[move(89.5000,16.5000) line(95.5000,16.5000) line(92.5000,13.5000) line(89.5000,16.5000)]
diff --git a/testing/resources/embedder_tests/bug_535730401_combobox.png b/testing/resources/embedder_tests/bug_535730401_combobox.png
deleted file mode 100644
index 72d69ab..0000000
--- a/testing/resources/embedder_tests/bug_535730401_combobox.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/bug_535730401_combobox_mac.png b/testing/resources/embedder_tests/bug_535730401_combobox_mac.png
deleted file mode 100644
index fefe2c7..0000000
--- a/testing/resources/embedder_tests/bug_535730401_combobox_mac.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/bug_535730401_combobox_skia_linux.png b/testing/resources/embedder_tests/bug_535730401_combobox_skia_linux.png
deleted file mode 100644
index af631d6..0000000
--- a/testing/resources/embedder_tests/bug_535730401_combobox_skia_linux.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/bug_535730401_combobox_skia_mac.png b/testing/resources/embedder_tests/bug_535730401_combobox_skia_mac.png
deleted file mode 100644
index 4f7e93b..0000000
--- a/testing/resources/embedder_tests/bug_535730401_combobox_skia_mac.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/bug_535730401_combobox_skia_win.png b/testing/resources/embedder_tests/bug_535730401_combobox_skia_win.png
deleted file mode 100644
index 346fce9..0000000
--- a/testing/resources/embedder_tests/bug_535730401_combobox_skia_win.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/bug_535730401_mac.png b/testing/resources/embedder_tests/bug_535730401_mac.png
deleted file mode 100644
index 7be3560..0000000
--- a/testing/resources/embedder_tests/bug_535730401_mac.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/bug_535730401_skia_linux.png b/testing/resources/embedder_tests/bug_535730401_skia_linux.png
deleted file mode 100644
index 18b8913..0000000
--- a/testing/resources/embedder_tests/bug_535730401_skia_linux.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/bug_535730401_skia_mac.png b/testing/resources/embedder_tests/bug_535730401_skia_mac.png
deleted file mode 100644
index 9c22e27..0000000
--- a/testing/resources/embedder_tests/bug_535730401_skia_mac.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/bug_535730401_skia_win.png b/testing/resources/embedder_tests/bug_535730401_skia_win.png
deleted file mode 100644
index ef7d6b3..0000000
--- a/testing/resources/embedder_tests/bug_535730401_skia_win.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/focused_text_form_with_abc.dump.txt b/testing/resources/embedder_tests/focused_text_form_with_abc.dump.txt
new file mode 100644
index 0000000..31f026e
--- /dev/null
+++ b/testing/resources/embedder_tests/focused_text_form_with_abc.dump.txt
@@ -0,0 +1,14 @@
+SaveState
+SetBaseClip [0,0,300,300]
+SetClip_PathFill rule=winding matrix=none points=[move(0.0000,300.0000) line(0.0000,0.0000) line(300.0000,0.0000) line(300.0000,300.0000) line(0.0000,300.0000,close)]
+SaveState
+DrawDeviceText font="Arimo" size=12.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,100.0000,150.0000] glyphs=[(idx=55,u=U+0054,origin=(0.0000,0.0000)) (idx=72,u=U+0065,origin=(7.3320,0.0000)) (idx=86,u=U+0073,origin=(14.0040,0.0000)) (idx=87,u=U+0074,origin=(20.0040,0.0000)) (idx=3,u=U+0020,origin=(23.3400,0.0000)) (idx=41,u=U+0046,origin=(26.6760,0.0000)) (idx=82,u=U+006F,origin=(34.0080,0.0000)) (idx=85,u=U+0072,origin=(40.6800,0.0000)) (idx=80,u=U+006D,origin=(44.6760,0.0000))]
+RestoreState
+RestoreState
+FillRect [101,171,199,199] color=0x00000000
+DrawPath fill=0x00000000 stroke=0x00000000 rule=even-odd stroke_state=[none] matrix=[1.0000,0.0000,0.0000,-1.0000,100.0000,200.0000] points=[move(0.0000,0.0000) line(0.0000,30.0000) line(100.0000,30.0000) line(100.0000,0.0000) line(0.0000,0.0000,close) move(1.0000,1.0000) line(1.0000,29.0000) line(99.0000,29.0000) line(99.0000,1.0000) line(1.0000,1.0000,close)]
+SaveState
+SetClip_PathFill rule=winding matrix=none points=[move(101.0000,171.0000) line(101.0000,199.0000) line(199.0000,199.0000) line(199.0000,171.0000) line(101.0000,171.0000,close)]
+DrawDeviceText font="Arimo" size=12.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,101.0000,189.1640] glyphs=[(idx=36,u=U+0041,origin=(0.0000,0.0000)) (idx=37,u=U+0042,origin=(8.0040,0.0000)) (idx=38,u=U+0043,origin=(16.0080,0.0000))]
+RestoreState
+DrawPath fill=0x00000000 stroke=0xff000000 rule=even-odd stroke_state=[width=0.4000 cap=butt join=miter miter=10.0000] matrix=[1.0000,0.0000,0.0000,-1.0000,100.0000,200.0000] points=[move(25.8720,8.3040) line(25.8720,21.6960)]
diff --git a/testing/resources/embedder_tests/focused_text_form_with_abc_agg.png b/testing/resources/embedder_tests/focused_text_form_with_abc_agg.png
deleted file mode 100644
index 12f8afa..0000000
--- a/testing/resources/embedder_tests/focused_text_form_with_abc_agg.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/focused_text_form_with_abc_agg_mac.png b/testing/resources/embedder_tests/focused_text_form_with_abc_agg_mac.png
deleted file mode 100644
index 8676fb8..0000000
--- a/testing/resources/embedder_tests/focused_text_form_with_abc_agg_mac.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/focused_text_form_with_abc_skia_linux.png b/testing/resources/embedder_tests/focused_text_form_with_abc_skia_linux.png
deleted file mode 100644
index fcc0387..0000000
--- a/testing/resources/embedder_tests/focused_text_form_with_abc_skia_linux.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/focused_text_form_with_abc_skia_mac.png b/testing/resources/embedder_tests/focused_text_form_with_abc_skia_mac.png
deleted file mode 100644
index accad38..0000000
--- a/testing/resources/embedder_tests/focused_text_form_with_abc_skia_mac.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/focused_text_form_with_abc_skia_win.png b/testing/resources/embedder_tests/focused_text_form_with_abc_skia_win.png
deleted file mode 100644
index a244278..0000000
--- a/testing/resources/embedder_tests/focused_text_form_with_abc_skia_win.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/text_form.dump.txt b/testing/resources/embedder_tests/text_form.dump.txt
new file mode 100644
index 0000000..e6064e9
--- /dev/null
+++ b/testing/resources/embedder_tests/text_form.dump.txt
@@ -0,0 +1,10 @@
+SaveState
+SetBaseClip [0,0,300,300]
+SetClip_PathFill rule=winding matrix=none points=[move(0.0000,300.0000) line(0.0000,0.0000) line(300.0000,0.0000) line(300.0000,300.0000) line(0.0000,300.0000,close)]
+SaveState
+DrawDeviceText font="Arimo" size=12.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,100.0000,150.0000] glyphs=[(idx=55,u=U+0054,origin=(0.0000,0.0000)) (idx=72,u=U+0065,origin=(7.3320,0.0000)) (idx=86,u=U+0073,origin=(14.0040,0.0000)) (idx=87,u=U+0074,origin=(20.0040,0.0000)) (idx=3,u=U+0020,origin=(23.3400,0.0000)) (idx=41,u=U+0046,origin=(26.6760,0.0000)) (idx=82,u=U+006F,origin=(34.0080,0.0000)) (idx=85,u=U+0072,origin=(40.6800,0.0000)) (idx=80,u=U+006D,origin=(44.6760,0.0000))]
+RestoreState
+RestoreState
+SaveState
+RestoreState
+FillRect [100,200,200,170] color=0x64dde4ff
diff --git a/testing/resources/embedder_tests/text_form_no_highlight.dump.txt b/testing/resources/embedder_tests/text_form_no_highlight.dump.txt
new file mode 100644
index 0000000..0439661
--- /dev/null
+++ b/testing/resources/embedder_tests/text_form_no_highlight.dump.txt
@@ -0,0 +1,9 @@
+SaveState
+SetBaseClip [0,0,300,300]
+SetClip_PathFill rule=winding matrix=none points=[move(0.0000,300.0000) line(0.0000,0.0000) line(300.0000,0.0000) line(300.0000,300.0000) line(0.0000,300.0000,close)]
+SaveState
+DrawDeviceText font="Arimo" size=12.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,100.0000,150.0000] glyphs=[(idx=55,u=U+0054,origin=(0.0000,0.0000)) (idx=72,u=U+0065,origin=(7.3320,0.0000)) (idx=86,u=U+0073,origin=(14.0040,0.0000)) (idx=87,u=U+0074,origin=(20.0040,0.0000)) (idx=3,u=U+0020,origin=(23.3400,0.0000)) (idx=41,u=U+0046,origin=(26.6760,0.0000)) (idx=82,u=U+006F,origin=(34.0080,0.0000)) (idx=85,u=U+0072,origin=(40.6800,0.0000)) (idx=80,u=U+006D,origin=(44.6760,0.0000))]
+RestoreState
+RestoreState
+SaveState
+RestoreState
diff --git a/testing/resources/embedder_tests/text_form_no_highlight_agg.png b/testing/resources/embedder_tests/text_form_no_highlight_agg.png
deleted file mode 100644
index 5594a89..0000000
--- a/testing/resources/embedder_tests/text_form_no_highlight_agg.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/text_form_no_highlight_agg_mac.png b/testing/resources/embedder_tests/text_form_no_highlight_agg_mac.png
deleted file mode 100644
index 4b9c30c..0000000
--- a/testing/resources/embedder_tests/text_form_no_highlight_agg_mac.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/text_form_no_highlight_skia_linux.png b/testing/resources/embedder_tests/text_form_no_highlight_skia_linux.png
deleted file mode 100644
index 94ed1ce..0000000
--- a/testing/resources/embedder_tests/text_form_no_highlight_skia_linux.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/text_form_no_highlight_skia_mac.png b/testing/resources/embedder_tests/text_form_no_highlight_skia_mac.png
deleted file mode 100644
index 5b02ce7..0000000
--- a/testing/resources/embedder_tests/text_form_no_highlight_skia_mac.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/text_form_no_highlight_skia_win.png b/testing/resources/embedder_tests/text_form_no_highlight_skia_win.png
deleted file mode 100644
index 1cd2dfc..0000000
--- a/testing/resources/embedder_tests/text_form_no_highlight_skia_win.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/unfocused_text_form_with_abc.dump.txt b/testing/resources/embedder_tests/unfocused_text_form_with_abc.dump.txt
new file mode 100644
index 0000000..3d9dba8
--- /dev/null
+++ b/testing/resources/embedder_tests/unfocused_text_form_with_abc.dump.txt
@@ -0,0 +1,11 @@
+SaveState
+SetBaseClip [0,0,300,300]
+SetClip_PathFill rule=winding matrix=none points=[move(0.0000,300.0000) line(0.0000,0.0000) line(300.0000,0.0000) line(300.0000,300.0000) line(0.0000,300.0000,close)]
+SaveState
+DrawDeviceText font="Arimo" size=12.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,100.0000,150.0000] glyphs=[(idx=55,u=U+0054,origin=(0.0000,0.0000)) (idx=72,u=U+0065,origin=(7.3320,0.0000)) (idx=86,u=U+0073,origin=(14.0040,0.0000)) (idx=87,u=U+0074,origin=(20.0040,0.0000)) (idx=3,u=U+0020,origin=(23.3400,0.0000)) (idx=41,u=U+0046,origin=(26.6760,0.0000)) (idx=82,u=U+006F,origin=(34.0080,0.0000)) (idx=85,u=U+0072,origin=(40.6800,0.0000)) (idx=80,u=U+006D,origin=(44.6760,0.0000))]
+RestoreState
+RestoreState
+SaveState
+DrawDeviceText font="Arimo" size=12.0000 color=0xff000000 matrix=[1.0000,0.0000,0.0000,-1.0000,101.0000,189.1640] glyphs=[(idx=36,u=U+0041,origin=(0.0000,0.0000)) (idx=37,u=U+0042,origin=(8.0040,0.0000)) (idx=38,u=U+0043,origin=(16.0080,0.0000))]
+RestoreState
+FillRect [100,200,200,170] color=0x64dde4ff
diff --git a/testing/resources/embedder_tests/unfocused_text_form_with_abc_agg.png b/testing/resources/embedder_tests/unfocused_text_form_with_abc_agg.png
deleted file mode 100644
index f9b833c..0000000
--- a/testing/resources/embedder_tests/unfocused_text_form_with_abc_agg.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/unfocused_text_form_with_abc_agg_mac.png b/testing/resources/embedder_tests/unfocused_text_form_with_abc_agg_mac.png
deleted file mode 100644
index 01a4ce1..0000000
--- a/testing/resources/embedder_tests/unfocused_text_form_with_abc_agg_mac.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/unfocused_text_form_with_abc_skia_linux.png b/testing/resources/embedder_tests/unfocused_text_form_with_abc_skia_linux.png
deleted file mode 100644
index 048a59a..0000000
--- a/testing/resources/embedder_tests/unfocused_text_form_with_abc_skia_linux.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/unfocused_text_form_with_abc_skia_mac.png b/testing/resources/embedder_tests/unfocused_text_form_with_abc_skia_mac.png
deleted file mode 100644
index b55c8b1..0000000
--- a/testing/resources/embedder_tests/unfocused_text_form_with_abc_skia_mac.png
+++ /dev/null
Binary files differ
diff --git a/testing/resources/embedder_tests/unfocused_text_form_with_abc_skia_win.png b/testing/resources/embedder_tests/unfocused_text_form_with_abc_skia_win.png
deleted file mode 100644
index a99e0a4..0000000
--- a/testing/resources/embedder_tests/unfocused_text_form_with_abc_skia_win.png
+++ /dev/null
Binary files differ