@@ -1731,155 +1731,4 @@ TEST_F(ParagraphTest, UnderlineShiftParagraph) {
1731
1731
}
1732
1732
}
1733
1733
1734
- TEST_F (ParagraphTest, DISABLE_ON_WINDOWS(LineHeightsParagraph)) {
1735
- const char * text =
1736
- " This is a very long sentence to test if the text will properly wrap "
1737
- " around and go to the next line. Sometimes, short sentence. Longer "
1738
- " sentences are okay too because they are nessecary. Very short. "
1739
- " Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod "
1740
- " tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim "
1741
- " veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea "
1742
- " commodo consequat. Duis aute irure dolor in reprehenderit in voluptate "
1743
- " velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint "
1744
- " occaecat cupidatat non proident, sunt in culpa qui officia deserunt "
1745
- " mollit anim id est laborum. "
1746
- " Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod "
1747
- " tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim "
1748
- " veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea "
1749
- " commodo consequat. Duis aute irure dolor in reprehenderit in voluptate "
1750
- " velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint "
1751
- " occaecat cupidatat non proident, sunt in culpa qui officia deserunt "
1752
- " mollit anim id est laborum." ;
1753
- auto icu_text = icu::UnicodeString::fromUTF8 (text);
1754
- std::u16string u16_text (icu_text.getBuffer (),
1755
- icu_text.getBuffer () + icu_text.length ());
1756
-
1757
- txt::ParagraphStyle paragraph_style;
1758
- paragraph_style.max_lines = 14 ;
1759
- paragraph_style.text_align = TextAlign::left;
1760
- double line_height = 2.0 ;
1761
- paragraph_style.line_height = line_height;
1762
- txt::ParagraphBuilder builder (paragraph_style, GetTestFontCollection ());
1763
-
1764
- txt::TextStyle text_style;
1765
- text_style.font_family = " Roboto" ;
1766
- text_style.font_size = 26 ;
1767
- text_style.letter_spacing = 1 ;
1768
- text_style.word_spacing = 5 ;
1769
- text_style.color = SK_ColorBLACK;
1770
- text_style.height = 1 ;
1771
- text_style.decoration = TextDecoration::kUnderline ;
1772
- text_style.decoration_color = SK_ColorBLACK;
1773
- builder.PushStyle (text_style);
1774
-
1775
- builder.AddText (u16_text);
1776
-
1777
- builder.Pop ();
1778
-
1779
- auto paragraph = builder.Build ();
1780
- paragraph->Layout (GetTestCanvasWidth () - 100 );
1781
-
1782
- paragraph->Paint (GetCanvas (), 0 , 0 );
1783
-
1784
- ASSERT_TRUE (Snapshot ());
1785
-
1786
- ASSERT_EQ (paragraph->text_ .size (), std::string{text}.length ());
1787
- for (size_t i = 0 ; i < u16_text.length (); i++) {
1788
- ASSERT_EQ (paragraph->text_ [i], u16_text[i]);
1789
- }
1790
- ASSERT_EQ (paragraph->runs_ .runs_ .size (), 1ull );
1791
- ASSERT_EQ (paragraph->runs_ .styles_ .size (), 2ull );
1792
- ASSERT_TRUE (paragraph->runs_ .styles_ [1 ].equals (text_style));
1793
- ASSERT_EQ (paragraph->records_ .size (), paragraph_style.max_lines );
1794
- double expected_y = 24 ;
1795
-
1796
- ASSERT_TRUE (paragraph->records_ [0 ].style ().equals (text_style));
1797
- ASSERT_DOUBLE_EQ (paragraph->records_ [0 ].offset ().y (), expected_y);
1798
- expected_y += 27.5 * line_height;
1799
- ASSERT_DOUBLE_EQ (paragraph->records_ [0 ].offset ().x (), 0 );
1800
-
1801
- ASSERT_TRUE (paragraph->records_ [1 ].style ().equals (text_style));
1802
- ASSERT_DOUBLE_EQ (paragraph->records_ [1 ].offset ().y (), expected_y);
1803
- expected_y += 27.5 * line_height;
1804
- ASSERT_DOUBLE_EQ (paragraph->records_ [1 ].offset ().x (), 0 );
1805
-
1806
- ASSERT_TRUE (paragraph->records_ [2 ].style ().equals (text_style));
1807
- ASSERT_DOUBLE_EQ (paragraph->records_ [2 ].offset ().y (), expected_y);
1808
- expected_y += 27.5 * line_height;
1809
- ASSERT_DOUBLE_EQ (paragraph->records_ [2 ].offset ().x (), 0 );
1810
-
1811
- ASSERT_TRUE (paragraph->records_ [3 ].style ().equals (text_style));
1812
- ASSERT_DOUBLE_EQ (paragraph->records_ [3 ].offset ().y (), expected_y);
1813
- expected_y += 27.5 * 10 * line_height;
1814
- ASSERT_DOUBLE_EQ (paragraph->records_ [3 ].offset ().x (), 0 );
1815
-
1816
- ASSERT_TRUE (paragraph->records_ [13 ].style ().equals (text_style));
1817
- ASSERT_DOUBLE_EQ (paragraph->records_ [13 ].offset ().y (), expected_y);
1818
- ASSERT_DOUBLE_EQ (paragraph->records_ [13 ].offset ().x (), 0 );
1819
-
1820
- ASSERT_EQ (paragraph_style.text_align ,
1821
- paragraph->GetParagraphStyle ().text_align );
1822
-
1823
- // Tests for GetGlyphPositionAtCoordinate()
1824
- ASSERT_EQ (paragraph->GetGlyphPositionAtCoordinate (0 , 0 ).position , 0ull );
1825
- ASSERT_EQ (paragraph->GetGlyphPositionAtCoordinate (1 , 1 ).position , 0ull );
1826
- ASSERT_EQ (paragraph->GetGlyphPositionAtCoordinate (1 , 35 ).position , 68ull );
1827
- ASSERT_EQ (paragraph->GetGlyphPositionAtCoordinate (1 , 70 ).position , 68ull );
1828
- ASSERT_EQ (paragraph->GetGlyphPositionAtCoordinate (2000 , 35 ).position , 134ull );
1829
-
1830
- ASSERT_TRUE (Snapshot ());
1831
- }
1832
-
1833
- TEST_F (ParagraphTest, BaselineParagraph) {
1834
- const char * text =
1835
- " 左線読設Byg後碁給能上目秘使約。満毎冠行来昼本可必図将発確年。今属場育"
1836
- " 図情闘陰野高備込制詩西校客。審対江置講今固残必託地集済決維駆年策。立得" ;
1837
- auto icu_text = icu::UnicodeString::fromUTF8 (text);
1838
- std::u16string u16_text (icu_text.getBuffer (),
1839
- icu_text.getBuffer () + icu_text.length ());
1840
-
1841
- txt::ParagraphStyle paragraph_style;
1842
- paragraph_style.max_lines = 14 ;
1843
- paragraph_style.text_align = TextAlign::justify;
1844
- paragraph_style.line_height = 1.5 ;
1845
- txt::ParagraphBuilder builder (paragraph_style, GetTestFontCollection ());
1846
-
1847
- txt::TextStyle text_style;
1848
- text_style.color = SK_ColorBLACK;
1849
- text_style.font_size = 55 ;
1850
- text_style.letter_spacing = 2 ;
1851
- text_style.font_family = " Source Han Serif CN" ;
1852
- text_style.decoration_style = txt::TextDecorationStyle::kSolid ;
1853
- text_style.decoration_color = SK_ColorBLACK;
1854
- builder.PushStyle (text_style);
1855
-
1856
- builder.AddText (u16_text);
1857
-
1858
- builder.Pop ();
1859
-
1860
- auto paragraph = builder.Build ();
1861
- paragraph->Layout (GetTestCanvasWidth () - 100 );
1862
-
1863
- paragraph->Paint (GetCanvas (), 0 , 0 );
1864
-
1865
- SkPaint paint;
1866
- paint.setStyle (SkPaint::kStroke_Style );
1867
- paint.setAntiAlias (true );
1868
- paint.setStrokeWidth (1 );
1869
- paint.setColor (SK_ColorRED);
1870
- GetCanvas ()->drawLine (0 , paragraph->GetIdeographicBaseline (),
1871
- paragraph->GetMaxWidth (),
1872
- paragraph->GetIdeographicBaseline (), paint);
1873
-
1874
- paint.setColor (SK_ColorGREEN);
1875
-
1876
- GetCanvas ()->drawLine (0 , paragraph->GetAlphabeticBaseline (),
1877
- paragraph->GetMaxWidth (),
1878
- paragraph->GetAlphabeticBaseline (), paint);
1879
- ASSERT_DOUBLE_EQ (paragraph->GetIdeographicBaseline (), 79.035003662109375 );
1880
- ASSERT_DOUBLE_EQ (paragraph->GetAlphabeticBaseline (), 63.305000305175781 );
1881
-
1882
- ASSERT_TRUE (Snapshot ());
1883
- }
1884
-
1885
1734
} // namespace txt
0 commit comments