Chromium Code Reviews| Index: ui/base/text/text_elider_unittest.cc |
| diff --git a/ui/base/text/text_elider_unittest.cc b/ui/base/text/text_elider_unittest.cc |
| index 217170c812c0ab22813390f61dec2b9b660e8e2a..177b96afc6cfa578d5ed0d146e0e7696aebdf12c 100644 |
| --- a/ui/base/text/text_elider_unittest.cc |
| +++ b/ui/base/text/text_elider_unittest.cc |
| @@ -55,6 +55,69 @@ void RunUrlTest(Testcase* testcases, size_t num_testcases) { |
| } // namespace |
| +TEST(TextEliderTest, ElideEmail) { |
| + const std::string kEllipsisStr(kEllipsis); |
| + |
| + Testcase testcases[] = { |
| + {"g@g.c", "g@g.c"}, |
| + {"g@g.c", kEllipsisStr}, |
| + {"ga@co.ca", "ga@c" + kEllipsisStr + "a"}, |
| + {"short@small.com", "s" + kEllipsisStr + "@s" + kEllipsisStr}, |
| + {"short@small.com", "s" + kEllipsisStr + "@small.com"}, |
| + {"short@longbutlotsofspace.com", "short@longbutlotsofspace.com"}, |
| + {"short@longbutnotverymuchspace.com", |
| + "short@long" + kEllipsisStr + ".com"}, |
| + {"short@longbutverytightspace.ca", |
| + "sh" + kEllipsisStr + "@l" + kEllipsisStr + "a"}, |
| + {"longusername@gmail.com", "long" + kEllipsisStr + "@gmail.com"}, |
| + {"elidetothemax@justfits.com", "e" + kEllipsisStr + "@justfits.com"}, |
| + {"somelongemail@thatdoesntfit.com", |
| + "somelo" + kEllipsisStr + "@tha" + kEllipsisStr + "om"}, |
| + {"namefits@butthedomaindoesnt.com", |
| + "namefits@butthedo" + kEllipsisStr + "snt.com"}, |
| + {"widthtootight@nospace.com", kEllipsisStr}, |
| + {"nospaceforusername@l", kEllipsisStr}, |
| + {"little@littlespace.com", "l" + kEllipsisStr + "@l" + kEllipsisStr}, |
| + }; |
| + |
| + const gfx::Font font; |
| + const size_t num_testcases = arraysize(testcases); |
|
asvitkine_google
2012/03/01 22:10:56
Inline this into the loop.
|
| + for (size_t i = 0; i < num_testcases; ++i) { |
| + const string16 expected_output = UTF8ToUTF16(testcases[i].output); |
| + EXPECT_EQ(expected_output, |
| + ElideEmail(UTF8ToUTF16(testcases[i].input), |
| + font, |
| + font.GetStringWidth(expected_output))); |
| + } |
| +} |
| + |
| +TEST(TextEliderTest, ElideEmailMoreSpace) { |
| + const int test_width_factors[] = { |
| + 100, |
| + 10000, |
| + 1000000, |
| + }; |
| + const std::string test_emails[] = { |
| + "a@c", |
| + "test@email.com", |
| + "short@verysuperdupperlongdomain.com", |
| + "supermegalongusername@withasuperlonnnggggdomain.gouv.qc.ca", |
| + }; |
| + |
| + const gfx::Font font; |
| + const size_t num_test_width_factors = arraysize(test_width_factors); |
| + const size_t num_test_emails = arraysize(test_emails); |
|
asvitkine_google
2012/03/01 22:10:56
Don't need these as separate variables, just use a
gab
2012/03/01 23:03:46
Ah ok good to know, thought there would be some re
|
| + for (size_t i = 0; i < num_test_width_factors; ++i) { |
| + const int test_width = test_width_factors[i] * |
| + font.GetAverageCharacterWidth(); |
| + for (size_t j = 0; j < num_test_emails; ++j) { |
| + // Extra space is available: the email should not be elided. |
| + const string16 test_email = UTF8ToUTF16(test_emails[j]); |
| + EXPECT_EQ(test_email, ElideEmail(test_email, font, test_width)); |
| + } |
| + } |
| +} |
| + |
| // Test eliding of commonplace URLs. |
| TEST(TextEliderTest, TestGeneralEliding) { |
| const std::string kEllipsisStr(kEllipsis); |