Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(394)

Unified Diff: ui/gfx/render_text_unittest.cc

Issue 1941293002: RenderTextMac: Invoke SkiaTextRenderer::SetFontRenderParams() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase? Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/gfx/render_text_mac.mm ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/gfx/render_text_unittest.cc
diff --git a/ui/gfx/render_text_unittest.cc b/ui/gfx/render_text_unittest.cc
index 598240ce4c5acf7a0112bf261b7e1f49791346fa..91aa96d49e30dfcf904d8c9765a26e4fe8753d5d 100644
--- a/ui/gfx/render_text_unittest.cc
+++ b/ui/gfx/render_text_unittest.cc
@@ -59,6 +59,11 @@ class RenderTextTestApi {
return renderer->paint_;
}
+ static internal::TextRunList* GetHarfbuzzRunList(
+ RenderTextHarfBuzz* harfbuzz) {
+ return harfbuzz->GetRunList();
+ }
+
void DrawVisualText(internal::SkiaTextRenderer* renderer) {
render_text_->EnsureLayout();
render_text_->DrawVisualText(renderer);
@@ -273,9 +278,12 @@ class RenderTextAllBackends {
renderer_.GetTextLogAndReset(log);
}
- SkTypeface* GetTypeface() {
- SkPaint& paint = test::RenderTextTestApi::GetRendererPaint(&renderer_);
- return paint.getTypeface();
+ SkPaint& paint() {
+ return test::RenderTextTestApi::GetRendererPaint(&renderer_);
+ }
+
+ internal::TextRunList* GetHarfbuzzRunList() {
+ return test::RenderTextTestApi::GetHarfbuzzRunList(&render_text_harfbuzz_);
}
private:
@@ -3275,19 +3283,53 @@ TEST_F(RenderTextTest, StylePropagated) {
backend->SetFontList(font_list);
backend.DrawVisualText();
- EXPECT_EQ(SkTypeface::kNormal, backend.GetTypeface()->style());
+ EXPECT_EQ(SkTypeface::kNormal, backend.paint().getTypeface()->style());
backend->SetStyle(TextStyle::BOLD, true);
backend.DrawVisualText();
- EXPECT_EQ(SkTypeface::kBold, backend.GetTypeface()->style());
+ EXPECT_EQ(SkTypeface::kBold, backend.paint().getTypeface()->style());
backend->SetStyle(TextStyle::ITALIC, true);
backend.DrawVisualText();
- EXPECT_EQ(SkTypeface::kBoldItalic, backend.GetTypeface()->style());
+ EXPECT_EQ(SkTypeface::kBoldItalic, backend.paint().getTypeface()->style());
backend->SetStyle(TextStyle::BOLD, false);
backend.DrawVisualText();
- EXPECT_EQ(SkTypeface::kItalic, backend.GetTypeface()->style());
+ EXPECT_EQ(SkTypeface::kItalic, backend.paint().getTypeface()->style());
+ }
+}
+
+// Ensure the painter adheres to RenderText::subpixel_rendering_suppressed().
+TEST_F(RenderTextTest, SubpixelRenderingSuppressed) {
+ RenderTextAllBackends backend;
+
+ while (backend.Advance()) {
+ SCOPED_TRACE(testing::Message() << "backend: " << backend.GetName());
+ backend->SetText(ASCIIToUTF16("x"));
+
+ backend.DrawVisualText();
+#if defined(OS_LINUX)
+ // On Linux, whether subpixel AA is supported is determined by the platform
+ // FontConfig. Force it into a particular style after computing runs. Other
+ // platforms use a known default FontRenderParams from a static local.
+ backend.GetHarfbuzzRunList()->runs()[0]->render_params.subpixel_rendering =
+ FontRenderParams::SUBPIXEL_RENDERING_RGB;
+ backend.DrawVisualText();
+#endif
+ EXPECT_TRUE(backend.paint().isLCDRenderText());
+
+ backend->set_subpixel_rendering_suppressed(true);
+ backend.DrawVisualText();
+#if defined(OS_LINUX)
+ // For Linux, runs shouldn't be re-calculated, and the suppression of the
+ // SUBPIXEL_RENDERING_RGB set above should now take effect. But, after
+ // checking, apply the override anyway to be explicit that it is suppressed.
+ EXPECT_FALSE(backend.paint().isLCDRenderText());
+ backend.GetHarfbuzzRunList()->runs()[0]->render_params.subpixel_rendering =
+ FontRenderParams::SUBPIXEL_RENDERING_RGB;
+ backend.DrawVisualText();
+#endif
+ EXPECT_FALSE(backend.paint().isLCDRenderText());
}
}
« no previous file with comments | « ui/gfx/render_text_mac.mm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698