mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Pass LinearTextFlat to SkFont - iOS13 letter spacing (flutter/engine#13321)
This commit is contained in:
parent
18424607be
commit
1943057a76
@ -317,10 +317,8 @@ int Layout::findFace(const FakedFont& face, LayoutContext* ctx) {
|
||||
// corresponding hb_font object.
|
||||
if (ctx != NULL) {
|
||||
hb_font_t* font = getHbFontLocked(face.font);
|
||||
// Temporarily removed to fix advance integer rounding.
|
||||
// This is likely due to very old versions of harfbuzz and ICU.
|
||||
// hb_font_set_funcs(font, getHbFontFuncs(isColorBitmapFont(font)),
|
||||
// &ctx->paint, 0);
|
||||
hb_font_set_funcs(font, getHbFontFuncs(isColorBitmapFont(font)),
|
||||
&ctx->paint, 0);
|
||||
ctx->hbFonts.push_back(font);
|
||||
}
|
||||
return ix;
|
||||
|
||||
@ -52,6 +52,7 @@ static void FontSkia_SetSkiaFont(sk_sp<SkTypeface> typeface,
|
||||
SkFont* skFont,
|
||||
const minikin::MinikinPaint& paint) {
|
||||
skFont->setTypeface(std::move(typeface));
|
||||
skFont->setLinearMetrics((paint.paintFlags & minikin::LinearTextFlag) != 0);
|
||||
// TODO: set more paint parameters from Minikin
|
||||
skFont->setSize(paint.size);
|
||||
}
|
||||
|
||||
@ -129,6 +129,7 @@ class ParagraphTxt : public Paragraph {
|
||||
private:
|
||||
friend class ParagraphBuilderTxt;
|
||||
FRIEND_TEST(ParagraphTest, SimpleParagraph);
|
||||
FRIEND_TEST(ParagraphTest, SimpleParagraphSmall);
|
||||
FRIEND_TEST(ParagraphTest, SimpleRedParagraph);
|
||||
FRIEND_TEST(ParagraphTest, RainbowParagraph);
|
||||
FRIEND_TEST(ParagraphTest, DefaultStyleParagraph);
|
||||
|
||||
@ -62,6 +62,7 @@ class StyledRuns {
|
||||
|
||||
private:
|
||||
FRIEND_TEST(ParagraphTest, SimpleParagraph);
|
||||
FRIEND_TEST(ParagraphTest, SimpleParagraphSmall);
|
||||
FRIEND_TEST(ParagraphTest, SimpleRedParagraph);
|
||||
FRIEND_TEST(ParagraphTest, RainbowParagraph);
|
||||
FRIEND_TEST(ParagraphTest, DefaultStyleParagraph);
|
||||
|
||||
@ -72,6 +72,47 @@ TEST_F(ParagraphTest, SimpleParagraph) {
|
||||
ASSERT_TRUE(Snapshot());
|
||||
}
|
||||
|
||||
TEST_F(ParagraphTest, SimpleParagraphSmall) {
|
||||
const char* text =
|
||||
"Hello World Text Dialog. This is a very small text in order to check "
|
||||
"for constant advance additions that are only visible when the advance "
|
||||
"of the glyphs are small.";
|
||||
auto icu_text = icu::UnicodeString::fromUTF8(text);
|
||||
std::u16string u16_text(icu_text.getBuffer(),
|
||||
icu_text.getBuffer() + icu_text.length());
|
||||
|
||||
txt::ParagraphStyle paragraph_style;
|
||||
txt::ParagraphBuilderTxt builder(paragraph_style, GetTestFontCollection());
|
||||
|
||||
txt::TextStyle text_style;
|
||||
text_style.font_size = 6;
|
||||
// We must supply a font here, as the default is Arial, and we do not
|
||||
// include Arial in our test fonts as it is proprietary. We want it to
|
||||
// be Arial default though as it is one of the most common fonts on host
|
||||
// platforms. On real devices/apps, Arial should be able to be resolved.
|
||||
text_style.font_families = std::vector<std::string>(1, "Roboto");
|
||||
text_style.color = SK_ColorBLACK;
|
||||
builder.PushStyle(text_style);
|
||||
builder.AddText(u16_text);
|
||||
|
||||
builder.Pop();
|
||||
|
||||
auto paragraph = BuildParagraph(builder);
|
||||
paragraph->Layout(GetTestCanvasWidth());
|
||||
|
||||
paragraph->Paint(GetCanvas(), 10.0, 15.0);
|
||||
|
||||
ASSERT_EQ(paragraph->text_.size(), std::string{text}.length());
|
||||
for (size_t i = 0; i < u16_text.length(); i++) {
|
||||
ASSERT_EQ(paragraph->text_[i], u16_text[i]);
|
||||
}
|
||||
ASSERT_EQ(paragraph->runs_.runs_.size(), 1ull);
|
||||
ASSERT_EQ(paragraph->runs_.styles_.size(), 2ull);
|
||||
ASSERT_TRUE(paragraph->runs_.styles_[1].equals(text_style));
|
||||
ASSERT_EQ(paragraph->records_[0].style().color, text_style.color);
|
||||
ASSERT_TRUE(Snapshot());
|
||||
}
|
||||
|
||||
// It is possible for the line_metrics_ vector in paragraph to have an empty
|
||||
// line at the end as a result of the line breaking algorithm. This causes
|
||||
// the final_line_count_ to be one less than line metrics. This tests that we
|
||||
@ -170,7 +211,7 @@ TEST_F(ParagraphTest, LineMetricsParagraph1) {
|
||||
ASSERT_EQ(paragraph->GetLineMetrics()[0].hard_break, true);
|
||||
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[0].ascent, 12.988281);
|
||||
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[0].descent, 3.4179688);
|
||||
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[0].width, 149.67578);
|
||||
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[0].width, 149.72266);
|
||||
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[0].left, 0.0);
|
||||
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[0].baseline, 12.582031);
|
||||
ASSERT_EQ(paragraph->GetLineMetrics()[0].line_number, 0ull);
|
||||
@ -223,7 +264,7 @@ TEST_F(ParagraphTest, LineMetricsParagraph1) {
|
||||
ASSERT_EQ(paragraph->GetLineMetrics()[1].hard_break, true);
|
||||
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[1].ascent, 12.988281);
|
||||
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[1].descent, 3.4179688);
|
||||
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[1].width, 72.039062);
|
||||
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[1].width, 72.0625);
|
||||
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[1].left, 0.0);
|
||||
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[1].baseline, 28.582031);
|
||||
ASSERT_EQ(paragraph->GetLineMetrics()[1].line_number, 1ull);
|
||||
@ -313,7 +354,7 @@ TEST_F(ParagraphTest, DISABLE_ON_MAC(LineMetricsParagraph2)) {
|
||||
ASSERT_EQ(paragraph->GetLineMetrics()[0].hard_break, false);
|
||||
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[0].ascent, 27.84);
|
||||
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[0].descent, 7.6799998);
|
||||
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[0].width, 349.21875);
|
||||
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[0].width, 349.26953);
|
||||
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[0].left, 0.0);
|
||||
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[0].baseline, 28.32);
|
||||
ASSERT_EQ(paragraph->GetLineMetrics()[0].line_number, 0ull);
|
||||
@ -539,24 +580,24 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(InlinePlaceholderParagraph)) {
|
||||
GetCanvas()->drawRect(boxes[i].rect, paint);
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 7ull);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 90.921875);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 90.945312);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.top(), 50);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 140.92188);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 140.94531);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.bottom(), 100);
|
||||
|
||||
EXPECT_FLOAT_EQ(boxes[3].rect.left(), 231.34375);
|
||||
EXPECT_FLOAT_EQ(boxes[3].rect.left(), 231.39062);
|
||||
EXPECT_FLOAT_EQ(boxes[3].rect.top(), 50);
|
||||
EXPECT_FLOAT_EQ(boxes[3].rect.right(), 231.34375 + 50);
|
||||
EXPECT_FLOAT_EQ(boxes[3].rect.right(), 231.39062 + 50);
|
||||
EXPECT_FLOAT_EQ(boxes[3].rect.bottom(), 100);
|
||||
|
||||
EXPECT_FLOAT_EQ(boxes[4].rect.left(), 281.34375);
|
||||
EXPECT_FLOAT_EQ(boxes[4].rect.left(), 281.39062);
|
||||
EXPECT_FLOAT_EQ(boxes[4].rect.top(), 0);
|
||||
EXPECT_FLOAT_EQ(boxes[4].rect.right(), 281.34375 + 5);
|
||||
EXPECT_FLOAT_EQ(boxes[4].rect.right(), 281.39062 + 5);
|
||||
EXPECT_FLOAT_EQ(boxes[4].rect.bottom(), 50);
|
||||
|
||||
EXPECT_FLOAT_EQ(boxes[6].rect.left(), 336.34375);
|
||||
EXPECT_FLOAT_EQ(boxes[6].rect.left(), 336.39062);
|
||||
EXPECT_FLOAT_EQ(boxes[6].rect.top(), 0);
|
||||
EXPECT_FLOAT_EQ(boxes[6].rect.right(), 336.34375 + 5);
|
||||
EXPECT_FLOAT_EQ(boxes[6].rect.right(), 336.39062 + 5);
|
||||
EXPECT_FLOAT_EQ(boxes[6].rect.bottom(), 50);
|
||||
|
||||
ASSERT_TRUE(Snapshot());
|
||||
@ -615,9 +656,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(InlinePlaceholderBaselineParagraph)) {
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
// Verify the box is in the right place
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 90.921875);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 90.945312);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 0);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 145.92188);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 145.94531);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 50);
|
||||
|
||||
paint.setColor(SK_ColorBLUE);
|
||||
@ -628,9 +669,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(InlinePlaceholderBaselineParagraph)) {
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
// Verify the other text didn't just shift to accomodate it.
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 75.324219);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 75.34375);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 14.226246);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 90.921875);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 90.945312);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 44.694996);
|
||||
|
||||
ASSERT_TRUE(Snapshot());
|
||||
@ -691,9 +732,9 @@ TEST_F(ParagraphTest,
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
// Verify the box is in the right place
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 90.921875);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 90.945312);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), -0.34765625);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 145.92188);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 145.94531);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 49.652344);
|
||||
|
||||
paint.setColor(SK_ColorBLUE);
|
||||
@ -704,9 +745,9 @@ TEST_F(ParagraphTest,
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
// Verify the other text didn't just shift to accomodate it.
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 75.324219);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 75.34375);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 25.53125);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 90.921875);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 90.945312);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 56);
|
||||
|
||||
ASSERT_TRUE(Snapshot());
|
||||
@ -767,9 +808,9 @@ TEST_F(ParagraphTest,
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
// Verify the box is in the right place
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 90.921875);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 90.945312);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 24);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 145.92188);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 145.94531);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 74);
|
||||
|
||||
paint.setColor(SK_ColorBLUE);
|
||||
@ -780,9 +821,9 @@ TEST_F(ParagraphTest,
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
// Verify the other text didn't just shift to accomodate it.
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 75.324219);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 75.34375);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), -0.12109375);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 90.921875);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 90.945312);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 30.347656);
|
||||
|
||||
ASSERT_TRUE(Snapshot());
|
||||
@ -841,9 +882,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(InlinePlaceholderBottomParagraph)) {
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
// Verify the box is in the right place
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 90.921875);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 90.945312);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 0);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 145.92188);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 145.94531);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 50);
|
||||
|
||||
paint.setColor(SK_ColorBLUE);
|
||||
@ -856,7 +897,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(InlinePlaceholderBottomParagraph)) {
|
||||
// Verify the other text didn't just shift to accomodate it.
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0.5);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 19.53125);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 16.097656);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 16.101562);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 50);
|
||||
|
||||
ASSERT_TRUE(Snapshot());
|
||||
@ -915,9 +956,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(InlinePlaceholderTopParagraph)) {
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
// Verify the box is in the right place
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 90.921875);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 90.945312);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 0);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 145.92188);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 145.94531);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 50);
|
||||
|
||||
paint.setColor(SK_ColorBLUE);
|
||||
@ -930,7 +971,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(InlinePlaceholderTopParagraph)) {
|
||||
// Verify the other text didn't just shift to accomodate it.
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0.5);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 0);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 16.097656);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 16.101562);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 30.46875);
|
||||
|
||||
ASSERT_TRUE(Snapshot());
|
||||
@ -989,9 +1030,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(InlinePlaceholderMiddleParagraph)) {
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
// Verify the box is in the right place
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 90.921875);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 90.945312);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 0);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 145.92188);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 145.94531);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 50);
|
||||
|
||||
paint.setColor(SK_ColorBLUE);
|
||||
@ -1002,9 +1043,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(InlinePlaceholderMiddleParagraph)) {
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
// Verify the other text didn't just shift to accomodate it.
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 75.324219);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 75.34375);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 9.765625);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 90.921875);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 90.945312);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 40.234375);
|
||||
|
||||
ASSERT_TRUE(Snapshot());
|
||||
@ -1205,9 +1246,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(InlinePlaceholderBreakParagraph)) {
|
||||
GetCanvas()->drawRect(boxes[i].rect, paint);
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 31.695312);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 31.703125);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 218.53125);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 47.292969);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 47.304688);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 249);
|
||||
|
||||
paint.setColor(SK_ColorRED);
|
||||
@ -1223,14 +1264,14 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(InlinePlaceholderBreakParagraph)) {
|
||||
GetCanvas()->drawRect(boxes[i].rect, paint);
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 30ull);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 59.726562);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 59.742188);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 26.378906);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 90.921875);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 90.945312);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 56.847656);
|
||||
|
||||
EXPECT_FLOAT_EQ(boxes[11].rect.left(), 606.34375);
|
||||
EXPECT_FLOAT_EQ(boxes[11].rect.left(), 606.39062);
|
||||
EXPECT_FLOAT_EQ(boxes[11].rect.top(), 38);
|
||||
EXPECT_FLOAT_EQ(boxes[11].rect.right(), 631.34375);
|
||||
EXPECT_FLOAT_EQ(boxes[11].rect.right(), 631.39062);
|
||||
EXPECT_FLOAT_EQ(boxes[11].rect.bottom(), 63);
|
||||
|
||||
EXPECT_FLOAT_EQ(boxes[17].rect.left(), 0.5);
|
||||
@ -1337,19 +1378,19 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(InlinePlaceholderGetRectsParagraph)) {
|
||||
GetCanvas()->drawRect(boxes[i].rect, paint);
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 34ull);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 90.921875);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 90.945312);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 0);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 140.92188);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 140.94531);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 50);
|
||||
|
||||
EXPECT_FLOAT_EQ(boxes[16].rect.left(), 800.92188);
|
||||
EXPECT_FLOAT_EQ(boxes[16].rect.left(), 800.94531);
|
||||
EXPECT_FLOAT_EQ(boxes[16].rect.top(), 0);
|
||||
EXPECT_FLOAT_EQ(boxes[16].rect.right(), 850.92188);
|
||||
EXPECT_FLOAT_EQ(boxes[16].rect.right(), 850.94531);
|
||||
EXPECT_FLOAT_EQ(boxes[16].rect.bottom(), 50);
|
||||
|
||||
EXPECT_FLOAT_EQ(boxes[33].rect.left(), 503.38281);
|
||||
EXPECT_FLOAT_EQ(boxes[33].rect.left(), 503.48438);
|
||||
EXPECT_FLOAT_EQ(boxes[33].rect.top(), 160);
|
||||
EXPECT_FLOAT_EQ(boxes[33].rect.right(), 508.38281);
|
||||
EXPECT_FLOAT_EQ(boxes[33].rect.right(), 508.48438);
|
||||
EXPECT_FLOAT_EQ(boxes[33].rect.bottom(), 180);
|
||||
|
||||
Paragraph::RectHeightStyle rect_height_style =
|
||||
@ -1363,20 +1404,20 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(InlinePlaceholderGetRectsParagraph)) {
|
||||
GetCanvas()->drawRect(boxes[i].rect, paint);
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 8ull);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 216.09766);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 216.10156);
|
||||
// Top should be taller than "tight"
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 60);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 290.92188);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 290.94531);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 120);
|
||||
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 290.92188);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 290.94531);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.top(), 60);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 340.92188);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 340.94531);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.bottom(), 120);
|
||||
|
||||
EXPECT_FLOAT_EQ(boxes[2].rect.left(), 340.92188);
|
||||
EXPECT_FLOAT_EQ(boxes[2].rect.left(), 340.94531);
|
||||
EXPECT_FLOAT_EQ(boxes[2].rect.top(), 60);
|
||||
EXPECT_FLOAT_EQ(boxes[2].rect.right(), 345.92188);
|
||||
EXPECT_FLOAT_EQ(boxes[2].rect.right(), 345.94531);
|
||||
EXPECT_FLOAT_EQ(boxes[2].rect.bottom(), 120);
|
||||
|
||||
ASSERT_TRUE(Snapshot());
|
||||
@ -1745,7 +1786,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(HeightOverrideParagraph)) {
|
||||
EXPECT_EQ(boxes.size(), 3ull);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 0);
|
||||
EXPECT_NEAR(boxes[1].rect.top(), 92.805778503417969, 0.0001);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 43.84375);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 43.851562);
|
||||
EXPECT_NEAR(boxes[1].rect.bottom(), 165.49578857421875, 0.0001);
|
||||
|
||||
ASSERT_TRUE(Snapshot());
|
||||
@ -1924,7 +1965,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(RightAlignParagraph)) {
|
||||
// less than width_.
|
||||
ASSERT_DOUBLE_EQ(paragraph->width_, available_width);
|
||||
ASSERT_TRUE(paragraph->longest_line_ < available_width);
|
||||
ASSERT_DOUBLE_EQ(paragraph->longest_line_, 880.765625);
|
||||
ASSERT_DOUBLE_EQ(paragraph->longest_line_, 880.87109375);
|
||||
|
||||
ASSERT_TRUE(paragraph->records_[2].style().equals(text_style));
|
||||
ASSERT_DOUBLE_EQ(paragraph->records_[2].offset().y(), expected_y);
|
||||
@ -2797,14 +2838,14 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(ArabicRectsParagraph)) {
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 2ull);
|
||||
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 556.54688);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 556.48438);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), -0.26855469);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 900);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 44);
|
||||
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 510.09375);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 510.03125);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.top(), -0.26855469);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 557.04688);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 556.98438);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.bottom(), 44);
|
||||
|
||||
ASSERT_EQ(paragraph_style.text_align,
|
||||
@ -2865,9 +2906,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(ArabicRectsLTRLeftAlignParagraph)) {
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 89.40625);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 89.425781);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), -0.26855469);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 121.87891);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 121.90625);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 44);
|
||||
|
||||
ASSERT_EQ(paragraph_style.text_align,
|
||||
@ -2928,14 +2969,14 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(ArabicRectsLTRRightAlignParagraph)) {
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 2ull);
|
||||
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 556.54688);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 556.48438);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), -0.26855469);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 577.78125);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 577.72656);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 44);
|
||||
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 545.30859);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 545.24609);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.top(), -0.26855469);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 557.04688);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 556.98438);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.bottom(), 44);
|
||||
|
||||
ASSERT_EQ(paragraph_style.text_align,
|
||||
@ -3084,7 +3125,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(GetRectsForRangeParagraph)) {
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 56.835938);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 0.40625);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 177.97266);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 177.98438);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 59);
|
||||
|
||||
paint.setColor(SK_ColorGREEN);
|
||||
@ -3094,9 +3135,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(GetRectsForRangeParagraph)) {
|
||||
GetCanvas()->drawRect(boxes[i].rect, paint);
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 177.97266);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 177.98438);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 0.40625);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 507.02344);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 507.03906);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 59);
|
||||
|
||||
paint.setColor(SK_ColorRED);
|
||||
@ -3106,9 +3147,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(GetRectsForRangeParagraph)) {
|
||||
GetCanvas()->drawRect(boxes[i].rect, paint);
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 4ull);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 211.375);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 211.37891);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 59.40625);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 463.61719);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 463.62891);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 118);
|
||||
|
||||
// TODO(garyq): The following set of vals are definitely wrong and
|
||||
@ -3125,9 +3166,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(GetRectsForRangeParagraph)) {
|
||||
GetCanvas()->drawRect(boxes[i].rect, paint);
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 450.1875);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 450.20312);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 0.40625);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 519.47266);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 519.49219);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 59);
|
||||
|
||||
paint.setColor(SK_ColorRED);
|
||||
@ -3213,7 +3254,7 @@ TEST_F(ParagraphTest, LINUX_ONLY(GetRectsForRangeTight)) {
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 0);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 264.09375);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 264.09766);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 74);
|
||||
|
||||
paint.setColor(SK_ColorGREEN);
|
||||
@ -3223,9 +3264,9 @@ TEST_F(ParagraphTest, LINUX_ONLY(GetRectsForRangeTight)) {
|
||||
GetCanvas()->drawRect(boxes[i].rect, paint);
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 2ull);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 264.09375);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 264.09766);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 0);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 595.08594);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 595.09375);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 74);
|
||||
|
||||
ASSERT_TRUE(Snapshot());
|
||||
@ -3293,7 +3334,7 @@ TEST_F(ParagraphTest,
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 16.946615);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 17.429688);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 17.433594);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 88.473305);
|
||||
|
||||
paint.setColor(SK_ColorBLUE);
|
||||
@ -3303,9 +3344,9 @@ TEST_F(ParagraphTest,
|
||||
GetCanvas()->drawRect(boxes[i].rect, paint);
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 67.429688);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 67.433594);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 16.946615);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 190.00781);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 190.01953);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 88.473305);
|
||||
|
||||
paint.setColor(SK_ColorGREEN);
|
||||
@ -3315,9 +3356,9 @@ TEST_F(ParagraphTest,
|
||||
GetCanvas()->drawRect(boxes[i].rect, paint);
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 190.00781);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 190.01953);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 16.946615);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 508.0625);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 508.09375);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 88.473312);
|
||||
|
||||
paint.setColor(SK_ColorRED);
|
||||
@ -3327,34 +3368,34 @@ TEST_F(ParagraphTest,
|
||||
GetCanvas()->drawRect(boxes[i].rect, paint);
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 8ull);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 190.00781);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 190.01953);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 88.473312);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 525.6875);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 525.72266);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 168.47331);
|
||||
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 525.6875);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 525.72266);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.top(), 88.473312);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 570.02344);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 570.05859);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.bottom(), 168.4733);
|
||||
|
||||
EXPECT_FLOAT_EQ(boxes[2].rect.left(), 0);
|
||||
EXPECT_FLOAT_EQ(boxes[2].rect.top(), 168.4733);
|
||||
EXPECT_FLOAT_EQ(boxes[2].rect.right(), 531.57422);
|
||||
EXPECT_FLOAT_EQ(boxes[2].rect.right(), 531.60547);
|
||||
EXPECT_FLOAT_EQ(boxes[2].rect.bottom(), 248.47331);
|
||||
|
||||
EXPECT_FLOAT_EQ(boxes[3].rect.left(), 531.57422);
|
||||
EXPECT_FLOAT_EQ(boxes[3].rect.left(), 531.60547);
|
||||
EXPECT_FLOAT_EQ(boxes[3].rect.top(), 168.4733);
|
||||
EXPECT_FLOAT_EQ(boxes[3].rect.right(), 570.02344);
|
||||
EXPECT_FLOAT_EQ(boxes[3].rect.right(), 570.05859);
|
||||
EXPECT_FLOAT_EQ(boxes[3].rect.bottom(), 248.47331);
|
||||
|
||||
EXPECT_FLOAT_EQ(boxes[4].rect.left(), 0);
|
||||
EXPECT_FLOAT_EQ(boxes[4].rect.top(), 248.47331);
|
||||
EXPECT_FLOAT_EQ(boxes[4].rect.right(), 570.02344);
|
||||
EXPECT_FLOAT_EQ(boxes[4].rect.right(), 570.05859);
|
||||
EXPECT_FLOAT_EQ(boxes[4].rect.bottom(), 328.4733);
|
||||
|
||||
EXPECT_FLOAT_EQ(boxes[5].rect.left(), 0);
|
||||
EXPECT_FLOAT_EQ(boxes[5].rect.top(), 328.47333);
|
||||
EXPECT_FLOAT_EQ(boxes[5].rect.right(), 570.02344);
|
||||
EXPECT_FLOAT_EQ(boxes[5].rect.right(), 570.05859);
|
||||
EXPECT_FLOAT_EQ(boxes[5].rect.bottom(), 408.4733);
|
||||
|
||||
paint.setColor(SK_ColorBLUE);
|
||||
@ -3364,9 +3405,9 @@ TEST_F(ParagraphTest,
|
||||
GetCanvas()->drawRect(boxes[i].rect, paint);
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 463.72656);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 463.75781);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 16.946615);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 530.23047);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 530.26172);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 88.473305);
|
||||
|
||||
paint.setColor(SK_ColorRED);
|
||||
@ -3442,7 +3483,7 @@ TEST_F(ParagraphTest,
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 16.946615);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 17.429688);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 17.433594);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 80);
|
||||
|
||||
paint.setColor(SK_ColorBLUE);
|
||||
@ -3452,9 +3493,9 @@ TEST_F(ParagraphTest,
|
||||
GetCanvas()->drawRect(boxes[i].rect, paint);
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 67.429688);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 67.433594);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 16.946615);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 190.00781);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 190.01953);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 80);
|
||||
|
||||
paint.setColor(SK_ColorGREEN);
|
||||
@ -3464,9 +3505,9 @@ TEST_F(ParagraphTest,
|
||||
GetCanvas()->drawRect(boxes[i].rect, paint);
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 190.00781);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 190.01953);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 16.946615);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 508.0625);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 508.09375);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 80);
|
||||
|
||||
paint.setColor(SK_ColorRED);
|
||||
@ -3476,34 +3517,34 @@ TEST_F(ParagraphTest,
|
||||
GetCanvas()->drawRect(boxes[i].rect, paint);
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 8ull);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 190.00781);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 190.01953);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 80);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 525.6875);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 525.72266);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 160);
|
||||
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 525.6875);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 525.72266);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.top(), 80);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 570.02344);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 570.05859);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.bottom(), 160);
|
||||
|
||||
EXPECT_FLOAT_EQ(boxes[2].rect.left(), 0);
|
||||
EXPECT_FLOAT_EQ(boxes[2].rect.top(), 160);
|
||||
EXPECT_FLOAT_EQ(boxes[2].rect.right(), 531.57422);
|
||||
EXPECT_FLOAT_EQ(boxes[2].rect.right(), 531.60547);
|
||||
EXPECT_FLOAT_EQ(boxes[2].rect.bottom(), 240);
|
||||
|
||||
EXPECT_FLOAT_EQ(boxes[3].rect.left(), 531.57422);
|
||||
EXPECT_FLOAT_EQ(boxes[3].rect.left(), 531.60547);
|
||||
EXPECT_FLOAT_EQ(boxes[3].rect.top(), 160);
|
||||
EXPECT_FLOAT_EQ(boxes[3].rect.right(), 570.02344);
|
||||
EXPECT_FLOAT_EQ(boxes[3].rect.right(), 570.05859);
|
||||
EXPECT_FLOAT_EQ(boxes[3].rect.bottom(), 240);
|
||||
|
||||
EXPECT_FLOAT_EQ(boxes[4].rect.left(), 0);
|
||||
EXPECT_FLOAT_EQ(boxes[4].rect.top(), 240);
|
||||
EXPECT_FLOAT_EQ(boxes[4].rect.right(), 570.02344);
|
||||
EXPECT_FLOAT_EQ(boxes[4].rect.right(), 570.05859);
|
||||
EXPECT_FLOAT_EQ(boxes[4].rect.bottom(), 320);
|
||||
|
||||
EXPECT_FLOAT_EQ(boxes[5].rect.left(), 0);
|
||||
EXPECT_FLOAT_EQ(boxes[5].rect.top(), 320);
|
||||
EXPECT_FLOAT_EQ(boxes[5].rect.right(), 570.02344);
|
||||
EXPECT_FLOAT_EQ(boxes[5].rect.right(), 570.05859);
|
||||
EXPECT_FLOAT_EQ(boxes[5].rect.bottom(), 400);
|
||||
|
||||
paint.setColor(SK_ColorBLUE);
|
||||
@ -3513,9 +3554,9 @@ TEST_F(ParagraphTest,
|
||||
GetCanvas()->drawRect(boxes[i].rect, paint);
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 463.72656);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 463.75781);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 16.946615);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 530.23047);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 530.26172);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 80);
|
||||
|
||||
paint.setColor(SK_ColorRED);
|
||||
@ -3591,7 +3632,7 @@ TEST_F(ParagraphTest,
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 16.946615);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 17.429688);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 17.433594);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 96.946609);
|
||||
|
||||
paint.setColor(SK_ColorBLUE);
|
||||
@ -3601,9 +3642,9 @@ TEST_F(ParagraphTest,
|
||||
GetCanvas()->drawRect(boxes[i].rect, paint);
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 67.429688);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 67.433594);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 16.946615);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 190.00781);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 190.01953);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 96.946609);
|
||||
|
||||
paint.setColor(SK_ColorGREEN);
|
||||
@ -3613,9 +3654,9 @@ TEST_F(ParagraphTest,
|
||||
GetCanvas()->drawRect(boxes[i].rect, paint);
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 190.00781);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 190.01953);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 16.946615);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 508.0625);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 508.09375);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 96.946609);
|
||||
|
||||
paint.setColor(SK_ColorRED);
|
||||
@ -3625,34 +3666,34 @@ TEST_F(ParagraphTest,
|
||||
GetCanvas()->drawRect(boxes[i].rect, paint);
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 8ull);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 190.00781);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 190.01953);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 96.946617);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 525.6875);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 525.72266);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 176.94661);
|
||||
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 525.6875);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 525.72266);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.top(), 96.946617);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 570.02344);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 570.05859);
|
||||
EXPECT_FLOAT_EQ(boxes[1].rect.bottom(), 176.94661);
|
||||
|
||||
EXPECT_FLOAT_EQ(boxes[2].rect.left(), 0);
|
||||
EXPECT_FLOAT_EQ(boxes[2].rect.top(), 176.94661);
|
||||
EXPECT_FLOAT_EQ(boxes[2].rect.right(), 531.57422);
|
||||
EXPECT_FLOAT_EQ(boxes[2].rect.right(), 531.60547);
|
||||
EXPECT_FLOAT_EQ(boxes[2].rect.bottom(), 256.94662);
|
||||
|
||||
EXPECT_FLOAT_EQ(boxes[3].rect.left(), 531.57422);
|
||||
EXPECT_FLOAT_EQ(boxes[3].rect.left(), 531.60547);
|
||||
EXPECT_FLOAT_EQ(boxes[3].rect.top(), 176.94661);
|
||||
EXPECT_FLOAT_EQ(boxes[3].rect.right(), 570.02344);
|
||||
EXPECT_FLOAT_EQ(boxes[3].rect.right(), 570.05859);
|
||||
EXPECT_FLOAT_EQ(boxes[3].rect.bottom(), 256.94662);
|
||||
|
||||
EXPECT_FLOAT_EQ(boxes[4].rect.left(), 0);
|
||||
EXPECT_FLOAT_EQ(boxes[4].rect.top(), 256.94662);
|
||||
EXPECT_FLOAT_EQ(boxes[4].rect.right(), 570.02344);
|
||||
EXPECT_FLOAT_EQ(boxes[4].rect.right(), 570.05859);
|
||||
EXPECT_FLOAT_EQ(boxes[4].rect.bottom(), 336.94662);
|
||||
|
||||
EXPECT_FLOAT_EQ(boxes[5].rect.left(), 0);
|
||||
EXPECT_FLOAT_EQ(boxes[5].rect.top(), 336.94662);
|
||||
EXPECT_FLOAT_EQ(boxes[5].rect.right(), 570.02344);
|
||||
EXPECT_FLOAT_EQ(boxes[5].rect.right(), 570.05859);
|
||||
EXPECT_FLOAT_EQ(boxes[5].rect.bottom(), 416.94662);
|
||||
|
||||
paint.setColor(SK_ColorBLUE);
|
||||
@ -3662,9 +3703,9 @@ TEST_F(ParagraphTest,
|
||||
GetCanvas()->drawRect(boxes[i].rect, paint);
|
||||
}
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 463.72656);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 463.75781);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 16.946615);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 530.23047);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 530.26172);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 96.946609);
|
||||
|
||||
paint.setColor(SK_ColorRED);
|
||||
@ -3857,7 +3898,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(GetRectsForRangeCenterParagraph)) {
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 346.04492);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 0.40625);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 358.49414);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 358.49805);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 59);
|
||||
|
||||
paint.setColor(SK_ColorRED);
|
||||
@ -4042,7 +4083,7 @@ TEST_F(ParagraphTest,
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 346.04492);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 0.40625);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 358.49414);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 358.49805);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 59);
|
||||
|
||||
paint.setColor(SK_ColorBLACK);
|
||||
@ -4066,7 +4107,7 @@ TEST_F(ParagraphTest,
|
||||
EXPECT_EQ(boxes.size(), 1ull);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 331.83594);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 59.40625);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 419.18359);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 419.19531);
|
||||
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 118);
|
||||
|
||||
paint.setColor(SK_ColorRED);
|
||||
@ -4131,7 +4172,7 @@ TEST_F(ParagraphTest, LINUX_ONLY(GetRectsForRangeStrut)) {
|
||||
|
||||
EXPECT_FLOAT_EQ(strut_rect.left(), 0);
|
||||
EXPECT_FLOAT_EQ(strut_rect.top(), 10.611719);
|
||||
EXPECT_FLOAT_EQ(strut_rect.right(), 118.60547);
|
||||
EXPECT_FLOAT_EQ(strut_rect.right(), 118.61719);
|
||||
EXPECT_FLOAT_EQ(strut_rect.bottom(), 27.017969);
|
||||
|
||||
ASSERT_TRUE(tight_rect.contains(strut_rect));
|
||||
@ -4457,9 +4498,9 @@ TEST_F(ParagraphTest, KernScaleParagraph) {
|
||||
|
||||
EXPECT_DOUBLE_EQ(paragraph->records_[0].offset().x(), 0);
|
||||
EXPECT_DOUBLE_EQ(paragraph->records_[1].offset().x(), 0);
|
||||
EXPECT_DOUBLE_EQ(paragraph->records_[2].offset().x(), 207.36328125f);
|
||||
EXPECT_DOUBLE_EQ(paragraph->records_[3].offset().x(), 230.86328125f);
|
||||
EXPECT_DOUBLE_EQ(paragraph->records_[4].offset().x(), 253.35546875f);
|
||||
EXPECT_DOUBLE_EQ(paragraph->records_[2].offset().x(), 207.359375f);
|
||||
EXPECT_DOUBLE_EQ(paragraph->records_[3].offset().x(), 230.859375f);
|
||||
EXPECT_DOUBLE_EQ(paragraph->records_[4].offset().x(), 253.34765625f);
|
||||
}
|
||||
|
||||
TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(NewlineParagraph)) {
|
||||
@ -5112,10 +5153,10 @@ TEST_F(ParagraphTest, FontFallbackParagraph) {
|
||||
ASSERT_TRUE(Snapshot());
|
||||
|
||||
ASSERT_EQ(paragraph->records_.size(), 5ull);
|
||||
ASSERT_DOUBLE_EQ(paragraph->records_[0].GetRunWidth(), 64.19921875);
|
||||
ASSERT_DOUBLE_EQ(paragraph->records_[1].GetRunWidth(), 139.1171875);
|
||||
ASSERT_DOUBLE_EQ(paragraph->records_[0].GetRunWidth(), 64.2109375);
|
||||
ASSERT_DOUBLE_EQ(paragraph->records_[1].GetRunWidth(), 139.1328125);
|
||||
ASSERT_DOUBLE_EQ(paragraph->records_[2].GetRunWidth(), 28);
|
||||
ASSERT_DOUBLE_EQ(paragraph->records_[3].GetRunWidth(), 62.24609375);
|
||||
ASSERT_DOUBLE_EQ(paragraph->records_[3].GetRunWidth(), 62.25);
|
||||
ASSERT_DOUBLE_EQ(paragraph->records_[4].GetRunWidth(), 28);
|
||||
// When a different font is resolved, then the metrics are different.
|
||||
ASSERT_TRUE(paragraph->records_[2].metrics().fTop -
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user