Index: ios/chrome/browser/ui/util/manual_text_framer_unittest.mm |
diff --git a/ios/chrome/browser/ui/util/manual_text_framer_unittest.mm b/ios/chrome/browser/ui/util/manual_text_framer_unittest.mm |
index 0693e45c48af83f24d3d96deeb609bdd3691a71c..2b4e0e27d06e969da7f4b5d8aa92d76935974789 100644 |
--- a/ios/chrome/browser/ui/util/manual_text_framer_unittest.mm |
+++ b/ios/chrome/browser/ui/util/manual_text_framer_unittest.mm |
@@ -8,7 +8,7 @@ |
#include "base/time/time.h" |
#import "ios/chrome/browser/ui/util/core_text_util.h" |
#import "ios/chrome/browser/ui/util/text_frame.h" |
-#import "ios/third_party/material_roboto_font_loader_ios/src/src/MaterialRobotoFontLoader.h" |
+#import "ios/third_party/material_components_ios/src/components/Typography/src/MaterialTypography.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#include "testing/gtest_mac.h" |
#include "testing/platform_test.h" |
@@ -19,12 +19,8 @@ |
#endif |
namespace { |
-// Copy of ManualTextFramer's alignment function. |
-enum class AlignmentFunction : short { CEIL = 0, FLOOR }; |
-CGFloat AlignValueToPixel(CGFloat value, AlignmentFunction function) { |
- static CGFloat scale = [[UIScreen mainScreen] scale]; |
- return function == AlignmentFunction::CEIL ? ceil(value * scale) / scale |
- : floor(value * scale) / scale; |
+void ExpectNearPoint(CGFloat value1, CGFloat value2) { |
+ EXPECT_NEAR(value1, value2, 1); |
} |
class ManualTextFramerTest : public PlatformTest { |
@@ -51,8 +47,8 @@ class ManualTextFramerTest : public PlatformTest { |
text_frame_ = frame; |
} |
- UIFont* RobotoFontWithSize(CGFloat size) { |
- return [[MDFRobotoFontLoader sharedInstance] regularFontOfSize:size]; |
+ UIFont* TypographyFontWithSize(CGFloat size) { |
+ return [[MDCTypography fontLoader] regularFontOfSize:size]; |
} |
NSParagraphStyle* CreateParagraphStyle(CGFloat line_height, |
@@ -88,7 +84,7 @@ class ManualTextFramerTest : public PlatformTest { |
// multiple lines. |
TEST_F(ManualTextFramerTest, NewlineTest) { |
SetText(@"line one\nline two\nline three"); |
- attributes()[NSFontAttributeName] = RobotoFontWithSize(14.0); |
+ attributes()[NSFontAttributeName] = TypographyFontWithSize(14.0); |
attributes()[NSParagraphStyleAttributeName] = CreateParagraphStyle( |
20.0, NSTextAlignmentNatural, NSLineBreakByWordWrapping); |
ApplyAttributesForRange(text_range()); |
@@ -103,7 +99,7 @@ TEST_F(ManualTextFramerTest, NoSpacesText) { |
// whirlpool of Llantysilio of the red cave." |
SetText( |
@"Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch"); |
- attributes()[NSFontAttributeName] = RobotoFontWithSize(16.0); |
+ attributes()[NSFontAttributeName] = TypographyFontWithSize(16.0); |
attributes()[NSParagraphStyleAttributeName] = CreateParagraphStyle( |
20.0, NSTextAlignmentNatural, NSLineBreakByWordWrapping); |
ApplyAttributesForRange(text_range()); |
@@ -128,7 +124,7 @@ TEST_F(ManualTextFramerTest, MultipleNewlineTest) { |
// corresponds with the actual range of the text. |
TEST_F(ManualTextFramerTest, LigatureTest) { |
SetText(@"fffi"); |
- attributes()[NSFontAttributeName] = RobotoFontWithSize(14.0); |
+ attributes()[NSFontAttributeName] = TypographyFontWithSize(14.0); |
attributes()[NSParagraphStyleAttributeName] = CreateParagraphStyle( |
20.0, NSTextAlignmentNatural, NSLineBreakByWordWrapping); |
ApplyAttributesForRange(text_range()); |
@@ -140,7 +136,7 @@ TEST_F(ManualTextFramerTest, LigatureTest) { |
// Tests that ManualTextFramer correctly frames Å |
TEST_F(ManualTextFramerTest, DiacriticTest) { |
SetText(@"A\u030A"); |
- attributes()[NSFontAttributeName] = RobotoFontWithSize(14.0); |
+ attributes()[NSFontAttributeName] = TypographyFontWithSize(14.0); |
attributes()[NSParagraphStyleAttributeName] = CreateParagraphStyle( |
20.0, NSTextAlignmentNatural, NSLineBreakByWordWrapping); |
ApplyAttributesForRange(text_range()); |
@@ -158,7 +154,7 @@ TEST_F(ManualTextFramerTest, TOSTextTest) { |
NSString* const kTOSText = |
@"By using this application, you agree to Chrome’s Terms of Service."; |
SetText(kTOSText); |
- attributes()[NSFontAttributeName] = RobotoFontWithSize(14.0); |
+ attributes()[NSFontAttributeName] = TypographyFontWithSize(14.0); |
attributes()[NSParagraphStyleAttributeName] = CreateParagraphStyle( |
20.0, NSTextAlignmentCenter, NSLineBreakByTruncatingTail); |
attributes()[NSForegroundColorAttributeName] = [UIColor blackColor]; |
@@ -172,7 +168,7 @@ TEST_F(ManualTextFramerTest, TOSTextTest) { |
// Tests that the origin of a left-aligned single line is correct. |
TEST_F(ManualTextFramerTest, SimpleOriginTest) { |
SetText(@"test"); |
- UIFont* font = RobotoFontWithSize(14.0); |
+ UIFont* font = TypographyFontWithSize(14.0); |
attributes()[NSFontAttributeName] = font; |
CGFloat line_height = 20.0; |
attributes()[NSParagraphStyleAttributeName] = CreateParagraphStyle( |
@@ -183,10 +179,8 @@ TEST_F(ManualTextFramerTest, SimpleOriginTest) { |
CheckForLineCountAndFramedRange(1, text_range()); |
FramedLine* line = [text_frame().lines firstObject]; |
EXPECT_EQ(0, line.origin.x); |
- EXPECT_EQ( |
- AlignValueToPixel(CGRectGetHeight(bounds) - line_height - font.descender, |
- AlignmentFunction::FLOOR), |
- line.origin.y); |
+ ExpectNearPoint(CGRectGetHeight(bounds) - line_height - font.descender, |
+ line.origin.y); |
} |
// Tests that lines that are laid out in RTL are right aligned. |
@@ -200,7 +194,7 @@ TEST_F(ManualTextFramerTest, OriginRTLTest) { |
@"\u064e\u0649\u0020\u0627\u0644\u0648\u064e\u0642\u0652\u062a\u0650" |
@"\u0020\u002e\u0020\u0641\u064e\u0627\u0644\u062d\u064e\u064a\u064e" |
@"\u0627\u0629\u064f"); |
- attributes()[NSFontAttributeName] = RobotoFontWithSize(14.0); |
+ attributes()[NSFontAttributeName] = TypographyFontWithSize(14.0); |
attributes()[NSParagraphStyleAttributeName] = CreateParagraphStyle( |
20.0, NSTextAlignmentNatural, NSLineBreakByWordWrapping); |
ApplyAttributesForRange(text_range()); |
@@ -208,10 +202,9 @@ TEST_F(ManualTextFramerTest, OriginRTLTest) { |
FrameTextInBounds(bounds); |
CheckForLineCountAndFramedRange(3, text_range()); |
for (FramedLine* line in text_frame().lines) { |
- CGFloat line_width = |
- AlignValueToPixel(core_text_util::GetTrimmedLineWidth(line.line), |
- AlignmentFunction::CEIL); |
- EXPECT_EQ(CGRectGetMaxX(bounds), line.origin.x + line_width); |
+ ExpectNearPoint( |
+ CGRectGetMaxX(bounds), |
+ line.origin.x + core_text_util::GetTrimmedLineWidth(line.line)); |
} |
} |
@@ -222,7 +215,7 @@ TEST_F(ManualTextFramerTest, CJKLineBreakTest) { |
SetText(@"“触摸搜索”会将所选字词和当前页面(作为上下文)一起发送给 Google 搜索。" |
@"您可以在设置中停用此功能。"); |
// clang-format on |
- attributes()[NSFontAttributeName] = RobotoFontWithSize(16.0); |
+ attributes()[NSFontAttributeName] = TypographyFontWithSize(16.0); |
attributes()[NSParagraphStyleAttributeName] = CreateParagraphStyle( |
16 * 1.15, NSTextAlignmentNatural, NSLineBreakByWordWrapping); |
ApplyAttributesForRange(text_range()); |
@@ -231,11 +224,9 @@ TEST_F(ManualTextFramerTest, CJKLineBreakTest) { |
CheckForLineCountAndFramedRange(3, NSMakeRange(0, 53)); |
// Example without any space-ish characters: |
- // clang-format off |
SetText(@"会将所选字词和当前页面(作为上下文)一起发送给Google搜索。" |
@"您可以在设置中停用此功能。"); |
- // clang-format on |
- attributes()[NSFontAttributeName] = RobotoFontWithSize(16.0); |
+ attributes()[NSFontAttributeName] = TypographyFontWithSize(16.0); |
attributes()[NSParagraphStyleAttributeName] = CreateParagraphStyle( |
16 * 1.15, NSTextAlignmentNatural, NSLineBreakByWordWrapping); |
ApplyAttributesForRange(text_range()); |
@@ -246,7 +237,7 @@ TEST_F(ManualTextFramerTest, CJKLineBreakTest) { |
// Tests that paragraphs with NSTextAlignmentCenter are actually centered. |
TEST_F(ManualTextFramerTest, CenterAlignedTest) { |
SetText(@"xxxx\nyyy\nwww"); |
- attributes()[NSFontAttributeName] = RobotoFontWithSize(14.0); |
+ attributes()[NSFontAttributeName] = TypographyFontWithSize(14.0); |
attributes()[NSParagraphStyleAttributeName] = CreateParagraphStyle( |
20.0, NSTextAlignmentCenter, NSLineBreakByWordWrapping); |
ApplyAttributesForRange(text_range()); |
@@ -254,12 +245,9 @@ TEST_F(ManualTextFramerTest, CenterAlignedTest) { |
FrameTextInBounds(bounds); |
CheckForLineCountAndFramedRange(3, text_range()); |
for (FramedLine* line in text_frame().lines) { |
- CGFloat line_width = |
- AlignValueToPixel(core_text_util::GetTrimmedLineWidth(line.line), |
- AlignmentFunction::CEIL); |
- EXPECT_EQ(AlignValueToPixel(CGRectGetMidX(bounds) - 0.5 * line_width, |
- AlignmentFunction::FLOOR), |
- line.origin.x); |
+ ExpectNearPoint(CGRectGetMidX(bounds) - |
+ 0.5 * core_text_util::GetTrimmedLineWidth(line.line), |
+ line.origin.x); |
} |
} |
@@ -267,7 +255,7 @@ TEST_F(ManualTextFramerTest, CenterAlignedTest) { |
// fit in the bounding height. |
TEST_F(ManualTextFramerTest, LargeLineHeightTest) { |
SetText(@"the last word is very LARGE"); |
- attributes()[NSFontAttributeName] = RobotoFontWithSize(14.0); |
+ attributes()[NSFontAttributeName] = TypographyFontWithSize(14.0); |
attributes()[NSParagraphStyleAttributeName] = CreateParagraphStyle( |
20.0, NSTextAlignmentCenter, NSLineBreakByWordWrapping); |
ApplyAttributesForRange(text_range()); |