Index: chrome/browser/ui/cocoa/omnibox/omnibox_popup_view_mac_unittest.mm |
diff --git a/chrome/browser/ui/cocoa/omnibox/omnibox_popup_view_mac_unittest.mm b/chrome/browser/ui/cocoa/omnibox/omnibox_popup_view_mac_unittest.mm |
index 75f973af7ac833181e141998dabae5128954c564..2d2d0d3e99dc9516564329b0f4abd900a79fd60d 100644 |
--- a/chrome/browser/ui/cocoa/omnibox/omnibox_popup_view_mac_unittest.mm |
+++ b/chrome/browser/ui/cocoa/omnibox/omnibox_popup_view_mac_unittest.mm |
@@ -327,232 +327,6 @@ TEST_F(OmniboxPopupViewMacTest, DecorateMatchedStringURLMatch) { |
NSBoldFontMask)); |
} |
-// Check that matches with both contents and description come back |
-// with contents at the beginning, description at the end, and |
-// something separating them. Not being specific about the separator |
-// on purpose, in case it changes. |
-TEST_F(OmniboxPopupViewMacTest, MatchText) { |
- NSString* const contents = @"contents"; |
- NSString* const description = @"description"; |
- AutocompleteMatch m = MakeMatch(base::SysNSStringToUTF16(contents), |
- base::SysNSStringToUTF16(description)); |
- |
- NSAttributedString* decorated = |
- OmniboxPopupViewMac::MatchText(m, font_, kLargeWidth); |
- |
- // Result contains the characters of the input in the right places. |
- EXPECT_GT([decorated length], [contents length] + [description length]); |
- EXPECT_TRUE([[decorated string] hasPrefix:contents]); |
- EXPECT_TRUE([[decorated string] hasSuffix:description]); |
- |
- // Check that the description is a different color from the |
- // contents. |
- const NSUInteger descriptionLocation = |
- [decorated length] - [description length]; |
- EXPECT_EQ(RunLengthForAttribute(decorated, 0U, |
- NSForegroundColorAttributeName), |
- descriptionLocation); |
- EXPECT_EQ(RunLengthForAttribute(decorated, descriptionLocation, |
- NSForegroundColorAttributeName), |
- [description length]); |
- |
- // Same font all the way through, nothing bold. |
- EXPECT_EQ(RunLengthForAttribute(decorated, 0U, |
- NSFontAttributeName), [decorated length]); |
- EXPECT_FALSE(RunHasFontTrait(decorated, 0, NSBoldFontMask)); |
-} |
- |
-// Check that MatchText() styles content matches as expected. |
-TEST_F(OmniboxPopupViewMacTest, MatchTextContentsMatch) { |
- NSString* const contents = @"This is a test"; |
- // Match "is". |
- const NSUInteger run_length_1 = 5, run_length_2 = 2, run_length_3 = 7; |
- // Make sure nobody messed up the inputs. |
- EXPECT_EQ(run_length_1 + run_length_2 + run_length_3, [contents length]); |
- |
- AutocompleteMatch m = MakeMatch(base::SysNSStringToUTF16(contents), |
- string16()); |
- |
- // Push each run onto contents classifications. |
- m.contents_class.push_back( |
- ACMatchClassification(0, ACMatchClassification::NONE)); |
- m.contents_class.push_back( |
- ACMatchClassification(run_length_1, ACMatchClassification::MATCH)); |
- m.contents_class.push_back( |
- ACMatchClassification(run_length_1 + run_length_2, |
- ACMatchClassification::NONE)); |
- |
- NSAttributedString* decorated = |
- OmniboxPopupViewMac::MatchText(m, font_, kLargeWidth); |
- |
- // Result has same characters as the input. |
- EXPECT_EQ([decorated length], [contents length]); |
- EXPECT_TRUE([[decorated string] isEqualToString:contents]); |
- |
- // Result is all one color. |
- EXPECT_EQ(RunLengthForAttribute(decorated, 0U, |
- NSForegroundColorAttributeName), |
- [contents length]); |
- |
- // Should have three font runs, not bold, bold, then not bold again. |
- EXPECT_EQ(RunLengthForAttribute(decorated, 0U, |
- NSFontAttributeName), run_length_1); |
- EXPECT_FALSE(RunHasFontTrait(decorated, 0U, NSBoldFontMask)); |
- |
- EXPECT_EQ(RunLengthForAttribute(decorated, run_length_1, |
- NSFontAttributeName), run_length_2); |
- EXPECT_TRUE(RunHasFontTrait(decorated, run_length_1, NSBoldFontMask)); |
- |
- EXPECT_EQ(RunLengthForAttribute(decorated, run_length_1 + run_length_2, |
- NSFontAttributeName), run_length_3); |
- EXPECT_FALSE(RunHasFontTrait(decorated, run_length_1 + run_length_2, |
- NSBoldFontMask)); |
-} |
- |
-// Check that MatchText() styles description matches as expected. |
-TEST_F(OmniboxPopupViewMacTest, MatchTextDescriptionMatch) { |
- NSString* const contents = @"This is a test"; |
- NSString* const description = @"That was a test"; |
- // Match "That was". |
- const NSUInteger run_length_1 = 8, run_length_2 = 7; |
- // Make sure nobody messed up the inputs. |
- EXPECT_EQ(run_length_1 + run_length_2, [description length]); |
- |
- AutocompleteMatch m = MakeMatch(base::SysNSStringToUTF16(contents), |
- base::SysNSStringToUTF16(description)); |
- |
- // Push each run onto contents classifications. |
- m.description_class.push_back( |
- ACMatchClassification(0, ACMatchClassification::MATCH)); |
- m.description_class.push_back( |
- ACMatchClassification(run_length_1, ACMatchClassification::NONE)); |
- |
- NSAttributedString* decorated = |
- OmniboxPopupViewMac::MatchText(m, font_, kLargeWidth); |
- |
- // Result contains the characters of the input. |
- EXPECT_GT([decorated length], [contents length] + [description length]); |
- EXPECT_TRUE([[decorated string] hasPrefix:contents]); |
- EXPECT_TRUE([[decorated string] hasSuffix:description]); |
- |
- // Check that the description is a different color from the |
- // contents. |
- const NSUInteger descriptionLocation = |
- [decorated length] - [description length]; |
- EXPECT_EQ(RunLengthForAttribute(decorated, 0U, |
- NSForegroundColorAttributeName), |
- descriptionLocation); |
- EXPECT_EQ(RunLengthForAttribute(decorated, descriptionLocation, |
- NSForegroundColorAttributeName), |
- [description length]); |
- |
- // Should have three font runs, not bold, bold, then not bold again. |
- // The first run is the contents and the separator, the second run |
- // is the first run of the description. |
- EXPECT_EQ(RunLengthForAttribute(decorated, 0U, |
- NSFontAttributeName), descriptionLocation); |
- EXPECT_FALSE(RunHasFontTrait(decorated, 0U, NSBoldFontMask)); |
- |
- EXPECT_EQ(RunLengthForAttribute(decorated, descriptionLocation, |
- NSFontAttributeName), run_length_1); |
- EXPECT_TRUE(RunHasFontTrait(decorated, descriptionLocation, NSBoldFontMask)); |
- |
- EXPECT_EQ(RunLengthForAttribute(decorated, descriptionLocation + run_length_1, |
- NSFontAttributeName), run_length_2); |
- EXPECT_FALSE(RunHasFontTrait(decorated, descriptionLocation + run_length_1, |
- NSBoldFontMask)); |
-} |
- |
-TEST_F(OmniboxPopupViewMacTest, ElideString) { |
- NSString* const contents = @"This is a test with long contents"; |
- const string16 contents16(base::SysNSStringToUTF16(contents)); |
- |
- const float kWide = 1000.0; |
- const float kNarrow = 20.0; |
- |
- NSDictionary* attributes = |
- [NSDictionary dictionaryWithObject:font_.GetNativeFont() |
- forKey:NSFontAttributeName]; |
- base::scoped_nsobject<NSMutableAttributedString> as( |
- [[NSMutableAttributedString alloc] initWithString:contents |
- attributes:attributes]); |
- |
- // Nothing happens if the space is really wide. |
- NSMutableAttributedString* ret = |
- OmniboxPopupViewMac::ElideString(as, contents16, font_, kWide); |
- EXPECT_TRUE(ret == as); |
- EXPECT_TRUE([[as string] isEqualToString:contents]); |
- |
- // When elided, result is the same as ElideText(). |
- ret = OmniboxPopupViewMac::ElideString(as, contents16, font_, kNarrow); |
- string16 elided = ui::ElideText(contents16, font_, kNarrow, ui::ELIDE_AT_END); |
- EXPECT_TRUE(ret == as); |
- EXPECT_FALSE([[as string] isEqualToString:contents]); |
- EXPECT_TRUE([[as string] isEqualToString:base::SysUTF16ToNSString(elided)]); |
- |
- // When elided, result is the same as ElideText(). |
- ret = OmniboxPopupViewMac::ElideString(as, contents16, font_, 0.0); |
- elided = ui::ElideText(contents16, font_, 0.0, ui::ELIDE_AT_END); |
- EXPECT_TRUE(ret == as); |
- EXPECT_FALSE([[as string] isEqualToString:contents]); |
- EXPECT_TRUE([[as string] isEqualToString:base::SysUTF16ToNSString(elided)]); |
-} |
- |
-TEST_F(OmniboxPopupViewMacTest, MatchTextElide) { |
- NSString* const contents = @"This is a test with long contents"; |
- NSString* const description = @"That was a test"; |
- // Match "long". |
- const NSUInteger run_length_1 = 20, run_length_2 = 4, run_length_3 = 9; |
- // Make sure nobody messed up the inputs. |
- EXPECT_EQ(run_length_1 + run_length_2 + run_length_3, [contents length]); |
- |
- AutocompleteMatch m = MakeMatch(base::SysNSStringToUTF16(contents), |
- base::SysNSStringToUTF16(description)); |
- |
- // Push each run onto contents classifications. |
- m.contents_class.push_back( |
- ACMatchClassification(0, ACMatchClassification::NONE)); |
- m.contents_class.push_back( |
- ACMatchClassification(run_length_1, ACMatchClassification::MATCH)); |
- m.contents_class.push_back( |
- ACMatchClassification(run_length_1 + run_length_2, |
- ACMatchClassification::URL)); |
- |
- // Figure out the width of the contents. |
- NSDictionary* attributes = |
- [NSDictionary dictionaryWithObject:font_.GetNativeFont() |
- forKey:NSFontAttributeName]; |
- const float contentsWidth = [contents sizeWithAttributes:attributes].width; |
- |
- // After accounting for the width of the image, this will force us |
- // to elide the contents. |
- float cellWidth = ceil(contentsWidth / 0.7); |
- |
- NSAttributedString* decorated = |
- OmniboxPopupViewMac::MatchText(m, font_, cellWidth); |
- |
- // Results contain a prefix of the contents and all of description. |
- NSString* commonPrefix = |
- [[decorated string] commonPrefixWithString:contents options:0]; |
- EXPECT_GT([commonPrefix length], 0U); |
- EXPECT_LT([commonPrefix length], [contents length]); |
- EXPECT_TRUE([[decorated string] hasSuffix:description]); |
- |
- // At one point the code had a bug where elided text was being |
- // marked up using pre-elided offsets, resulting in out-of-range |
- // values being passed to NSAttributedString. Push the ellipsis |
- // through part of each run to verify that we don't continue to see |
- // such things. |
- while([commonPrefix length] > run_length_1 - 3) { |
- EXPECT_GT(cellWidth, 0.0); |
- cellWidth -= 1.0; |
- decorated = OmniboxPopupViewMac::MatchText(m, font_, cellWidth); |
- commonPrefix = |
- [[decorated string] commonPrefixWithString:contents options:0]; |
- ASSERT_GT([commonPrefix length], 0U); |
- } |
-} |
- |
TEST_F(OmniboxPopupViewMacTest, UpdatePopupAppearance) { |
base::scoped_nsobject<NSTextField> field( |
[[NSTextField alloc] initWithFrame:NSMakeRect(0, 0, 100, 20)]); |