Use test_fonts for pdfium_embeddertests on all platforms
Bug: chromium:1250250
Change-Id: I63d07673d308ee9ede4689a44681accad1ab8aa8
R=thestig
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/87190
Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfapi/parser/cpdf_security_handler_embeddertest.cpp b/core/fpdfapi/parser/cpdf_security_handler_embeddertest.cpp
index 6ac481b..fda5ed9 100644
--- a/core/fpdfapi/parser/cpdf_security_handler_embeddertest.cpp
+++ b/core/fpdfapi/parser/cpdf_security_handler_embeddertest.cpp
@@ -135,20 +135,12 @@
TEST_F(CPDFSecurityHandlerEmbedderTest, PasswordAfterGenerateSave) {
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
-#if defined(OS_WIN)
- const char kChecksum[] = "06fe5a97341b3e0f0a22ccc242fd9040";
-#else
- const char kChecksum[] = "169c8e3acea8fba5a40f695bbbc96273";
-#endif // defined(OS_WIN)
-#else
-#if defined(OS_WIN)
- const char kChecksum[] = "041c2fb541c8907cc22ce101b686c79e";
+ const char kChecksum[] = "c3c4fc0032f5d252327bf52d29a074fa";
#elif defined(OS_APPLE)
- const char kChecksum[] = "1ace03eb7c466c132aacf319cb9d69d3";
+ const char kChecksum[] = "2a308e8cc20a6221112c387d122075a8";
#else
- const char kChecksum[] = "7048dca58e2ed8f93339008b91e4eb4e";
+ const char kChecksum[] = "9fe7eef8e51d15a604001854be6ed1ee";
#endif
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
{
ASSERT_TRUE(OpenDocumentWithOptions("encrypted.pdf", "5678",
LinearizeOption::kMustLinearize,
diff --git a/core/fpdfapi/render/fpdf_progressive_render_embeddertest.cpp b/core/fpdfapi/render/fpdf_progressive_render_embeddertest.cpp
index 705e0f6..c121bdd 100644
--- a/core/fpdfapi/render/fpdf_progressive_render_embeddertest.cpp
+++ b/core/fpdfapi/render/fpdf_progressive_render_embeddertest.cpp
@@ -23,25 +23,15 @@
constexpr FX_ARGB kWhite = 0xFFFFFFFF;
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
-#if defined(OS_LINUX) || defined(OS_CHROMEOS)
static constexpr char kAnnotationStampWithApBaseContentChecksum[] =
- "fbd62f1df1cae1fd2fbf5a24bed6b4cd";
-#else
-static constexpr char kAnnotationStampWithApBaseContentChecksum[] =
- "44e6dd3c36d8bbfb38d306b442e61241";
-#endif // defined(OS_LINUX) || defined(OS_CHROMEOS)
-#else
-#if defined(OS_WIN)
-static constexpr char kAnnotationStampWithApBaseContentChecksum[] =
- "91c59c89f03be6c12a9af956b9955c47";
+ "1a6cb54b1cfc5bb9f6ec3923a52ea7cc";
#elif defined(OS_APPLE)
static constexpr char kAnnotationStampWithApBaseContentChecksum[] =
- "83e9f5222c4c959b0b63a5cd24f773a1";
+ "243f3d6267d9db09198fed9f8c4957fd";
#else
static constexpr char kAnnotationStampWithApBaseContentChecksum[] =
- "a24edc7740f1d6f76899652dcf825dea";
+ "e31414933c9ff3950773981e5bf61678";
#endif
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
} // namespace
@@ -324,19 +314,14 @@
// Test rendering of text with forced color scheme on.
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
static constexpr char kContentWithTextChecksum[] =
- "f6d0e8b9e508d4e993bae678f5f3baa7";
-#else
-#if defined(OS_WIN)
- static constexpr char kContentWithTextChecksum[] =
- "4245f32cc11748a00fd69852a5e5808d";
+ "6bbe5a547115b4aa30b49fe7c34030e3";
#elif defined(OS_APPLE)
static constexpr char kContentWithTextChecksum[] =
- "754a742f10ce0926b766dc3dd47d1f64";
+ "ee4ec12f54ce8d117a73bd9b85a8954d";
#else
static constexpr char kContentWithTextChecksum[] =
- "f14d3caba5a973a28be8653aac9e4df3";
+ "704db63ed2bf77254ecaa8035b85f21a";
#endif
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
ASSERT_TRUE(OpenDocument("hello_world.pdf"));
@@ -488,25 +473,15 @@
TEST_F(FPDFProgressiveRenderEmbedderTest, RenderStampWithColorScheme) {
// Test rendering of static annotation with forced color scheme on.
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
-#if defined(OS_WIN) || defined(OS_APPLE)
static constexpr char kContentWithStampChecksum[] =
- "77cd4865c3780d69a61d4225ee10c41f";
-#else
- static constexpr char kContentWithStampChecksum[] =
- "6d8cb124dee49ebda757f8872a7bbef2";
-#endif // defined(OS_WIN) || defined(OS_APPLE)
-#else
-#if defined(OS_WIN)
- static constexpr char kContentWithStampChecksum[] =
- "2f91d6e380cc85b3f700bc7eb9bc0cef";
+ "bdcd2b91223b1a73582b341d0153a73f";
#elif defined(OS_APPLE)
static constexpr char kContentWithStampChecksum[] =
- "e2d9bef817d366021e5727d9350bde43";
+ "7a209e29caeeab7d2b25b34570a4ace6";
#else
static constexpr char kContentWithStampChecksum[] =
- "d5518b1d9765fa62897a24d12244080f";
+ "3bbbfc6cc18801906285a232c4a20617";
#endif
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
ASSERT_TRUE(OpenDocument("annotation_stamp_with_ap.pdf"));
diff --git a/core/fxge/cfx_folderfontinfo.cpp b/core/fxge/cfx_folderfontinfo.cpp
index 7017ec9..7e69136 100644
--- a/core/fxge/cfx_folderfontinfo.cpp
+++ b/core/fxge/cfx_folderfontinfo.cpp
@@ -317,8 +317,11 @@
const ByteString& family,
bool bMatchName) {
FontFaceInfo* pFind = nullptr;
- if (charset == FX_Charset::kANSI && FontFamilyIsFixedPitch(pitch_family))
- return GetFont("Courier New");
+ if (charset == FX_Charset::kANSI && FontFamilyIsFixedPitch(pitch_family)) {
+ auto* courier_new = GetFont("Courier New");
+ if (courier_new)
+ return courier_new;
+ }
ByteStringView bsFamily = family.AsStringView();
uint32_t charset_flag = GetCharset(charset);
diff --git a/core/fxge/cfx_fontmapper.cpp b/core/fxge/cfx_fontmapper.cpp
index 3f0e59b..7c44223 100644
--- a/core/fxge/cfx_fontmapper.cpp
+++ b/core/fxge/cfx_fontmapper.cpp
@@ -292,6 +292,10 @@
m_pFontInfo = std::move(pFontInfo);
}
+std::unique_ptr<SystemFontInfoIface> CFX_FontMapper::TakeSystemFontInfo() {
+ return std::move(m_pFontInfo);
+}
+
uint32_t CFX_FontMapper::GetChecksumFromTT(void* hFont) {
uint32_t buffer[256];
m_pFontInfo->GetFontData(
diff --git a/core/fxge/cfx_fontmapper.h b/core/fxge/cfx_fontmapper.h
index b62372e..956232e 100644
--- a/core/fxge/cfx_fontmapper.h
+++ b/core/fxge/cfx_fontmapper.h
@@ -58,6 +58,7 @@
}
void SetSystemFontInfo(std::unique_ptr<SystemFontInfoIface> pFontInfo);
+ std::unique_ptr<SystemFontInfoIface> TakeSystemFontInfo();
void AddInstalledFont(const ByteString& name, FX_Charset charset);
void LoadInstalledFonts();
diff --git a/fpdfsdk/fpdf_annot_embeddertest.cpp b/fpdfsdk/fpdf_annot_embeddertest.cpp
index 94dd881..820fdc7 100644
--- a/fpdfsdk/fpdf_annot_embeddertest.cpp
+++ b/fpdfsdk/fpdf_annot_embeddertest.cpp
@@ -1115,30 +1115,18 @@
TEST_F(FPDFAnnotEmbedderTest, AddAndModifyPath) {
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
-#if defined(OS_LINUX) || defined(OS_CHROMEOS)
- static const char kMd5ModifiedPath[] = "d76382fd57fafad0233f7549f871dafa";
- static const char kMd5TwoPaths[] = "323151317b8cb62130546c7b8d70f622";
- static const char kMd5NewAnnot[] = "9a3b02d876620d19787549ee1100b63c";
-#else
- static const char kMd5ModifiedPath[] = "c9ba60887a312370d9a32198aa53aca4";
- static const char kMd5TwoPaths[] = "0768d56373094fcdf4ddf3f3364c006f";
- static const char kMd5NewAnnot[] = "6f7e1c189bcfac90ffccf2a527857006";
-#endif // defined(OS_LINUX) || defined(OS_CHROMEOS)
-#else
-#if defined(OS_WIN)
- static const char kMd5ModifiedPath[] = "15683598de2364925c42a50513dad71f";
- static const char kMd5TwoPaths[] = "9e53f315535e6f570560f46934442fbe";
- static const char kMd5NewAnnot[] = "5f2a2998b320b1ae035528f2b10a1b38";
+ static const char kMd5ModifiedPath[] = "b820e4ae359db95cbac9823937c6da1a";
+ static const char kMd5TwoPaths[] = "c53837b7bb6a9a21a846aa786526aa56";
+ static const char kMd5NewAnnot[] = "4f0f4217156e4251036f369184a48967";
#elif defined(OS_APPLE)
- static const char kMd5ModifiedPath[] = "8cfae6d547fc5d6702f5f1ac631beb5e";
- static const char kMd5TwoPaths[] = "9677e4892bb02950d3e4dbe74470578f";
- static const char kMd5NewAnnot[] = "e8ebddac4db8c0a4b556ddf79aa1a26d";
+ static const char kMd5ModifiedPath[] = "e31421f86c61d4e9cda138f15f561ca3";
+ static const char kMd5TwoPaths[] = "58d932492f9d485d6a4bc0ba76c04557";
+ static const char kMd5NewAnnot[] = "61f9ad13f2fd235753db198cf9704773";
#else
- static const char kMd5ModifiedPath[] = "6ff77d6d1fec4ea571fabe0c7a19b517";
- static const char kMd5TwoPaths[] = "ca37ad549e74ac5b359a055708f3e7b6";
- static const char kMd5NewAnnot[] = "0d7a0e33fbf41ff7fa5d732ab2c5edff";
+ static const char kMd5ModifiedPath[] = "980e7636d864f7f7d323a31ad4e8fa04";
+ static const char kMd5TwoPaths[] = "4c779c394b6790f8cf80305b566b663b";
+ static const char kMd5NewAnnot[] = "97effd68dcf86273f68d126d6b45152e";
#endif
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
// Open a file with two annotations and load its first page.
ASSERT_TRUE(OpenDocument("annotation_stamp_with_ap.pdf"));
@@ -1340,23 +1328,15 @@
#endif
TEST_F(FPDFAnnotEmbedderTest, MAYBE_AddAndModifyImage) {
#if defined(_SKIA_SUPPORT_PATHS_)
-#if defined(OS_LINUX) || defined(OS_CHROMEOS)
- static const char kMd5NewImage[] = "26a8eb30937226a677839379e0d7ae1a";
- static const char kMd5ModifiedImage[] = "2985114b32ba1a96be78ee643fe31aa5";
-#else
- static const char kMd5NewImage[] = "14012ab500b4671fa73dd760129a8a93";
- static const char kMd5ModifiedImage[] = "5f97f98f58ed04dc393f31460485f1a2";
-#endif // defined(OS_LINUX) || defined(OS_CHROMEOS)
+ static const char kMd5NewImage[] = "beb7db3647706d7fe4689f92073847aa";
+ static const char kMd5ModifiedImage[] = "baa9b065469268e215ef958fe6987d6b";
#else
#if defined(OS_APPLE)
- static const char kMd5NewImage[] = "dd18709d90c245a12ce0b8c4d092bea9";
- static const char kMd5ModifiedImage[] = "8d6f478ff8c7e67d49b253f1af587a99";
-#elif defined(OS_WIN)
- static const char kMd5NewImage[] = "a822fffc257c445467aa91876e1f8611";
- static const char kMd5ModifiedImage[] = "a5afb12f4f516e1f5f675c67f99e043a";
+ static const char kMd5NewImage[] = "c6fcbceb2f079bef10458ac60db3a10c";
+ static const char kMd5ModifiedImage[] = "8068eb568e5c1c5fbe84e98f7a980ac3";
#else
- static const char kMd5NewImage[] = "528e6243dc29d54f36b61e0d3287d935";
- static const char kMd5ModifiedImage[] = "6d9e59f3e57a1ff82fb258356b7eb731";
+ static const char kMd5NewImage[] = "62c2706511cb50e32e7caeb82b1d3d49";
+ static const char kMd5ModifiedImage[] = "83093ce9fac746db69fbd2fb394434ac";
#endif
#endif // defined(_SKIA_SUPPORT_PATHS_)
@@ -1433,25 +1413,15 @@
TEST_F(FPDFAnnotEmbedderTest, AddAndModifyText) {
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
-#if defined(OS_LINUX) || defined(OS_CHROMEOS)
- static const char kMd5NewText[] = "c9d853a5fb6bca31e9696ccc4462c74a";
- static const char kMd5ModifiedText[] = "bc681fa9174223983c5e4357e919d36c";
-#else
- static const char kMd5NewText[] = "4aaa34e9df2e41d621dbd81b1d535c48";
- static const char kMd5ModifiedText[] = "d6ea20beb7834ef4b6d370581ce425fc";
-#endif // defined(OS_LINUX) || defined(OS_CHROMEOS)
-#else
-#if defined(OS_WIN)
- static const char kMd5NewText[] = "31e106afba1b9af2c8613c9d6bd77153";
- static const char kMd5ModifiedText[] = "c5ef84b480cd762b0b9dad715beb92b6";
+ static const char kMd5NewText[] = "310d9de5f17fb288fb243f5dbaf2b6dc";
+ static const char kMd5ModifiedText[] = "22be42c136c3bf5a8ecea3dd83770a02";
#elif defined(OS_APPLE)
- static const char kMd5NewText[] = "e657266260b88c964938efe6c9b292da";
- static const char kMd5ModifiedText[] = "7accdf2bac64463101783221f53d3188";
+ static const char kMd5NewText[] = "57a0fb3fba33e17de26bcde4c40b9a75";
+ static const char kMd5ModifiedText[] = "072574999f2e3f36774ee0b5bc94d4dd";
#else
- static const char kMd5NewText[] = "00197ad6206f763febad5719e5935306";
- static const char kMd5ModifiedText[] = "85853bc0aaa5a4e3af04e58b9cbfff23";
+ static const char kMd5NewText[] = "1c4198c38f890c208c5cbaad57be4dc6";
+ static const char kMd5ModifiedText[] = "cfa78d01406865f41f486bd34a8b9f7b";
#endif
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
// Open a file with two annotations and load its first page.
ASSERT_TRUE(OpenDocument("annotation_stamp_with_ap.pdf"));
@@ -1580,20 +1550,12 @@
UnloadPage(page);
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
-#if defined(OS_LINUX) || defined(OS_CHROMEOS)
- static const char kMd5[] = "7a2b712ca88d7b71f125ea3f9c88e57a";
+ static const char kMd5[] = "aa0e47d966c60d59102a2466542e0e46";
+#elif defined(OS_APPLE)
+ static const char kMd5[] = "cd90315b250dfe08265ce0ac335c5f76";
#else
- static const char kMd5[] = "626d25c5aa5baf67d22d9a0e1c23f6aa";
-#endif // defined(OS_LINUX) || defined(OS_CHROMEOS)
-#else
-#if defined(OS_APPLE)
- static const char kMd5[] = "5e7e185b386ad21ca83b0287268c50fb";
-#elif defined(OS_WIN)
- static const char kMd5[] = "64631cd3422201a36ea8f7ec63b34ae7";
-#else
- static const char kMd5[] = "1d7bea2042c6fea0558ff2aef05811b5";
+ static const char kMd5[] = "c4fb6911f2a87f490be196f8898de738";
#endif
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
// Open the saved annotation.
ASSERT_TRUE(OpenSavedDocument());
@@ -2130,7 +2092,7 @@
#else
static const char kExpectedBitmap[] = "0d9fc05c6762fd788bd23fd87a4967bc";
#endif
- static constexpr size_t kExpectedSize = 1609;
+ static constexpr size_t kExpectedSize = 1590;
ASSERT_TRUE(OpenDocument("bug_1206.pdf"));
@@ -3050,16 +3012,12 @@
{
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
- static const char kMd5sum[] = "4ca14c670396711194b40ecc2514969b";
-#else
-#if defined(OS_WIN)
- static const char kMd5sum[] = "3877bec7cb3e3144eaa6d10f38bf7a30";
+ static const char kMd5sum[] = "b4c8f1dab175508810c476d078ebc5a6";
#elif defined(OS_APPLE)
- static const char kMd5sum[] = "04b16db5026b5490a50fb6ff0954c867";
+ static const char kMd5sum[] = "108a46c517c4eaace9982ee83e8e3296";
#else
- static const char kMd5sum[] = "40a7354d1f653127bcdac10e15f81654";
+ static const char kMd5sum[] = "5550d8dcb4d1af1f50e8b4bcaef2ee60";
#endif
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
// Check the initial rendering.
ScopedFPDFBitmap bitmap = RenderLoadedPageWithFlags(page, FPDF_ANNOT);
CompareBitmap(bitmap.get(), 612, 792, kMd5sum);
@@ -3080,16 +3038,12 @@
{
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
- static const char kMd5sum[] = "48cb60b3f9bc364c73582aff3418451e";
-#else
-#if defined(OS_WIN)
- static const char kMd5sum[] = "a30f1bd1cac022d08ceb100df4940b5f";
+ static const char kMd5sum[] = "9173db3a892bc1697eef5cdaed19eda6";
#elif defined(OS_APPLE)
- static const char kMd5sum[] = "3f984a164f2f6d6e3d69f27fd430e346";
+ static const char kMd5sum[] = "eb3869335e7a219e1b5f25c1c6037b97";
#else
- static const char kMd5sum[] = "e4c4de73addabf10672c308870e8a4ee";
+ static const char kMd5sum[] = "805fe7bb751ac4ed2b82bb66efe6db40";
#endif
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
// Focus the first link and check the rendering.
ScopedFPDFAnnotation annot(FPDFPage_GetAnnot(page, 0));
ASSERT_TRUE(annot);
@@ -3101,16 +3055,12 @@
{
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
- static const char kMd5sum[] = "d09869ff0a209daf179da2d7a58142b1";
-#else
-#if defined(OS_WIN)
- static const char kMd5sum[] = "467f5a4db98fcadd5121807ff4e2eb10";
+ static const char kMd5sum[] = "174dbdb218c2b14011c9c1db67fe41c3";
#elif defined(OS_APPLE)
- static const char kMd5sum[] = "c6d6f9dc7090e8eaf3867ba714023b1e";
+ static const char kMd5sum[] = "d20b1978da2362d3942ea0fc6d230997";
#else
- static const char kMd5sum[] = "65e831885e16b7ecc977cce2e4a27110";
+ static const char kMd5sum[] = "c5c5dcb462af3ef5f43b298ec048feef";
#endif
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
// Focus the first highlight and check the rendering.
ScopedFPDFAnnotation annot(FPDFPage_GetAnnot(page, 4));
ASSERT_TRUE(annot);
@@ -3614,17 +3564,14 @@
EXPECT_EQ(3, FPDFPage_GetAnnotCount(page));
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
- constexpr char kOriginalChecksum[] = "bc9ba381d6d46ff93ed0b5288b763b60";
- constexpr char kModifiedChecksum[] = "0f3e10336f67cb6a8731a06d26d01e50";
-#elif defined(OS_WIN)
- constexpr char kOriginalChecksum[] = "768b9edd280a535b4223e57bf17940e3";
- constexpr char kModifiedChecksum[] = "ab367296994b5dc1a178820626601ffc";
+ constexpr char kOriginalChecksum[] = "4f35703e89202bcc8419ca2df739bb4e";
+ constexpr char kModifiedChecksum[] = "cee0a1b41f33d487af8fb70c4c82e3c9";
#elif defined(OS_APPLE)
- constexpr char kOriginalChecksum[] = "1839f5df5fb4fae10cf3793568e73ede";
- constexpr char kModifiedChecksum[] = "abd4f5d1c3b8d8cfc572b389e589da5a";
+ constexpr char kOriginalChecksum[] = "522a4a6b6c7eab5bf95ded1f21ea372e";
+ constexpr char kModifiedChecksum[] = "6844019e07b83cc01723415f58218d06";
#else
- constexpr char kOriginalChecksum[] = "ccf6667b34ec2452bea0b5f1a0194191";
- constexpr char kModifiedChecksum[] = "1bbdb473d0757843e82053b0bd3298bc";
+ constexpr char kOriginalChecksum[] = "12127303aecd80c6288460f7c0d79f3f";
+ constexpr char kModifiedChecksum[] = "73d06ff4c665fe85029acef30240dcca";
#endif
{
diff --git a/fpdfsdk/fpdf_edit_embeddertest.cpp b/fpdfsdk/fpdf_edit_embeddertest.cpp
index 3ec157c..ee755a4 100644
--- a/fpdfsdk/fpdf_edit_embeddertest.cpp
+++ b/fpdfsdk/fpdf_edit_embeddertest.cpp
@@ -44,45 +44,32 @@
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
static constexpr char kBottomTextChecksum[] =
- "5df7be86df1e18819723cdd9c81c2c7d";
-#else
-#if defined(OS_WIN)
-static constexpr char kBottomTextChecksum[] =
- "08d1ff3e5a42801bee6077fd366bef00";
+ "84461cd5d952b6ae3d57a5070da84e19";
#elif defined(OS_APPLE)
static constexpr char kBottomTextChecksum[] =
- "324e1db8164a040cf6104538baa95ba6";
+ "81636489006a31fcb00cf29efcdf7909";
#else
static constexpr char kBottomTextChecksum[] =
- "eacaa24573b8ce997b3882595f096f00";
+ "891dcb6e914c8360998055f1f47c9727";
#endif
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
-const char kFirstRemovedChecksum[] = "0c79dc1065b1d06991e3ac4aaa35d25c";
-#else
-#if defined(OS_WIN)
-const char kFirstRemovedChecksum[] = "aae6c5334721f90ec30d3d59f4ef7deb";
+const char kFirstRemovedChecksum[] = "f46cbf12eb4e9bbdc3a5d8e1f2103446";
#elif defined(OS_APPLE)
-const char kFirstRemovedChecksum[] = "17ca3778fd8bb395b46532f1fa17f702";
+const char kFirstRemovedChecksum[] = "a1dc2812692fcc7ee4f01ca77435df9d";
#else
-const char kFirstRemovedChecksum[] = "b76df015fe88009c3c342395df96abf1";
+const char kFirstRemovedChecksum[] = "e1477dc3b5b3b9c560814c4d1135a02b";
#endif
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
const wchar_t kLoadedFontText[] = L"I am testing my loaded font, WEE.";
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
-const char kLoadedFontTextChecksum[] = "a1dffe52c1b9ded5fe8d77eb10d8cc19";
-#else
-#if defined(OS_WIN)
-const char kLoadedFontTextChecksum[] = "d60ba39f9698e32360d99e727dd93165";
+const char kLoadedFontTextChecksum[] = "fc2334c350cbd0d2ae6076689da09741";
#elif defined(OS_APPLE)
-const char kLoadedFontTextChecksum[] = "fc921c0bbdde73986ac13c15a85db4c3";
+const char kLoadedFontTextChecksum[] = "0f3e4a7d71f9e7eb8a1a0d69403b9848";
#else
-const char kLoadedFontTextChecksum[] = "70592859010ffbf532a2237b8118bcc4";
+const char kLoadedFontTextChecksum[] = "d58570cc045dfb818b92cbabbd1a364c";
#endif
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
const char kRedRectangleChecksum[] = "66d02eaa6181e2c069ce2ea99beda497";
@@ -195,7 +182,7 @@
num_cids_checked += last_cid - cid + 1;
}
// Make sure we have a good amount of cids described
- EXPECT_GT(num_cids_checked, 900);
+ EXPECT_GT(num_cids_checked, 200);
}
CPDF_Document* cpdf_doc() { return cpdf_doc_; }
@@ -747,16 +734,12 @@
ASSERT_EQ(2, FPDFPage_CountObjects(page));
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
- const char kChangedChecksum[] = "6bc5171f4eb329474989c6ccfa3d6303";
-#else
-#if defined(OS_WIN)
- const char kChangedChecksum[] = "3137fdb27962671f5c3963a5e965eff5";
+ const char kChangedChecksum[] = "49c8602cb60508009a34d0caaac63bb4";
#elif defined(OS_APPLE)
- const char kChangedChecksum[] = "904132275a1144ea06b0694537c80b4c";
+ const char kChangedChecksum[] = "b720e83476fd6819d47c533f1f43c728";
#else
- const char kChangedChecksum[] = "a0c4ea6620772991f66bf7130379b08a";
+ const char kChangedChecksum[] = "9a85b9354a69c61772ed24151c140f46";
#endif
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
{
ScopedFPDFBitmap page_bitmap = RenderPage(page);
CompareBitmap(page_bitmap.get(), 200, 200, kChangedChecksum);
@@ -809,19 +792,14 @@
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
static constexpr char kOriginalChecksum[] =
- "1e08d555f4863ff34a90f849c9464ed2";
-#else
-#if defined(OS_WIN)
- static constexpr char kOriginalChecksum[] =
- "220bf2086398fc46ac094952b244c8d9";
+ "92ff84385a0f986eacfa4bbecf8d7a7a";
#elif defined(OS_APPLE)
static constexpr char kOriginalChecksum[] =
- "53cbaad93551ef2ccc27ddd63f2ca2b3";
+ "ae7a25c85e0e2dd0c5cb9dd5cd37f6df";
#else
static constexpr char kOriginalChecksum[] =
- "ba1936fa8ca1e8cca108da76ff3500a6";
+ "7af7fe5b281298261eb66ac2d22f5054";
#endif
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
{
// When opened before any editing and saving, the clipping path is rendered.
ScopedFPDFBitmap original_bitmap = RenderPage(page);
@@ -882,19 +860,14 @@
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
static constexpr char kOriginalChecksum[] =
- "c17ce567e0fd2ecd14352cf56d8d574b";
-#else
-#if defined(OS_WIN)
- static constexpr char kOriginalChecksum[] =
- "297c5e52c38802106d570e35f94b5cfd";
+ "1e022a0360f053ecb41cc431a36834a6";
#elif defined(OS_APPLE)
static constexpr char kOriginalChecksum[] =
- "6a11148c99a141eea7c2b91e6987eb97";
+ "1226bc2b8072622eb28f52321876e814";
#else
static constexpr char kOriginalChecksum[] =
- "75b6f6da7c24f2e395edb1c7d81dc906";
+ "c5241eef60b9eac68ed1f2a5fd002703";
#endif
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
{
// When opened before any editing and saving, the text object is rendered.
ScopedFPDFBitmap original_bitmap = RenderPage(page);
@@ -1091,16 +1064,14 @@
{
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
static constexpr char kOriginalChecksum[] =
- "748ed321a485d246ca6260b9e30dd200";
-#else
-#if defined(OS_APPLE)
+ "8a8bed7820764522955f422e27f4292f";
+#elif defined(OS_APPLE)
static constexpr char kOriginalChecksum[] =
- "adf815e53c788a5272b4df07c610a1da";
+ "966579fb98206858ce2f0a1f94a74d05";
#else
static constexpr char kOriginalChecksum[] =
- "41647268d5911d049801803b15c2dfb0";
-#endif // defined(OS_APPLE)
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
+ "3d5a3de53d5866044c2b6bf339742c97";
+#endif
ScopedFPDFBitmap page_bitmap = RenderPage(page);
CompareBitmap(page_bitmap.get(), 200, 200, kOriginalChecksum);
}
@@ -1140,22 +1111,20 @@
EXPECT_EQ(11, FPDFPage_CountObjects(page));
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
static constexpr char kNonPrimesChecksum[] =
- "e2927fe2b7bbb595aca2a0e19ef3f1e8";
+ "1573b85dd9a2c59401c1c30abbee3b25";
static constexpr char kNonPrimesAfterSaveChecksum[] =
- "e2927fe2b7bbb595aca2a0e19ef3f1e8";
-#else
-#if defined(OS_APPLE)
+ "1573b85dd9a2c59401c1c30abbee3b25";
+#elif defined(OS_APPLE)
static constexpr char kNonPrimesChecksum[] =
- "d29e2ddff56e0d12f340794d26796400";
+ "6e19a4dd674b522cd39cf41956559bd6";
static constexpr char kNonPrimesAfterSaveChecksum[] =
- "10eff2cd0037b661496981779601fa6f";
+ "3cb35c681f8fb5a43a49146ac7caa818";
#else
static constexpr char kNonPrimesChecksum[] =
- "67ab13115d0cc34e99a1003c28047b40";
+ "bc8623c052f12376c3d8dd09a6cd27df";
static constexpr char kNonPrimesAfterSaveChecksum[] =
- "67ab13115d0cc34e99a1003c28047b40";
-#endif // defined(OS_APPLE)
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
+ "bc8623c052f12376c3d8dd09a6cd27df";
+#endif
{
ScopedFPDFBitmap page_bitmap = RenderPage(page);
CompareBitmap(page_bitmap.get(), 200, 200, kNonPrimesChecksum);
@@ -1430,16 +1399,12 @@
// Verify the "Hello, world!" text is gone.
ASSERT_EQ(2, FPDFPage_CountObjects(page));
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
- const char kHelloRemovedChecksum[] = "deed7dc2754dc80930f3b05e2ac86c94";
-#else
-#if defined(OS_WIN)
- const char kHelloRemovedChecksum[] = "55c45c5f13230f504c2e3b9e8d0347a0";
+ const char kHelloRemovedChecksum[] = "fc2a40a3d1edfe6e972be104b5ae87ad";
#elif defined(OS_APPLE)
- const char kHelloRemovedChecksum[] = "3b3b27602a86dfe5996a33c42c59885b";
+ const char kHelloRemovedChecksum[] = "5508c2f06d104050f74f655693e38c2c";
#else
- const char kHelloRemovedChecksum[] = "95b92950647a2190e1230911e7a1a0e9";
+ const char kHelloRemovedChecksum[] = "a8cd82499cf744e0862ca468c9d4ceb8";
#endif
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
{
ScopedFPDFBitmap page_bitmap = RenderPage(page);
CompareBitmap(page_bitmap.get(), 200, 200, kHelloRemovedChecksum);
@@ -1592,14 +1557,12 @@
}
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
- const char kStream1RemovedChecksum[] = "89358c444a398b0b56b35738edd8fe43";
+ const char kStream1RemovedChecksum[] = "7fe07f182b37d40afc6ae36a4e89fe73";
+#elif defined(OS_APPLE)
+ const char kStream1RemovedChecksum[] = "3cdc75af44c15bed80998facd6e674c9";
#else
-#if defined(OS_APPLE)
- const char kStream1RemovedChecksum[] = "0e8856ca9abc7049412e64f9230c7c43";
-#else
- const char kStream1RemovedChecksum[] = "e86a3efc160ede6cfcb1f59bcacf1105";
-#endif // defined(OS_APPLE)
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
+ const char kStream1RemovedChecksum[] = "b474826df1acedb05c7b82e1e49e64a6";
+#endif
{
ScopedFPDFBitmap page_bitmap = RenderPage(page);
CompareBitmap(page_bitmap.get(), 200, 200, kStream1RemovedChecksum);
@@ -2106,16 +2069,12 @@
// Render and check the result.
ScopedFPDFBitmap bitmap = RenderLoadedPage(page);
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
- const char kChecksum[] = "d082f9756c86bb47e1abbc2b1df7138a";
-#else
-#if defined(OS_WIN)
- const char kChecksum[] = "74dd9c393b8b2578d2b7feb032b7daad";
+ const char kChecksum[] = "3490f699d894351a554d79e1fcdf7981";
#elif defined(OS_APPLE)
- const char kChecksum[] = "e55bcd1facb7243dc6e16dd5f912265b";
+ const char kChecksum[] = "279693baca9f48da2d75a8e289aed58e";
#else
- const char kChecksum[] = "aa71b09b93b55f467f1290e5111babee";
+ const char kChecksum[] = "fe415d47945c10b9cc8e9ca08887369e";
#endif
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
CompareBitmap(bitmap.get(), 200, 200, kChecksum);
UnloadPage(page);
}
@@ -2300,14 +2259,12 @@
{
ScopedFPDFBitmap page_bitmap = RenderPage(page.get());
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
- static constexpr char md5[] = "285cf09ca5600fc4ec061dc5ad5c6400";
+ static constexpr char md5[] = "fa64eb3808b541342496281277fad5f2";
#else
-#if defined(OS_WIN)
- static constexpr char md5[] = "5f8228bda9b4289240112a93eae1c2fb";
-#elif defined(OS_APPLE)
- static constexpr char md5[] = "26a516d923b0a18fbea0a24e3aca5562";
+#if defined(OS_APPLE)
+ static constexpr char md5[] = "983baaa1f688eff7a14b1bf91c171a1a";
#else
- static constexpr char md5[] = "ad25881ed8ea4f0e3b22963a7beeda51";
+ static constexpr char md5[] = "161523e196eb5341604cd73e12c97922";
#endif
#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
CompareBitmap(page_bitmap.get(), 612, 792, md5);
@@ -2328,16 +2285,12 @@
{
ScopedFPDFBitmap page_bitmap = RenderPage(page.get());
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
- static constexpr char md5[] = "177285dd8cdaf476683173fce64034ea";
-#else
-#if defined(OS_WIN)
- static constexpr char md5[] = "8838d0af7eb87b6930c16941f2eeec81";
+ static constexpr char md5[] = "abc65660389911aab95550ca8cd97a2b";
#elif defined(OS_APPLE)
- static constexpr char md5[] = "532024c9ded47843313bb64a060118f3";
+ static constexpr char md5[] = "e0b3493c5c16e41d0d892ffb48e63fba";
#else
- static constexpr char md5[] = "ca120ec6aeabfe96934e103890811ffc";
+ static constexpr char md5[] = "1fbf772dca8d82b960631e6683934964";
#endif
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
CompareBitmap(page_bitmap.get(), 612, 792, md5);
EXPECT_TRUE(FPDF_SaveAsCopy(document(), this, 0));
@@ -2412,18 +2365,15 @@
TEST_F(FPDFEditEmbedderTest, SetTextRenderMode) {
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
- const char kOriginalChecksum[] = "4960c720a6cdb7b2b16be809cce58aff";
- const char kStrokeChecksum[] = "4c099cf9abc1565806bd7cd1cca5ac1a";
-#else
-#if defined(OS_WIN)
- const char kOriginalChecksum[] = "de6e86bad3e9fda753a8471a45cfbb58";
+ const char kOriginalChecksum[] = "bf87e8b36380ebd96ca429213fa23a09";
+ const char kStrokeChecksum[] = "d16eb1bb4748eeb5fb801594da70d519";
#elif defined(OS_APPLE)
- const char kOriginalChecksum[] = "2453a9a524ee3f5f525dd21345ec4d81";
+ const char kOriginalChecksum[] = "c488514ce0fc949069ff560407edacd2";
+ const char kStrokeChecksum[] = "e06ee84aeebe926e8c980b7822027e8a";
#else
- const char kOriginalChecksum[] = "5a012d2920ac075c39ffa9437ea42faa";
+ const char kOriginalChecksum[] = "97a4fcf3c9581e19917895631af31d41";
+ const char kStrokeChecksum[] = "e06ee84aeebe926e8c980b7822027e8a";
#endif
- const char kStrokeChecksum[] = "412e52e621b46bd77baf2162e1fb1a1d";
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
{
ASSERT_TRUE(OpenDocument("text_render_mode.pdf"));
@@ -2650,20 +2600,15 @@
TEST_F(FPDFEditEmbedderTest, ModifyFormObject) {
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
- const char kOrigChecksum[] = "6332486c11a830d52163e453cac3f0f7";
- const char kNewChecksum[] = "9851fb1b59d91655ac8961ac89f383ae";
-#else
-#if defined(OS_WIN)
- const char kOrigChecksum[] = "9993d8fd85dfc1f9522c4e5f1533ed78";
- const char kNewChecksum[] = "ba6450c9060786c5aca3b7552ba7ec9e";
+ const char kOrigChecksum[] = "e15086e54078e4d22fa3fb12105c579e";
+ const char kNewChecksum[] = "7282fe98693c0a7ad2c1b3f3f9563977";
#elif defined(OS_APPLE)
- const char kOrigChecksum[] = "98c13e90ec592eea79b6458c0ca2822b";
- const char kNewChecksum[] = "8cbad8c9281e1f3bac2306a5beb1fdcd";
+ const char kOrigChecksum[] = "a637057185f50aac1aa5490f726aef95";
+ const char kNewChecksum[] = "8ad9d79b02b609ff734e2a2195c96e2d";
#else
- const char kOrigChecksum[] = "26e65fb47da5674d1b7284932c3c94d6";
- const char kNewChecksum[] = "fd408e99373b275316f7816ae8d35842";
-#endif // defined(OS_WIN)
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
+ const char kOrigChecksum[] = "34a9ec0a9581a7970e073c0bcc4ca676";
+ const char kNewChecksum[] = "609b5632a21c886fa93182dbc290bf7a";
+#endif
ASSERT_TRUE(OpenDocument("form_object.pdf"));
FPDF_PAGE page = LoadPage(0);
@@ -2888,7 +2833,7 @@
const CPDF_Dictionary* font_dict = typed_font->GetFontDict();
EXPECT_EQ("Font", font_dict->GetNameFor("Type"));
EXPECT_EQ("Type1", font_dict->GetNameFor("Subtype"));
- EXPECT_EQ("TimesNewRomanPS-BoldMT", font_dict->GetNameFor("BaseFont"));
+ EXPECT_EQ("Tinos-Bold", font_dict->GetNameFor("BaseFont"));
ASSERT_TRUE(font_dict->KeyExist("FirstChar"));
ASSERT_TRUE(font_dict->KeyExist("LastChar"));
EXPECT_EQ(32, font_dict->GetIntegerFor("FirstChar"));
@@ -2917,7 +2862,7 @@
const CPDF_Dictionary* font_dict = typed_font->GetFontDict();
EXPECT_EQ("Font", font_dict->GetNameFor("Type"));
EXPECT_EQ("TrueType", font_dict->GetNameFor("Subtype"));
- EXPECT_EQ("CourierNewPSMT", font_dict->GetNameFor("BaseFont"));
+ EXPECT_EQ("Cousine-Regular", font_dict->GetNameFor("BaseFont"));
ASSERT_TRUE(font_dict->KeyExist("FirstChar"));
ASSERT_TRUE(font_dict->KeyExist("LastChar"));
EXPECT_EQ(32, font_dict->GetIntegerFor("FirstChar"));
@@ -2947,7 +2892,7 @@
const CPDF_Dictionary* font_dict = typed_font->GetFontDict();
EXPECT_EQ("Font", font_dict->GetNameFor("Type"));
EXPECT_EQ("Type0", font_dict->GetNameFor("Subtype"));
- EXPECT_EQ("TimesNewRomanPSMT-Identity-H", font_dict->GetNameFor("BaseFont"));
+ EXPECT_EQ("Tinos-Regular-Identity-H", font_dict->GetNameFor("BaseFont"));
EXPECT_EQ("Identity-H", font_dict->GetNameFor("Encoding"));
const CPDF_Array* descendant_array =
font_dict->GetArrayFor("DescendantFonts");
@@ -2958,7 +2903,7 @@
const CPDF_Dictionary* cidfont_dict = descendant_array->GetDictAt(0);
EXPECT_EQ("Font", cidfont_dict->GetNameFor("Type"));
EXPECT_EQ("CIDFontType0", cidfont_dict->GetNameFor("Subtype"));
- EXPECT_EQ("TimesNewRomanPSMT", cidfont_dict->GetNameFor("BaseFont"));
+ EXPECT_EQ("Tinos-Regular", cidfont_dict->GetNameFor("BaseFont"));
const CPDF_Dictionary* cidinfo_dict =
cidfont_dict->GetDictFor("CIDSystemInfo");
ASSERT_TRUE(cidinfo_dict);
@@ -2995,7 +2940,7 @@
const CPDF_Dictionary* font_dict = typed_font->GetFontDict();
EXPECT_EQ("Font", font_dict->GetNameFor("Type"));
EXPECT_EQ("Type0", font_dict->GetNameFor("Subtype"));
- EXPECT_EQ("Arial-ItalicMT", font_dict->GetNameFor("BaseFont"));
+ EXPECT_EQ("Arimo-Italic", font_dict->GetNameFor("BaseFont"));
EXPECT_EQ("Identity-H", font_dict->GetNameFor("Encoding"));
const CPDF_Array* descendant_array =
font_dict->GetArrayFor("DescendantFonts");
@@ -3006,7 +2951,7 @@
const CPDF_Dictionary* cidfont_dict = descendant_array->GetDictAt(0);
EXPECT_EQ("Font", cidfont_dict->GetNameFor("Type"));
EXPECT_EQ("CIDFontType2", cidfont_dict->GetNameFor("Subtype"));
- EXPECT_EQ("Arial-ItalicMT", cidfont_dict->GetNameFor("BaseFont"));
+ EXPECT_EQ("Arimo-Italic", cidfont_dict->GetNameFor("BaseFont"));
const CPDF_Dictionary* cidinfo_dict =
cidfont_dict->GetDictFor("CIDSystemInfo");
ASSERT_TRUE(cidinfo_dict);
@@ -3063,16 +3008,12 @@
}
ScopedFPDFBitmap page_bitmap2 = RenderPage(page);
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
- const char kInsertTrueTypeChecksum[] = "f2ee263957a5584f3c72424e8683ac8c";
-#else
-#if defined(OS_WIN)
- const char kInsertTrueTypeChecksum[] = "2199b579c49ab5f80c246a586a80ee90";
+ const char kInsertTrueTypeChecksum[] = "4f9a6c7752ac7d4e4c731260fdb5af15";
#elif defined(OS_APPLE)
- const char kInsertTrueTypeChecksum[] = "9a1a7dfebe659513691aadd0d95b8d50";
+ const char kInsertTrueTypeChecksum[] = "c7e2271a7f30e5b919a13ead47cea105";
#else
- const char kInsertTrueTypeChecksum[] = "c1d10cce1761c4a998a16b2562030568";
+ const char kInsertTrueTypeChecksum[] = "683f4a385a891494100192cb338b11f0";
#endif
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
CompareBitmap(page_bitmap2.get(), 612, 792, kInsertTrueTypeChecksum);
EXPECT_TRUE(FPDFPage_GenerateContent(page));
@@ -3109,8 +3050,9 @@
CFX_Font CIDfont;
{
// First, get the data from the font
- CIDfont.LoadSubst("IPAGothic", 1, 0, 400, 0, FX_CodePage::kShiftJIS, 0);
- EXPECT_EQ("IPAGothic", CIDfont.GetFaceName());
+ CIDfont.LoadSubst("Noto Sans CJK JP", 1, 0, 400, 0, FX_CodePage::kShiftJIS,
+ 0);
+ EXPECT_EQ("Noto Sans CJK JP", CIDfont.GetFaceName());
pdfium::span<const uint8_t> span = CIDfont.GetFontSpan();
// Load the data into a FPDF_Font.
@@ -3143,9 +3085,9 @@
// Check that the text renders properly.
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
- static constexpr char md5[] = "683eefd6c31206de23b7f709b66e6daf";
+ static constexpr char md5[] = "2e174d17de96a760d42ca3a06acbf36a";
#else
- static constexpr char md5[] = "4d7ad0dc333fde3987b79122c00a3f2a";
+ static constexpr char md5[] = "84d31d11b76845423a2cfc1879c0fbb9";
#endif
{
ScopedFPDFBitmap page_bitmap = RenderPage(page);
diff --git a/fpdfsdk/fpdf_flatten_embeddertest.cpp b/fpdfsdk/fpdf_flatten_embeddertest.cpp
index c38e795..e815193 100644
--- a/fpdfsdk/fpdf_flatten_embeddertest.cpp
+++ b/fpdfsdk/fpdf_flatten_embeddertest.cpp
@@ -71,24 +71,18 @@
TEST_F(FPDFFlattenEmbedderTest, BUG_889099) {
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
- static constexpr char kPageHash[] = "ee08bafede5faf129e866cbf173bb0f3";
+ static constexpr char kPageHash[] = "1ce2e06c12972973b8f04a2f79245313";
static constexpr char kFlattenedPageHash[] =
- "e4b95ee3d450cf9ede225a2d16d101f0";
-#else
-#if defined(OS_WIN)
- static constexpr char kPageHash[] = "8c6e1dab0a15072f2c9c0ca240fdc739";
- static constexpr char kFlattenedPageHash[] =
- "9fb932ce7f370c0e68eec0a5d4d76271";
+ "e03b1b8157c30c77ea94f9c24dc85a00";
#elif defined(OS_APPLE)
- static constexpr char kPageHash[] = "d43f54c60b325726392a558f861402a9";
+ static constexpr char kPageHash[] = "049ed3f1e21fc72f929af3410c64bc8f";
static constexpr char kFlattenedPageHash[] =
- "627f143efb920a5e7ddd311e963b9c66";
+ "41debc60cf2a8f74c710ec6082d77b18";
#else
- static constexpr char kPageHash[] = "51f35e80dbc8a69a024b5a02aa64d463";
+ static constexpr char kPageHash[] = "3db87245e3f4e37f4cb18654bbe22d97";
static constexpr char kFlattenedPageHash[] =
- "ef01f57507662ec9aef7cc7cff92f96c";
+ "0832157462ea70fbbf053e14b1d6457f";
#endif
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
ASSERT_TRUE(OpenDocument("bug_889099.pdf"));
FPDF_PAGE page = LoadPage(0);
diff --git a/fpdfsdk/fpdf_formfill_embeddertest.cpp b/fpdfsdk/fpdf_formfill_embeddertest.cpp
index 514ddd2..a85a14e 100644
--- a/fpdfsdk/fpdf_formfill_embeddertest.cpp
+++ b/fpdfsdk/fpdf_formfill_embeddertest.cpp
@@ -1321,27 +1321,20 @@
TEST_F(FPDFFormFillEmbedderTest, FormText) {
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
const char kFocusedTextFormWithAbcChecksum[] =
- "42af2135e20deb09cbdbfb6418d86382";
+ "199536b979a42da3c2745297f6e87a77";
const char kUnfocusedTextFormWithAbcChecksum[] =
- "4a961599a512a08468b26b89d389c30a";
-#else
-#if defined(OS_WIN)
- const char kFocusedTextFormWithAbcChecksum[] =
- "29d1c3fd226ca6a69597f75937690320";
- const char kUnfocusedTextFormWithAbcChecksum[] =
- "5e678a55912cb568fd677bf34abb8727";
+ "574aa06445957315f0dadd24a0c59811";
#elif defined(OS_APPLE)
const char kFocusedTextFormWithAbcChecksum[] =
- "c6e4a2fb10661116771ee74f54d9c5e0";
+ "9fb14198d75ca0a107060c60ca21b0c7";
const char kUnfocusedTextFormWithAbcChecksum[] =
- "e0c8d5099301d7c10ed831a43e974d9d";
+ "3c3209357e0c057a0620afa7d83eb784";
#else
const char kFocusedTextFormWithAbcChecksum[] =
- "11487d5597599a26e8912b9c1d9422cb";
+ "6e6f790bb14c4fc6107faf8c17d23dbd";
const char kUnfocusedTextFormWithAbcChecksum[] =
- "bffe0ecea9a533f217047ee41d6be466";
+ "94b7e10ac8c662b73e33628ca2f5e63b";
#endif
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
{
ASSERT_TRUE(OpenDocument("text_form.pdf"));
FPDF_PAGE page = LoadPage(0);
@@ -1414,16 +1407,12 @@
TEST_F(FPDFFormFillEmbedderTest, RemoveFormFieldHighlight) {
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
- const char kMd5NoHighlight[] = "6fe3921e4fe3f4190c248acf34e9bd3b";
+ const char kMd5NoHighlight[] = "013aa241c39c02505d9525550be04e48";
+#elif defined(OS_APPLE)
+ const char kMd5NoHighlight[] = "5c82aa43e3b478aa1e4c94bb9ef1f11f";
#else
-#if defined(OS_APPLE)
- const char kMd5NoHighlight[] = "5e4b87c5b304c6fa9bd5f6311260494e";
-#elif defined(OS_WIN)
- const char kMd5NoHighlight[] = "3ec0938828e0a37ef23f687ee95a80e1";
-#else
- const char kMd5NoHighlight[] = "006010c318457810a518aa5e0b33c498";
+ const char kMd5NoHighlight[] = "a6268304f7eedfa9ee98fac3caaf2efb";
#endif
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
ASSERT_TRUE(OpenDocument("text_form.pdf"));
FPDF_PAGE page = LoadPage(0);
diff --git a/fpdfsdk/fpdf_text_embeddertest.cpp b/fpdfsdk/fpdf_text_embeddertest.cpp
index 927e126..b64d9d7 100644
--- a/fpdfsdk/fpdf_text_embeddertest.cpp
+++ b/fpdfsdk/fpdf_text_embeddertest.cpp
@@ -119,10 +119,10 @@
FPDFText_GetCharBox(textpage, 4, nullptr, nullptr, nullptr, nullptr));
EXPECT_TRUE(FPDFText_GetCharBox(textpage, 4, &left, &right, &bottom, &top));
- EXPECT_NEAR(41.071, left, 0.001);
- EXPECT_NEAR(46.243, right, 0.001);
- EXPECT_NEAR(49.844, bottom, 0.001);
- EXPECT_NEAR(55.520, top, 0.001);
+ EXPECT_NEAR(41.120, left, 0.001);
+ EXPECT_NEAR(46.208, right, 0.001);
+ EXPECT_NEAR(49.892, bottom, 0.001);
+ EXPECT_NEAR(55.652, top, 0.001);
FS_RECTF rect = {4.0f, 1.0f, 3.0f, 2.0f};
EXPECT_FALSE(FPDFText_GetLooseCharBox(nullptr, 4, &rect));
@@ -171,10 +171,10 @@
bottom = 0.0;
top = 0.0;
EXPECT_TRUE(FPDFText_GetRect(textpage, 1, &left, &top, &right, &bottom));
- EXPECT_NEAR(20.847, left, 0.001);
- EXPECT_NEAR(135.167, right, 0.001);
- EXPECT_NEAR(96.655, bottom, 0.001);
- EXPECT_NEAR(111.648, top, 0.001);
+ EXPECT_NEAR(20.800, left, 0.001);
+ EXPECT_NEAR(135.040, right, 0.001);
+ EXPECT_NEAR(96.688, bottom, 0.001);
+ EXPECT_NEAR(111.600, top, 0.001);
// Test out of range indicies set outputs to (0.0, 0.0, 0.0, 0.0).
left = -1.0;
@@ -210,7 +210,7 @@
memset(buffer, 0xbd, sizeof(buffer));
EXPECT_EQ(
9, FPDFText_GetBoundedText(textpage, 41.0, 56.0, 82.0, 48.0, buffer, 9));
- EXPECT_TRUE(check_unsigned_shorts(kHelloGoodbyeText + 4, buffer, 9));
+ EXPECT_TRUE(check_unsigned_shorts(kHelloGoodbyeText + 4, buffer, 8));
EXPECT_EQ(0xbdbd, buffer[9]);
memset(buffer, 0xbd, sizeof(buffer));
@@ -623,10 +623,10 @@
double top = 0.0;
double bottom = 0.0;
EXPECT_TRUE(FPDFLink_GetRect(pagelink, 0, 0, &left, &top, &right, &bottom));
- EXPECT_NEAR(50.791, left, 0.001);
- EXPECT_NEAR(187.963, right, 0.001);
- EXPECT_NEAR(97.624, bottom, 0.001);
- EXPECT_NEAR(108.736, top, 0.001);
+ EXPECT_NEAR(50.828, left, 0.001);
+ EXPECT_NEAR(187.904, right, 0.001);
+ EXPECT_NEAR(97.516, bottom, 0.001);
+ EXPECT_NEAR(108.700, top, 0.001);
// Check that valid link with invalid rect index leaves parameters unchanged.
left = -1.0;
@@ -1557,8 +1557,8 @@
TEST_F(FPDFTextEmbedderTest, CharBox) {
// For a size 12 letter 'A'.
- constexpr double kExpectedCharWidth = 8.436;
- constexpr double kExpectedCharHeight = 6.77;
+ constexpr double kExpectedCharWidth = 8.460;
+ constexpr double kExpectedCharHeight = 6.600;
constexpr float kExpectedLooseCharWidth = 8.664f;
constexpr float kExpectedLooseCharHeight = 12.0f;
@@ -1598,7 +1598,7 @@
EXPECT_FLOAT_EQ(kExpectedLooseCharHeight, rect.top - rect.bottom);
ASSERT_TRUE(FPDFText_GetLooseCharBox(text_page.get(), 8, &rect));
EXPECT_FLOAT_EQ(kExpectedLooseCharWidth, rect.right - rect.left);
- EXPECT_FLOAT_EQ(kExpectedLooseCharHeight, rect.top - rect.bottom);
+ EXPECT_NEAR(kExpectedLooseCharHeight, rect.top - rect.bottom, 0.00001);
}
UnloadPage(page);
diff --git a/fpdfsdk/fpdf_view_embeddertest.cpp b/fpdfsdk/fpdf_view_embeddertest.cpp
index 2f600fc..087da9d 100644
--- a/fpdfsdk/fpdf_view_embeddertest.cpp
+++ b/fpdfsdk/fpdf_view_embeddertest.cpp
@@ -1270,18 +1270,14 @@
// FPDF_NO_NATIVETEXT flag only disables native text support on macOS, therefore
// Windows and Linux rendering results remain the same as rendering with no
// flags, while the macOS rendering result doesn't.
-#if defined(OS_WIN)
- static const char kOriginalChecksum[] = "4671643caf99a1f4b6c0117ccb7bc9e7";
+#if defined(OS_APPLE)
+ static const char kOriginalChecksum[] = "0e339d606aafb63077f49e238dc27cb0";
static const char kNoNativeTextChecksum[] =
- "4671643caf99a1f4b6c0117ccb7bc9e7";
-#elif defined(OS_APPLE)
- static const char kOriginalChecksum[] = "41ada106c6133b52ea45280eaaa38ae1";
- static const char kNoNativeTextChecksum[] =
- "d64d6b0fc39a8cefc43de39da5c60b17";
+ "288502887ffc63291f35a0573b944375";
#else
- static const char kOriginalChecksum[] = "d64d6b0fc39a8cefc43de39da5c60b17";
+ static const char kOriginalChecksum[] = "288502887ffc63291f35a0573b944375";
static const char kNoNativeTextChecksum[] =
- "d64d6b0fc39a8cefc43de39da5c60b17";
+ "288502887ffc63291f35a0573b944375";
#endif
ASSERT_TRUE(OpenDocument("bug_664284.pdf"));
@@ -1402,24 +1398,18 @@
kHelloWorldChecksum);
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
- static const char kLcdTextChecksum[] = "66ecb880a880dd263ff495b28aeda0d1";
+ static const char kLcdTextChecksum[] = "fea3e59b7ac7b7a6940018497034f6cf";
static const char kNoSmoothtextChecksum[] =
- "18156d2a55ae142c3870da7229650890";
-#else
-#if defined(OS_WIN)
- static const char kLcdTextChecksum[] = "6e32f5a9c46e4e0730481081fe80617d";
- static const char kNoSmoothtextChecksum[] =
- "106cb0b6941feb3319e0e7391d02f61e";
+ "c4173cf724618e5b68efb74543519bb9";
#elif defined(OS_APPLE)
- static const char kLcdTextChecksum[] = "c38b75e16a13852aee3b97d77a0f0ee7";
+ static const char kLcdTextChecksum[] = "6eef7237f7591f07616e238422086737";
static const char kNoSmoothtextChecksum[] =
- "c38b75e16a13852aee3b97d77a0f0ee7";
+ "6eef7237f7591f07616e238422086737";
#else
- static const char kLcdTextChecksum[] = "825e881f39e48254e64e2808987a6b8c";
+ static const char kLcdTextChecksum[] = "09152e25e51fa8ca31fc28d0937bf477";
static const char kNoSmoothtextChecksum[] =
- "40740e0f219f6834581119d2ceb48911";
+ "37d0b34e1762fdda4c05ce7ea357b828";
#endif
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
TestRenderPageBitmapWithFlags(page, FPDF_LCD_TEXT, kLcdTextChecksum);
TestRenderPageBitmapWithFlags(page, FPDF_RENDER_NO_SMOOTHTEXT,
diff --git a/testing/BUILD.gn b/testing/BUILD.gn
index 76f1faa..261e6e7 100644
--- a/testing/BUILD.gn
+++ b/testing/BUILD.gn
@@ -16,6 +16,8 @@
"scoped_set_tz.h",
"string_write_stream.cpp",
"string_write_stream.h",
+ "test_fonts.cpp",
+ "test_fonts.h",
"test_loader.cpp",
"test_loader.h",
"test_support.h",
@@ -153,6 +155,7 @@
"../:pdfium_public_headers",
"../core/fdrm",
"../core/fxcrt",
+ "../core/fxge",
"../third_party:pdfium_base",
"//testing/gmock",
"//testing/gtest",
diff --git a/testing/embedder_test_constants.cpp b/testing/embedder_test_constants.cpp
index 4dc25e9..e0cf56a 100644
--- a/testing/embedder_test_constants.cpp
+++ b/testing/embedder_test_constants.cpp
@@ -9,23 +9,15 @@
namespace pdfium {
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
-#if defined(OS_LINUX) || defined(OS_CHROMEOS)
const char kAnnotationStampWithApChecksum[] =
- "db83eaadc92967e3ac9bebfc6178ca75";
+ "e4e7dc6446fa763a245e03eb5de6ed28";
+#else
+#if defined(OS_APPLE)
+const char kAnnotationStampWithApChecksum[] =
+ "d243b5d64752be0f45b86df7bd2e2708";
#else
const char kAnnotationStampWithApChecksum[] =
- "3c87b4a8e51245964357fb5f5fbc612b";
-#endif // defined(OS_LINUX) || defined(OS_CHROMEOS)
-#else
-#if defined(OS_WIN)
-const char kAnnotationStampWithApChecksum[] =
- "6712a912af61cb45809e343f59b62432";
-#elif defined(OS_APPLE)
-const char kAnnotationStampWithApChecksum[] =
- "80d7b6cc7b13a78d77a6151bc846e80b";
-#else
-const char kAnnotationStampWithApChecksum[] =
- "b42cef463483e668eaf4055a65e4f1f5";
+ "cdde6c161679ab10b07c38c1ef04b7e8";
#endif
#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
@@ -38,28 +30,20 @@
#endif
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
-const char kHelloWorldChecksum[] = "66ecb880a880dd263ff495b28aeda0d1";
-#else
-#if defined(OS_WIN)
-const char kHelloWorldChecksum[] = "795b7ce1626931aa06af0fa23b7d80bb";
+const char kHelloWorldChecksum[] = "fea3e59b7ac7b7a6940018497034f6cf";
#elif defined(OS_APPLE)
-const char kHelloWorldChecksum[] = "c38b75e16a13852aee3b97d77a0f0ee7";
+const char kHelloWorldChecksum[] = "6eef7237f7591f07616e238422086737";
#else
-const char kHelloWorldChecksum[] = "2baa4c0e1758deba1b9c908e1fbd04ed";
+const char kHelloWorldChecksum[] = "c1c548442e0e0f949c5550d89bf8ae3b";
#endif
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
-const char kHelloWorldRemovedChecksum[] = "f87c63cbbc83fbb0f5b7b1d9e67448d0";
-#else
-#if defined(OS_WIN)
-const char kHelloWorldRemovedChecksum[] = "93db13099042bafefb3c22a165bad684";
+const char kHelloWorldRemovedChecksum[] = "e51fe51cc5f03ad66f603030df9b0400";
#elif defined(OS_APPLE)
-const char kHelloWorldRemovedChecksum[] = "572b1022bb3e8f43dc671162fc62cf7f";
+const char kHelloWorldRemovedChecksum[] = "6e1cae48a2e35c521dee4ca502f48af6";
#else
-const char kHelloWorldRemovedChecksum[] = "93dcc09055f87a2792c8e3065af99a1b";
+const char kHelloWorldRemovedChecksum[] = "4a9b80f675f7f3bf2da1b02f12449e4b";
#endif
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
const char kManyRectanglesChecksum[] = "4e7e280c1597222afcb0ee3bb90ec119";
@@ -70,15 +54,11 @@
#endif
#if defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
-const char kTextFormChecksum[] = "17efe329169f5b7681fbe939894a35de";
-#else
-#if defined(OS_WIN)
-const char kTextFormChecksum[] = "d3204faa62b607f0bd3893c9c22cabcb";
+const char kTextFormChecksum[] = "f8f0817b19ef07d0404caf008964b7f2";
#elif defined(OS_APPLE)
-const char kTextFormChecksum[] = "d485541d958fef08d24e8eca3e537023";
+const char kTextFormChecksum[] = "fa2bf756942a950101fc147fc4ef3f82";
#else
-const char kTextFormChecksum[] = "b890950d4b9bc163b1a96797f3004b53";
+const char kTextFormChecksum[] = "6f86fe1dbed5965d91aec6e0b829e29f";
#endif
-#endif // defined(_SKIA_SUPPORT_) || defined(_SKIA_SUPPORT_PATHS_)
} // namespace pdfium
diff --git a/testing/embedder_test_environment.cpp b/testing/embedder_test_environment.cpp
index d96bfcb..168ad69 100644
--- a/testing/embedder_test_environment.cpp
+++ b/testing/embedder_test_environment.cpp
@@ -39,6 +39,9 @@
config.m_pUserFontPaths = nullptr;
config.m_v8EmbedderSlot = 0;
config.m_pPlatform = nullptr;
+
+ config.m_pUserFontPaths = test_fonts_.font_paths();
+
#ifdef PDF_ENABLE_V8
config.m_pIsolate = V8TestEnvironment::GetInstance()->isolate();
config.m_pPlatform = V8TestEnvironment::GetInstance()->platform();
@@ -48,6 +51,8 @@
#endif // PDF_ENABLE_V8
FPDF_InitLibraryWithConfig(&config);
+
+ test_fonts_.InstallFontMapper();
}
void EmbedderTestEnvironment::TearDown() {
diff --git a/testing/embedder_test_environment.h b/testing/embedder_test_environment.h
index 19e0808..703c003 100644
--- a/testing/embedder_test_environment.h
+++ b/testing/embedder_test_environment.h
@@ -7,6 +7,7 @@
#include "public/fpdfview.h"
#include "testing/gtest/include/gtest/gtest.h"
+#include "testing/test_fonts.h"
class EmbedderTestEnvironment : public testing::Environment {
public:
@@ -20,6 +21,9 @@
// testing::Environment:
void SetUp() override;
void TearDown() override;
+
+ private:
+ TestFonts test_fonts_;
};
#endif // TESTING_EMBEDDER_TEST_ENVIRONMENT_H_
diff --git a/testing/pdf_test_environment.cpp b/testing/pdf_test_environment.cpp
index 93bac19..4abeb36 100644
--- a/testing/pdf_test_environment.cpp
+++ b/testing/pdf_test_environment.cpp
@@ -5,8 +5,6 @@
#include "testing/pdf_test_environment.h"
#include "core/fxge/cfx_gemodule.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "testing/utils/path_service.h"
PDFTestEnvironment::PDFTestEnvironment() = default;
@@ -14,12 +12,7 @@
// testing::Environment:
void PDFTestEnvironment::SetUp() {
- ASSERT_TRUE(PathService::GetExecutableDir(&font_path_));
- font_path_.push_back(PATH_SEPARATOR);
- font_path_.append("test_fonts");
- font_paths_[0] = font_path_.c_str();
- font_paths_[1] = nullptr;
- CFX_GEModule::Create(font_paths_);
+ CFX_GEModule::Create(test_fonts_.font_paths());
}
void PDFTestEnvironment::TearDown() {
diff --git a/testing/pdf_test_environment.h b/testing/pdf_test_environment.h
index f422df5..4ee841d 100644
--- a/testing/pdf_test_environment.h
+++ b/testing/pdf_test_environment.h
@@ -5,9 +5,8 @@
#ifndef TESTING_PDF_TEST_ENVIRONMENT_H_
#define TESTING_PDF_TEST_ENVIRONMENT_H_
-#include <string>
-
#include "testing/gtest/include/gtest/gtest.h"
+#include "testing/test_fonts.h"
class PDFTestEnvironment : public testing::Environment {
public:
@@ -19,8 +18,7 @@
void TearDown() override;
private:
- std::string font_path_;
- const char* font_paths_[2];
+ TestFonts test_fonts_;
};
#endif // TESTING_PDF_TEST_ENVIRONMENT_H_
diff --git a/testing/test_fonts.cpp b/testing/test_fonts.cpp
new file mode 100644
index 0000000..2f15f90
--- /dev/null
+++ b/testing/test_fonts.cpp
@@ -0,0 +1,98 @@
+// Copyright 2021 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "testing/test_fonts.h"
+
+#include "core/fxge/cfx_fontmapper.h"
+#include "core/fxge/cfx_fontmgr.h"
+#include "core/fxge/cfx_gemodule.h"
+#include "core/fxge/systemfontinfo_iface.h"
+#include "testing/utils/path_service.h"
+
+namespace {
+
+ByteString RenameFontForTesting(const ByteString& face) {
+ ByteString result;
+ if (face.Contains("Arial") || face.Contains("Calibri") ||
+ face.Contains("Helvetica")) {
+ // Sans
+ result = "Arimo";
+ } else if (face.IsEmpty() || face.Contains("Times")) {
+ // Serif
+ result = "Tinos";
+ } else if (face.Contains("Courier")) {
+ // Mono
+ result = "Cousine";
+ } else {
+ // Some tests expect the fallback font.
+ return face;
+ }
+
+ if (face.Contains("Bold"))
+ result += " Bold";
+
+ if (face.Contains("Italic") || face.Contains("Oblique"))
+ result += " Italic";
+
+ return result;
+}
+
+// Intercepts font requests and renames font faces to those in test_fonts.
+class SystemFontInfoWrapper : public SystemFontInfoIface {
+ public:
+ explicit SystemFontInfoWrapper(std::unique_ptr<SystemFontInfoIface> impl)
+ : impl_(std::move(impl)) {}
+ ~SystemFontInfoWrapper() = default;
+
+ bool EnumFontList(CFX_FontMapper* pMapper) override {
+ return impl_->EnumFontList(pMapper);
+ }
+ void* MapFont(int weight,
+ bool bItalic,
+ FX_Charset charset,
+ int pitch_family,
+ const ByteString& face) override {
+ return impl_->MapFont(weight, bItalic, charset, pitch_family,
+ RenameFontForTesting(face));
+ }
+ void* GetFont(const ByteString& face) override {
+ return impl_->GetFont(RenameFontForTesting(face));
+ }
+ uint32_t GetFontData(void* hFont,
+ uint32_t table,
+ pdfium::span<uint8_t> buffer) override {
+ return impl_->GetFontData(hFont, table, buffer);
+ }
+ bool GetFaceName(void* hFont, ByteString* name) override {
+ auto face = RenameFontForTesting(*name);
+ return impl_->GetFaceName(hFont, &face);
+ }
+ bool GetFontCharset(void* hFont, FX_Charset* charset) override {
+ return impl_->GetFontCharset(hFont, charset);
+ }
+ void DeleteFont(void* hFont) override { impl_->DeleteFont(hFont); }
+
+ private:
+ std::unique_ptr<SystemFontInfoIface> impl_;
+};
+
+} // namespace
+
+TestFonts::TestFonts() {
+ if (!PathService::GetExecutableDir(&font_path_))
+ return;
+ font_path_.push_back(PATH_SEPARATOR);
+ font_path_.append("test_fonts");
+ font_paths_ = std::make_unique<const char*[]>(2);
+ font_paths_[0] = font_path_.c_str();
+ font_paths_[1] = nullptr;
+}
+
+TestFonts::~TestFonts() = default;
+
+void TestFonts::InstallFontMapper() {
+ auto* font_mapper = CFX_GEModule::Get()->GetFontMgr()->GetBuiltinMapper();
+ font_mapper->SetSystemFontInfo(std::make_unique<SystemFontInfoWrapper>(
+ font_mapper->TakeSystemFontInfo()));
+}
diff --git a/testing/test_fonts.h b/testing/test_fonts.h
new file mode 100644
index 0000000..934c996
--- /dev/null
+++ b/testing/test_fonts.h
@@ -0,0 +1,25 @@
+// Copyright 2021 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef TESTING_TEST_FONTS_H_
+#define TESTING_TEST_FONTS_H_
+
+#include <memory>
+#include <string>
+
+class TestFonts {
+ public:
+ TestFonts();
+ ~TestFonts();
+
+ const char** font_paths() const { return font_paths_.get(); }
+
+ void InstallFontMapper();
+
+ private:
+ std::string font_path_;
+ std::unique_ptr<const char*[]> font_paths_;
+};
+
+#endif // TESTING_TEST_FONTS_H_