Commit f9aa0b87 authored by derat@chromium.org's avatar derat@chromium.org

linux: Add some font-family-related FontRenderParams tests.

BUG=396877

Review URL: https://codereview.chromium.org/415043007

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@285463 0039d316-1c4b-4281-b951-d872f2087c98
parent 454ffd8a
......@@ -317,4 +317,44 @@ TEST_F(FontRenderParamsTest, NoFontconfigMatch) {
EXPECT_EQ(query.families[0], suggested_family);
}
TEST_F(FontRenderParamsTest, MissingFamily) {
// With Arial and Verdana installed, request (in order) Helvetica, Arial, and
// Verdana and check that Arial is returned.
ASSERT_TRUE(LoadSystemFont("arial.ttf"));
ASSERT_TRUE(LoadSystemFont("verdana.ttf"));
FontRenderParamsQuery query(false);
query.families.push_back("Helvetica");
query.families.push_back("Arial");
query.families.push_back("Verdana");
std::string suggested_family;
GetFontRenderParams(query, &suggested_family);
EXPECT_EQ("Arial", suggested_family);
}
TEST_F(FontRenderParamsTest, SubstituteFamily) {
// Configure Fontconfig to use Verdana for both Helvetica and Arial.
ASSERT_TRUE(LoadSystemFont("arial.ttf"));
ASSERT_TRUE(LoadSystemFont("verdana.ttf"));
ASSERT_TRUE(LoadConfigDataIntoFontconfig(temp_dir_.path(),
std::string(kFontconfigFileHeader) +
CreateFontconfigAliasStanza("Helvetica", "Verdana") +
kFontconfigMatchHeader +
CreateFontconfigTestStanza("family", "eq", "string", "Arial") +
CreateFontconfigEditStanza("family", "string", "Verdana") +
kFontconfigMatchFooter +
kFontconfigFileFooter));
FontRenderParamsQuery query(false);
query.families.push_back("Helvetica");
std::string suggested_family;
GetFontRenderParams(query, &suggested_family);
EXPECT_EQ("Verdana", suggested_family);
query.families.clear();
query.families.push_back("Arial");
suggested_family.clear();
GetFontRenderParams(query, &suggested_family);
EXPECT_EQ("Verdana", suggested_family);
}
} // namespace gfx
......@@ -142,4 +142,14 @@ std::string CreateFontconfigTestStanza(const std::string& name,
name.c_str(), op.c_str(), type.c_str(), value.c_str(), type.c_str());
}
std::string CreateFontconfigAliasStanza(const std::string& original_family,
const std::string& preferred_family) {
return base::StringPrintf(
" <alias>\n"
" <family>%s</family>\n"
" <prefer><family>%s</family></prefer>\n"
" </alias>\n",
original_family.c_str(), preferred_family.c_str());
}
} // namespace gfx
......@@ -54,6 +54,10 @@ std::string CreateFontconfigTestStanza(const std::string& name,
const std::string& type,
const std::string& value);
// Returns a Fontconfig <alias> stanza.
std::string CreateFontconfigAliasStanza(const std::string& original_family,
const std::string& preferred_family);
} // namespace gfx
#endif // UI_GFX_TEST_FONTCONFIG_UTIL_LINUX_H_
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment