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

Unified Diff: ui/gfx/render_text_unittest.cc

Issue 2346733002: Cleanup render text tests to use RenderTextTestApi. (Closed)
Patch Set: Remove redundant headers. Created 4 years, 3 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.h ('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 d41262c2537d330a070be6fb44362d38c63df1d6..e2b37c105430797eb0f3a97556643534f06f8bf3 100644
--- a/ui/gfx/render_text_unittest.cc
+++ b/ui/gfx/render_text_unittest.cc
@@ -77,6 +77,42 @@ class RenderTextTestApi {
render_text_->DrawVisualText(renderer);
}
+ const BreakList<SkColor>& colors() const { return render_text_->colors(); }
+
+ const BreakList<BaselineStyle>& baselines() const {
+ return render_text_->baselines();
+ }
+
+ const BreakList<Font::Weight>& weights() const {
+ return render_text_->weights();
+ }
+
+ const std::vector<BreakList<bool>>& styles() const {
+ return render_text_->styles();
+ }
+
+ const std::vector<internal::Line>& lines() const {
+ return render_text_->lines();
+ }
+
+ SelectionModel EdgeSelectionModel(VisualCursorDirection direction) {
+ return render_text_->EdgeSelectionModel(direction);
+ }
+
+ size_t TextIndexToDisplayIndex(size_t index) {
+ return render_text_->TextIndexToDisplayIndex(index);
+ }
+
+ size_t DisplayIndexToTextIndex(size_t index) {
+ return render_text_->DisplayIndexToTextIndex(index);
+ }
+
+ void EnsureLayout() { render_text_->EnsureLayout(); }
+
+ Vector2d GetAlignmentOffset(size_t line_number) {
+ return render_text_->GetAlignmentOffset(line_number);
+ }
+
private:
RenderText* render_text_;
@@ -347,6 +383,7 @@ class RenderTextTest : public testing::Test,
Canvas* canvas() { return &canvas_; }
TestSkiaTextRenderer* renderer() { return &renderer_; }
+ test::RenderTextTestApi* test_api() { return test_api_.get(); };
private:
std::unique_ptr<RenderText> render_text_;
@@ -369,23 +406,52 @@ class RenderTextHarfBuzzTest : public RenderTextTest {
RenderTextHarfBuzzTest() {}
// Overridden from testing::Test:
- void SetUp() override { DCHECK_EQ(RENDER_TEXT_HARFBUZZ, GetParam()); }
+ void SetUp() override {
+ RenderTextTest::SetUp();
+ DCHECK_EQ(RENDER_TEXT_HARFBUZZ, GetParam());
+ }
+
+ protected:
+ void SetGlyphWidth(float test_width) {
+ GetRenderTextHarfBuzz()->set_glyph_width_for_test(test_width);
+ }
+
+ bool ShapeRunWithFont(const base::string16& text,
+ const Font& font,
+ const FontRenderParams& params,
+ internal::TextRunHarfBuzz* run) {
+ return GetRenderTextHarfBuzz()->ShapeRunWithFont(text, font, params, run);
+ }
+
+ base::i18n::BreakIterator* GetGraphemeIterator() {
+ return GetRenderTextHarfBuzz()->GetGraphemeIterator();
+ }
private:
DISALLOW_COPY_AND_ASSIGN(RenderTextHarfBuzzTest);
};
+#if defined(OS_MACOSX)
// Test fixture class. Use for tests which are only to be run for RenderTextMac.
class RenderTextMacTest : public RenderTextTest {
public:
RenderTextMacTest() {}
// Overridden from testing::Test:
- void SetUp() override { DCHECK_EQ(RENDER_TEXT_MAC, GetParam()); }
+ void SetUp() override {
+ RenderTextTest::SetUp();
+ DCHECK_EQ(RENDER_TEXT_MAC, GetParam());
+ }
+
+ protected:
+ base::ScopedCFTypeRef<CTLineRef> GetCoreTextLine() {
+ return GetRenderTextMac()->line_;
+ }
private:
DISALLOW_COPY_AND_ASSIGN(RenderTextMacTest);
};
+#endif
TEST_P(RenderTextTest, DefaultStyles) {
// Check the default styles applied to new instances and adjusted text.
@@ -393,11 +459,10 @@ TEST_P(RenderTextTest, DefaultStyles) {
EXPECT_TRUE(render_text->text().empty());
const wchar_t* const cases[] = { kWeak, kLtr, L"Hello", kRtl, L"", L"" };
for (size_t i = 0; i < arraysize(cases); ++i) {
- EXPECT_TRUE(render_text->colors().EqualsValueForTesting(SK_ColorBLACK));
- EXPECT_TRUE(
- render_text->baselines().EqualsValueForTesting(NORMAL_BASELINE));
+ EXPECT_TRUE(test_api()->colors().EqualsValueForTesting(SK_ColorBLACK));
+ EXPECT_TRUE(test_api()->baselines().EqualsValueForTesting(NORMAL_BASELINE));
for (size_t style = 0; style < NUM_TEXT_STYLES; ++style)
- EXPECT_TRUE(render_text->styles()[style].EqualsValueForTesting(false));
+ EXPECT_TRUE(test_api()->styles()[style].EqualsValueForTesting(false));
render_text->SetText(WideToUTF16(cases[i]));
}
}
@@ -412,18 +477,18 @@ TEST_P(RenderTextTest, SetStyles) {
render_text->SetStyle(UNDERLINE, false);
const wchar_t* const cases[] = { kWeak, kLtr, L"Hello", kRtl, L"", L"" };
for (size_t i = 0; i < arraysize(cases); ++i) {
- EXPECT_TRUE(render_text->colors().EqualsValueForTesting(color));
- EXPECT_TRUE(render_text->baselines().EqualsValueForTesting(SUPERSCRIPT));
+ EXPECT_TRUE(test_api()->colors().EqualsValueForTesting(color));
+ EXPECT_TRUE(test_api()->baselines().EqualsValueForTesting(SUPERSCRIPT));
EXPECT_TRUE(
- render_text->weights().EqualsValueForTesting(Font::Weight::BOLD));
- EXPECT_TRUE(render_text->styles()[UNDERLINE].EqualsValueForTesting(false));
+ test_api()->weights().EqualsValueForTesting(Font::Weight::BOLD));
+ EXPECT_TRUE(test_api()->styles()[UNDERLINE].EqualsValueForTesting(false));
render_text->SetText(WideToUTF16(cases[i]));
// Ensure custom default styles can be applied after text has been set.
if (i == 1)
render_text->SetStyle(STRIKE, true);
if (i >= 1)
- EXPECT_TRUE(render_text->styles()[STRIKE].EqualsValueForTesting(true));
+ EXPECT_TRUE(test_api()->styles()[STRIKE].EqualsValueForTesting(true));
}
}
@@ -439,7 +504,7 @@ TEST_P(RenderTextTest, ApplyStyles) {
expected_color.push_back(std::pair<size_t, SkColor>(0, SK_ColorBLACK));
expected_color.push_back(std::pair<size_t, SkColor>(1, SK_ColorRED));
expected_color.push_back(std::pair<size_t, SkColor>(4, SK_ColorBLACK));
- EXPECT_TRUE(render_text->colors().EqualsForTesting(expected_color));
+ EXPECT_TRUE(test_api()->colors().EqualsForTesting(expected_color));
std::vector<std::pair<size_t, BaselineStyle>> expected_baseline_style;
expected_baseline_style.push_back(
std::pair<size_t, BaselineStyle>(0, NORMAL_BASELINE));
@@ -448,7 +513,7 @@ TEST_P(RenderTextTest, ApplyStyles) {
expected_baseline_style.push_back(
std::pair<size_t, BaselineStyle>(4, NORMAL_BASELINE));
EXPECT_TRUE(
- render_text->baselines().EqualsForTesting(expected_baseline_style));
+ test_api()->baselines().EqualsForTesting(expected_baseline_style));
std::vector<std::pair<size_t, Font::Weight>> expected_weight;
expected_weight.push_back(
std::pair<size_t, Font::Weight>(0, Font::Weight::NORMAL));
@@ -456,16 +521,16 @@ TEST_P(RenderTextTest, ApplyStyles) {
std::pair<size_t, Font::Weight>(2, Font::Weight::BOLD));
expected_weight.push_back(
std::pair<size_t, Font::Weight>(5, Font::Weight::NORMAL));
- EXPECT_TRUE(render_text->weights().EqualsForTesting(expected_weight));
+ EXPECT_TRUE(test_api()->weights().EqualsForTesting(expected_weight));
// Ensure that setting a value overrides the ranged values.
render_text->SetColor(SK_ColorBLUE);
- EXPECT_TRUE(render_text->colors().EqualsValueForTesting(SK_ColorBLUE));
+ EXPECT_TRUE(test_api()->colors().EqualsValueForTesting(SK_ColorBLUE));
render_text->SetBaselineStyle(SUBSCRIPT);
- EXPECT_TRUE(render_text->baselines().EqualsValueForTesting(SUBSCRIPT));
+ EXPECT_TRUE(test_api()->baselines().EqualsValueForTesting(SUBSCRIPT));
render_text->SetWeight(Font::Weight::NORMAL);
EXPECT_TRUE(
- render_text->weights().EqualsValueForTesting(Font::Weight::NORMAL));
+ test_api()->weights().EqualsValueForTesting(Font::Weight::NORMAL));
// Apply a value over the text end and check the resulting breaks (INT_MAX
// should be used instead of the text length for the range end)
@@ -475,17 +540,17 @@ TEST_P(RenderTextTest, ApplyStyles) {
render_text->ApplyWeight(Font::Weight::BOLD, Range(2, text_length));
std::vector<std::pair<size_t, SkColor> > expected_color_end;
expected_color_end.push_back(std::pair<size_t, SkColor>(0, SK_ColorRED));
- EXPECT_TRUE(render_text->colors().EqualsForTesting(expected_color_end));
+ EXPECT_TRUE(test_api()->colors().EqualsForTesting(expected_color_end));
std::vector<std::pair<size_t, BaselineStyle>> expected_baseline_end;
expected_baseline_end.push_back(
std::pair<size_t, BaselineStyle>(0, SUPERIOR));
- EXPECT_TRUE(render_text->baselines().EqualsForTesting(expected_baseline_end));
+ EXPECT_TRUE(test_api()->baselines().EqualsForTesting(expected_baseline_end));
std::vector<std::pair<size_t, Font::Weight>> expected_weight_end;
expected_weight_end.push_back(
std::pair<size_t, Font::Weight>(0, Font::Weight::NORMAL));
expected_weight_end.push_back(
std::pair<size_t, Font::Weight>(2, Font::Weight::BOLD));
- EXPECT_TRUE(render_text->weights().EqualsForTesting(expected_weight_end));
+ EXPECT_TRUE(test_api()->weights().EqualsForTesting(expected_weight_end));
// Ensure ranged values adjust to accommodate text length changes.
render_text->ApplyStyle(ITALIC, true, Range(0, 2));
@@ -497,22 +562,22 @@ TEST_P(RenderTextTest, ApplyStyles) {
expected_italic.push_back(std::pair<size_t, bool>(3, true));
expected_italic.push_back(std::pair<size_t, bool>(6, false));
expected_italic.push_back(std::pair<size_t, bool>(7, true));
- EXPECT_TRUE(render_text->styles()[ITALIC].EqualsForTesting(expected_italic));
+ EXPECT_TRUE(test_api()->styles()[ITALIC].EqualsForTesting(expected_italic));
// Changing the text should clear any breaks except for the first one.
render_text->SetText(ASCIIToUTF16("0123456"));
expected_italic.resize(1);
- EXPECT_TRUE(render_text->styles()[ITALIC].EqualsForTesting(expected_italic));
+ EXPECT_TRUE(test_api()->styles()[ITALIC].EqualsForTesting(expected_italic));
render_text->ApplyStyle(ITALIC, false, Range(2, 4));
render_text->SetText(ASCIIToUTF16("012345678"));
- EXPECT_TRUE(render_text->styles()[ITALIC].EqualsForTesting(expected_italic));
+ EXPECT_TRUE(test_api()->styles()[ITALIC].EqualsForTesting(expected_italic));
render_text->ApplyStyle(ITALIC, false, Range(0, 1));
render_text->SetText(ASCIIToUTF16("0123456"));
expected_italic.begin()->second = false;
- EXPECT_TRUE(render_text->styles()[ITALIC].EqualsForTesting(expected_italic));
+ EXPECT_TRUE(test_api()->styles()[ITALIC].EqualsForTesting(expected_italic));
render_text->ApplyStyle(ITALIC, true, Range(2, 4));
render_text->SetText(ASCIIToUTF16("012345678"));
- EXPECT_TRUE(render_text->styles()[ITALIC].EqualsForTesting(expected_italic));
+ EXPECT_TRUE(test_api()->styles()[ITALIC].EqualsForTesting(expected_italic));
// TODO(tmoniuszko): Enable when RenderTextMac::IsValidCursorIndex is
// implemented. See http://crbug.com/131618.
@@ -530,7 +595,7 @@ TEST_P(RenderTextTest, ApplyStyles) {
expected_underline.push_back(std::pair<size_t, bool>(1, true));
expected_underline.push_back(std::pair<size_t, bool>(6, false));
EXPECT_TRUE(
- render_text->styles()[UNDERLINE].EqualsForTesting(expected_underline));
+ test_api()->styles()[UNDERLINE].EqualsForTesting(expected_underline));
}
}
@@ -545,26 +610,24 @@ TEST_P(RenderTextTest, AppendTextKeepsStyles) {
std::vector<std::pair<size_t, SkColor>> expected_color;
expected_color.push_back(std::pair<size_t, SkColor>(0, SK_ColorRED));
expected_color.push_back(std::pair<size_t, SkColor>(1, SK_ColorBLACK));
- EXPECT_TRUE(render_text->colors().EqualsForTesting(expected_color));
+ EXPECT_TRUE(test_api()->colors().EqualsForTesting(expected_color));
std::vector<std::pair<size_t, BaselineStyle>> expected_baseline;
expected_baseline.push_back(
std::pair<size_t, BaselineStyle>(0, NORMAL_BASELINE));
expected_baseline.push_back(std::pair<size_t, BaselineStyle>(1, SUPERSCRIPT));
expected_baseline.push_back(
std::pair<size_t, BaselineStyle>(2, NORMAL_BASELINE));
- EXPECT_TRUE(render_text->baselines().EqualsForTesting(expected_baseline));
+ EXPECT_TRUE(test_api()->baselines().EqualsForTesting(expected_baseline));
std::vector<std::pair<size_t, bool>> expected_style;
expected_style.push_back(std::pair<size_t, bool>(0, false));
expected_style.push_back(std::pair<size_t, bool>(2, true));
- EXPECT_TRUE(
- render_text->styles()[UNDERLINE].EqualsForTesting(expected_style));
+ EXPECT_TRUE(test_api()->styles()[UNDERLINE].EqualsForTesting(expected_style));
// Ensure AppendText maintains current text styles.
render_text->AppendText(ASCIIToUTF16("def"));
EXPECT_EQ(render_text->GetDisplayText(), ASCIIToUTF16("abcdef"));
- EXPECT_TRUE(render_text->colors().EqualsForTesting(expected_color));
- EXPECT_TRUE(render_text->baselines().EqualsForTesting(expected_baseline));
- EXPECT_TRUE(
- render_text->styles()[UNDERLINE].EqualsForTesting(expected_style));
+ EXPECT_TRUE(test_api()->colors().EqualsForTesting(expected_color));
+ EXPECT_TRUE(test_api()->baselines().EqualsForTesting(expected_baseline));
+ EXPECT_TRUE(test_api()->styles()[UNDERLINE].EqualsForTesting(expected_style));
}
void TestVisualCursorMotionInObscuredField(
@@ -626,11 +689,11 @@ TEST_P(RenderTextHarfBuzzTest, ObscuredText) {
EXPECT_EQ(2U, render_text->cursor_position());
// Test index conversion and cursor validity with a valid surrogate pair.
- EXPECT_EQ(0U, render_text->TextIndexToDisplayIndex(0U));
- EXPECT_EQ(1U, render_text->TextIndexToDisplayIndex(1U));
- EXPECT_EQ(1U, render_text->TextIndexToDisplayIndex(2U));
- EXPECT_EQ(0U, render_text->DisplayIndexToTextIndex(0U));
- EXPECT_EQ(2U, render_text->DisplayIndexToTextIndex(1U));
+ EXPECT_EQ(0U, test_api()->TextIndexToDisplayIndex(0U));
+ EXPECT_EQ(1U, test_api()->TextIndexToDisplayIndex(1U));
+ EXPECT_EQ(1U, test_api()->TextIndexToDisplayIndex(2U));
+ EXPECT_EQ(0U, test_api()->DisplayIndexToTextIndex(0U));
+ EXPECT_EQ(2U, test_api()->DisplayIndexToTextIndex(1U));
EXPECT_TRUE(render_text->IsValidCursorIndex(0U));
EXPECT_FALSE(render_text->IsValidCursorIndex(1U));
EXPECT_TRUE(render_text->IsValidCursorIndex(2U));
@@ -1661,11 +1724,11 @@ TEST_P(RenderTextTest, EdgeSelectionModels) {
bool ltr = (cases[i].expected_text_direction == base::i18n::LEFT_TO_RIGHT);
SelectionModel start_edge =
- render_text->EdgeSelectionModel(ltr ? CURSOR_LEFT : CURSOR_RIGHT);
+ test_api()->EdgeSelectionModel(ltr ? CURSOR_LEFT : CURSOR_RIGHT);
EXPECT_EQ(start_edge, SelectionModel(0, CURSOR_BACKWARD));
SelectionModel end_edge =
- render_text->EdgeSelectionModel(ltr ? CURSOR_RIGHT : CURSOR_LEFT);
+ test_api()->EdgeSelectionModel(ltr ? CURSOR_RIGHT : CURSOR_LEFT);
EXPECT_EQ(end_edge, SelectionModel(cases[i].text.length(), CURSOR_FORWARD));
}
}
@@ -2607,7 +2670,7 @@ TEST_P(RenderTextHarfBuzzTest, Multiline_MinWidth) {
SCOPED_TRACE(base::StringPrintf("kTestStrings[%" PRIuS "]", i));
render_text->SetText(WideToUTF16(kTestStrings[i]));
render_text->Draw(canvas());
- EXPECT_GT(render_text->lines_.size(), 1U);
+ EXPECT_GT(test_api()->lines().size(), 1U);
}
}
@@ -2632,7 +2695,7 @@ TEST_P(RenderTextHarfBuzzTest, Multiline_NormalWidth) {
// Specify the fixed width for characters to suppress the possible variations
// of linebreak results.
- render_text->set_glyph_width_for_test(5);
+ SetGlyphWidth(5);
render_text->SetDisplayRect(Rect(50, 1000));
render_text->SetMultiline(true);
render_text->SetWordWrapBehavior(WRAP_LONG_WORDS);
@@ -2643,13 +2706,13 @@ TEST_P(RenderTextHarfBuzzTest, Multiline_NormalWidth) {
render_text->SetText(WideToUTF16(kTestStrings[i].text));
DrawVisualText();
- ASSERT_EQ(2U, render_text->lines_.size());
- ASSERT_EQ(1U, render_text->lines_[0].segments.size());
+ ASSERT_EQ(2U, test_api()->lines().size());
+ ASSERT_EQ(1U, test_api()->lines()[0].segments.size());
EXPECT_EQ(kTestStrings[i].first_line_char_range,
- render_text->lines_[0].segments[0].char_range);
- ASSERT_EQ(1U, render_text->lines_[1].segments.size());
+ test_api()->lines()[0].segments[0].char_range);
+ ASSERT_EQ(1U, test_api()->lines()[1].segments.size());
EXPECT_EQ(kTestStrings[i].second_line_char_range,
- render_text->lines_[1].segments[0].char_range);
+ test_api()->lines()[1].segments[0].char_range);
std::vector<TestSkiaTextRenderer::TextLog> text_log;
renderer()->GetTextLogAndReset(&text_log);
@@ -2687,7 +2750,7 @@ TEST_P(RenderTextHarfBuzzTest, Multiline_SufficientWidth) {
SCOPED_TRACE(base::StringPrintf("kTestStrings[%" PRIuS "]", i));
render_text->SetText(WideToUTF16(kTestStrings[i]));
render_text->Draw(canvas());
- EXPECT_EQ(1U, render_text->lines_.size());
+ EXPECT_EQ(1U, test_api()->lines().size());
}
}
@@ -2714,22 +2777,20 @@ TEST_P(RenderTextHarfBuzzTest, Multiline_Newline) {
SCOPED_TRACE(base::StringPrintf("kTestStrings[%" PRIuS "]", i));
render_text->SetText(WideToUTF16(kTestStrings[i].text));
render_text->Draw(canvas());
- EXPECT_EQ(kTestStrings[i].lines_count, render_text->lines_.size());
- if (kTestStrings[i].lines_count != render_text->lines_.size())
+ EXPECT_EQ(kTestStrings[i].lines_count, test_api()->lines().size());
+ if (kTestStrings[i].lines_count != test_api()->lines().size())
continue;
for (size_t j = 0; j < kTestStrings[i].lines_count; ++j) {
SCOPED_TRACE(base::StringPrintf("Line %" PRIuS "", j));
// There might be multiple segments in one line. Merge all the segments
// ranges in the same line.
- const size_t segment_size = render_text->lines()[j].segments.size();
+ const size_t segment_size = test_api()->lines()[j].segments.size();
Range line_range;
if (segment_size > 0)
- line_range =
- Range(render_text->lines()[j].segments[0].char_range.start(),
- render_text->lines()[j]
- .segments[segment_size - 1]
- .char_range.end());
+ line_range = Range(
+ test_api()->lines()[j].segments[0].char_range.start(),
+ test_api()->lines()[j].segments[segment_size - 1].char_range.end());
EXPECT_EQ(kTestStrings[i].line_char_ranges[j], line_range);
}
}
@@ -2801,7 +2862,7 @@ TEST_P(RenderTextHarfBuzzTest, Multiline_HorizontalAlignment) {
const int kGlyphSize = 5;
RenderTextHarfBuzz* render_text = GetRenderTextHarfBuzz();
render_text->SetHorizontalAlignment(ALIGN_TO_HEAD);
- render_text->set_glyph_width_for_test(kGlyphSize);
+ SetGlyphWidth(kGlyphSize);
render_text->SetDisplayRect(Rect(100, 1000));
render_text->SetMultiline(true);
@@ -2810,18 +2871,18 @@ TEST_P(RenderTextHarfBuzzTest, Multiline_HorizontalAlignment) {
kTestStrings[i].text));
render_text->SetText(WideToUTF16(kTestStrings[i].text));
render_text->Draw(canvas());
- ASSERT_LE(2u, render_text->lines().size());
+ ASSERT_LE(2u, test_api()->lines().size());
if (kTestStrings[i].alignment == ALIGN_LEFT) {
- EXPECT_EQ(0, render_text->GetAlignmentOffset(0).x());
- EXPECT_EQ(0, render_text->GetAlignmentOffset(1).x());
+ EXPECT_EQ(0, test_api()->GetAlignmentOffset(0).x());
+ EXPECT_EQ(0, test_api()->GetAlignmentOffset(1).x());
} else {
std::vector<base::string16> lines = base::SplitString(
base::WideToUTF16(kTestStrings[i].text),
base::string16(1, '\n'), base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
ASSERT_EQ(2u, lines.size());
int difference = (lines[0].length() - lines[1].length()) * kGlyphSize;
- EXPECT_EQ(render_text->GetAlignmentOffset(0).x() + difference,
- render_text->GetAlignmentOffset(1).x());
+ EXPECT_EQ(test_api()->GetAlignmentOffset(0).x() + difference,
+ test_api()->GetAlignmentOffset(1).x());
}
}
}
@@ -2844,7 +2905,7 @@ TEST_P(RenderTextHarfBuzzTest, Multiline_WordWrapBehavior) {
RenderTextHarfBuzz* render_text = GetRenderTextHarfBuzz();
render_text->SetMultiline(true);
render_text->SetText(ASCIIToUTF16("foo fooooo foo"));
- render_text->set_glyph_width_for_test(kGlyphSize);
+ SetGlyphWidth(kGlyphSize);
render_text->SetDisplayRect(Rect(0, 0, kGlyphSize * 4, 0));
for (size_t i = 0; i < arraysize(kTestScenarios); ++i) {
@@ -2853,13 +2914,13 @@ TEST_P(RenderTextHarfBuzzTest, Multiline_WordWrapBehavior) {
render_text->SetWordWrapBehavior(kTestScenarios[i].behavior);
render_text->Draw(canvas());
- ASSERT_EQ(kTestScenarios[i].num_lines, render_text->lines().size());
- for (size_t j = 0; j < render_text->lines().size(); ++j) {
+ ASSERT_EQ(kTestScenarios[i].num_lines, test_api()->lines().size());
+ for (size_t j = 0; j < test_api()->lines().size(); ++j) {
SCOPED_TRACE(base::StringPrintf("%" PRIuS "-th line", j));
EXPECT_EQ(kTestScenarios[i].char_ranges[j],
- render_text->lines()[j].segments[0].char_range);
+ test_api()->lines()[j].segments[0].char_range);
EXPECT_EQ(kTestScenarios[i].char_ranges[j].length() * kGlyphSize,
- render_text->lines()[j].size.width());
+ test_api()->lines()[j].size.width());
}
}
}
@@ -2901,7 +2962,7 @@ TEST_P(RenderTextHarfBuzzTest, Multiline_LineBreakerBehavior) {
RenderTextHarfBuzz* render_text = GetRenderTextHarfBuzz();
render_text->SetMultiline(true);
- render_text->set_glyph_width_for_test(kGlyphSize);
+ SetGlyphWidth(kGlyphSize);
render_text->SetDisplayRect(Rect(0, 0, kGlyphSize * 4, 0));
for (size_t i = 0; i < arraysize(kTestScenarios); ++i) {
@@ -2910,21 +2971,19 @@ TEST_P(RenderTextHarfBuzzTest, Multiline_LineBreakerBehavior) {
render_text->SetWordWrapBehavior(kTestScenarios[i].behavior);
render_text->Draw(canvas());
- ASSERT_EQ(3u, render_text->lines().size());
- for (size_t j = 0; j < render_text->lines().size(); ++j) {
+ ASSERT_EQ(3u, test_api()->lines().size());
+ for (size_t j = 0; j < test_api()->lines().size(); ++j) {
SCOPED_TRACE(base::StringPrintf("%" PRIuS "-th line", j));
// Merge all the segments ranges in the same line.
- size_t segment_size = render_text->lines()[j].segments.size();
+ size_t segment_size = test_api()->lines()[j].segments.size();
Range line_range;
if (segment_size > 0)
- line_range =
- Range(render_text->lines()[j].segments[0].char_range.start(),
- render_text->lines()[j]
- .segments[segment_size - 1]
- .char_range.end());
+ line_range = Range(
+ test_api()->lines()[j].segments[0].char_range.start(),
+ test_api()->lines()[j].segments[segment_size - 1].char_range.end());
EXPECT_EQ(kTestScenarios[i].char_ranges[j], line_range);
EXPECT_EQ(kTestScenarios[i].char_ranges[j].length() * kGlyphSize,
- render_text->lines()[j].size.width());
+ test_api()->lines()[j].size.width());
}
}
}
@@ -2969,12 +3028,12 @@ TEST_P(RenderTextHarfBuzzTest, Multiline_SurrogatePairsOrCombiningChars) {
render_text->SetDisplayRect(Rect(0, 0, kTestScenarios[i].display_width, 0));
render_text->Draw(canvas());
- ASSERT_EQ(3u, render_text->lines().size());
- for (size_t j = 0; j < render_text->lines().size(); ++j) {
+ ASSERT_EQ(3u, test_api()->lines().size());
+ for (size_t j = 0; j < test_api()->lines().size(); ++j) {
SCOPED_TRACE(base::StringPrintf("%" PRIuS "-th line", j));
// There is only one segment in each line.
EXPECT_EQ(kTestScenarios[i].char_ranges[j],
- render_text->lines()[j].segments[0].char_range);
+ test_api()->lines()[j].segments[0].char_range);
}
}
}
@@ -2997,14 +3056,14 @@ TEST_P(RenderTextHarfBuzzTest, Multiline_ZeroWidthChars) {
render_text->SetDisplayRect(Rect(0, 0, kTestWidth, 0));
render_text->Draw(canvas());
- ASSERT_EQ(3u, render_text->lines().size());
- for (size_t j = 0; j < render_text->lines().size(); ++j) {
+ ASSERT_EQ(3u, test_api()->lines().size());
+ for (size_t j = 0; j < test_api()->lines().size(); ++j) {
SCOPED_TRACE(base::StringPrintf("%" PRIuS "-th line", j));
- int segment_size = render_text->lines()[j].segments.size();
+ int segment_size = test_api()->lines()[j].segments.size();
ASSERT_GT(segment_size, 0);
Range line_range(
- render_text->lines()[j].segments[0].char_range.start(),
- render_text->lines()[j].segments[segment_size - 1].char_range.end());
+ test_api()->lines()[j].segments[0].char_range.start(),
+ test_api()->lines()[j].segments[segment_size - 1].char_range.end());
EXPECT_EQ(char_ranges[j], line_range);
}
}
@@ -3022,7 +3081,7 @@ TEST_P(RenderTextHarfBuzzTest, NewlineWithoutMultilineFlag) {
render_text->SetText(WideToUTF16(kTestStrings[i]));
render_text->Draw(canvas());
- EXPECT_EQ(1U, render_text->lines_.size());
+ EXPECT_EQ(1U, test_api()->lines().size());
}
}
@@ -3047,8 +3106,8 @@ TEST_P(RenderTextHarfBuzzTest, HarfBuzz_HorizontalPositions) {
SCOPED_TRACE(base::StringPrintf("kTestStrings[%" PRIuS "]", i));
render_text->SetText(WideToUTF16(kTestStrings[i].text));
- render_text->EnsureLayout();
- const internal::TextRunList* run_list = render_text->GetRunList();
+ test_api()->EnsureLayout();
+ const internal::TextRunList* run_list = GetHarfBuzzRunList();
ASSERT_EQ(2U, run_list->runs().size());
EXPECT_EQ(kTestStrings[i].first_run_char_range, run_list->runs()[0]->range);
EXPECT_EQ(kTestStrings[i].second_run_char_range,
@@ -3062,7 +3121,7 @@ TEST_P(RenderTextHarfBuzzTest, HarfBuzz_HorizontalPositions) {
EXPECT_EQ(1U, run_list->logical_to_visual(1));
}
- render_text->DrawVisualText(renderer());
+ DrawVisualText();
std::vector<TestSkiaTextRenderer::TextLog> text_log;
renderer()->GetTextLogAndReset(&text_log);
@@ -3154,12 +3213,12 @@ TEST_P(RenderTextHarfBuzzTest, HarfBuzz_SubglyphGraphemeCases) {
base::string16 text = WideToUTF16(cases[i]);
render_text->SetText(text);
- render_text->EnsureLayout();
- internal::TextRunList* run_list = render_text->GetRunList();
+ test_api()->EnsureLayout();
+ internal::TextRunList* run_list = GetHarfBuzzRunList();
ASSERT_EQ(1U, run_list->size());
internal::TextRunHarfBuzz* run = run_list->runs()[0];
- base::i18n::BreakIterator* iter = render_text->grapheme_iterator_.get();
+ base::i18n::BreakIterator* iter = GetGraphemeIterator();
auto first_grapheme_bounds = run->GetGraphemeBounds(iter, 0);
EXPECT_EQ(first_grapheme_bounds, run->GetGraphemeBounds(iter, 1));
auto second_grapheme_bounds = run->GetGraphemeBounds(iter, 2);
@@ -3234,8 +3293,8 @@ TEST_P(RenderTextHarfBuzzTest, HarfBuzz_RunDirection) {
// Get the run list for both display directions.
render_text->SetDirectionalityMode(DIRECTIONALITY_FORCE_LTR);
- render_text->EnsureLayout();
- internal::TextRunList* run_list = render_text->GetRunList();
+ test_api()->EnsureLayout();
+ internal::TextRunList* run_list = GetHarfBuzzRunList();
ASSERT_EQ(4U, run_list->size());
EXPECT_TRUE(run_list->runs()[0]->is_rtl);
EXPECT_FALSE(run_list->runs()[1]->is_rtl);
@@ -3249,8 +3308,8 @@ TEST_P(RenderTextHarfBuzzTest, HarfBuzz_RunDirection) {
EXPECT_EQ(3U, run_list->logical_to_visual(3));
render_text->SetDirectionalityMode(DIRECTIONALITY_FORCE_RTL);
- render_text->EnsureLayout();
- run_list = render_text->GetRunList();
+ test_api()->EnsureLayout();
+ run_list = GetHarfBuzzRunList();
ASSERT_EQ(4U, run_list->size());
EXPECT_TRUE(run_list->runs()[0]->is_rtl);
EXPECT_FALSE(run_list->runs()[1]->is_rtl);
@@ -3269,16 +3328,16 @@ TEST_P(RenderTextHarfBuzzTest, HarfBuzz_BreakRunsByUnicodeBlocks) {
// The '\x25B6' "play character" should break runs. http://crbug.com/278913
render_text->SetText(WideToUTF16(L"x\x25B6y"));
- render_text->EnsureLayout();
- internal::TextRunList* run_list = render_text->GetRunList();
+ test_api()->EnsureLayout();
+ internal::TextRunList* run_list = GetHarfBuzzRunList();
ASSERT_EQ(3U, run_list->size());
EXPECT_EQ(Range(0, 1), run_list->runs()[0]->range);
EXPECT_EQ(Range(1, 2), run_list->runs()[1]->range);
EXPECT_EQ(Range(2, 3), run_list->runs()[2]->range);
render_text->SetText(WideToUTF16(L"x \x25B6 y"));
- render_text->EnsureLayout();
- run_list = render_text->GetRunList();
+ test_api()->EnsureLayout();
+ run_list = GetHarfBuzzRunList();
ASSERT_EQ(4U, run_list->size());
EXPECT_EQ(Range(0, 2), run_list->runs()[0]->range);
EXPECT_EQ(Range(2, 3), run_list->runs()[1]->range);
@@ -3293,8 +3352,8 @@ TEST_P(RenderTextHarfBuzzTest, HarfBuzz_BreakRunsByEmoji) {
// a sparkle icon. Both can be drawn with color emoji fonts, so runs should be
// separated. See crbug.com/448909
render_text->SetText(UTF8ToUTF16("x\xF0\x9F\x98\x81y\xE2\x9C\xA8"));
- render_text->EnsureLayout();
- internal::TextRunList* run_list = render_text->GetRunList();
+ test_api()->EnsureLayout();
+ internal::TextRunList* run_list = GetHarfBuzzRunList();
ASSERT_EQ(4U, run_list->size());
EXPECT_EQ(Range(0, 1), run_list->runs()[0]->range);
// The length is 2 since U+1F601 is represented as a surrogate pair in UTF16.
@@ -3309,8 +3368,8 @@ TEST_P(RenderTextHarfBuzzTest, HarfBuzz_BreakRunsByAscii) {
// \xF0\x9F\x90\xB1 (U+1F431) is a cat face. It should be put into a separate
// run from the ASCII period character.
render_text->SetText(UTF8ToUTF16("\xF0\x9F\x90\xB1."));
- render_text->EnsureLayout();
- internal::TextRunList* run_list = render_text->GetRunList();
+ test_api()->EnsureLayout();
+ internal::TextRunList* run_list = GetHarfBuzzRunList();
ASSERT_EQ(2U, run_list->size());
// U+1F431 is represented as a surrogate pair in UTF16.
EXPECT_EQ(Range(0, 2), run_list->runs()[0]->range);
@@ -3325,7 +3384,7 @@ TEST_P(RenderTextHarfBuzzTest, GlyphBounds) {
for (size_t i = 0; i < arraysize(kTestStrings); ++i) {
render_text->SetText(WideToUTF16(kTestStrings[i]));
- render_text->EnsureLayout();
+ test_api()->EnsureLayout();
for (size_t j = 0; j < render_text->text().length(); ++j)
EXPECT_FALSE(render_text->GetGlyphBounds(j).is_empty());
@@ -3336,13 +3395,12 @@ TEST_P(RenderTextHarfBuzzTest, GlyphBounds) {
TEST_P(RenderTextHarfBuzzTest, HarfBuzz_NonExistentFont) {
RenderTextHarfBuzz* render_text = GetRenderTextHarfBuzz();
render_text->SetText(ASCIIToUTF16("test"));
- render_text->EnsureLayout();
- internal::TextRunList* run_list = render_text->GetRunList();
+ test_api()->EnsureLayout();
+ internal::TextRunList* run_list = GetHarfBuzzRunList();
ASSERT_EQ(1U, run_list->size());
internal::TextRunHarfBuzz* run = run_list->runs()[0];
- render_text->ShapeRunWithFont(render_text->text(),
- Font("TheFontThatDoesntExist", 13),
- FontRenderParams(), run);
+ ShapeRunWithFont(render_text->text(), Font("TheFontThatDoesntExist", 13),
+ FontRenderParams(), run);
}
// Ensure an empty run returns sane values to queries.
@@ -3435,8 +3493,8 @@ TEST_P(RenderTextHarfBuzzTest, HarfBuzz_UniscribeFallback) {
render_text->SetFontList(font_list);
// Korean character "han".
render_text->SetText(WideToUTF16(L"\xd55c"));
- render_text->EnsureLayout();
- internal::TextRunList* run_list = render_text->GetRunList();
+ test_api()->EnsureLayout();
+ internal::TextRunList* run_list = GetHarfBuzzRunList();
ASSERT_EQ(1U, run_list->size());
EXPECT_EQ(0U, run_list->runs()[0]->CountMissingGlyphs());
}
@@ -3454,8 +3512,8 @@ TEST_P(RenderTextHarfBuzzTest, HarfBuzz_UnicodeFallback) {
// Korean character "han".
render_text->SetText(WideToUTF16(L"\xd55c"));
- render_text->EnsureLayout();
- internal::TextRunList* run_list = render_text->GetRunList();
+ test_api()->EnsureLayout();
+ internal::TextRunList* run_list = GetHarfBuzzRunList();
ASSERT_EQ(1U, run_list->size());
EXPECT_EQ(0U, run_list->runs()[0]->CountMissingGlyphs());
}
@@ -3636,16 +3694,16 @@ TEST_P(RenderTextMacTest, Mac_ElidedText) {
render_text->SetText(text);
Size string_size = render_text->GetStringSize();
render_text->SetDisplayRect(Rect(string_size));
- render_text->EnsureLayout();
+ test_api()->EnsureLayout();
// NOTE: Character and glyph counts are only comparable for simple text.
EXPECT_EQ(text.size(),
- static_cast<size_t>(CTLineGetGlyphCount(render_text->line_)));
+ static_cast<size_t>(CTLineGetGlyphCount(GetCoreTextLine())));
render_text->SetElideBehavior(ELIDE_TAIL);
string_size.set_width(string_size.width() / 2);
render_text->SetDisplayRect(Rect(string_size));
- render_text->EnsureLayout();
- CFIndex glyph_count = CTLineGetGlyphCount(render_text->line_);
+ test_api()->EnsureLayout();
+ CFIndex glyph_count = CTLineGetGlyphCount(GetCoreTextLine());
EXPECT_GT(text.size(), static_cast<size_t>(glyph_count));
EXPECT_NE(0, glyph_count);
}
« no previous file with comments | « ui/gfx/render_text_mac.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698