Chromium Code Reviews| Index: app/text_elider_unittest.cc |
| =================================================================== |
| --- app/text_elider_unittest.cc (revision 69878) |
| +++ app/text_elider_unittest.cc (working copy) |
| @@ -319,6 +319,122 @@ |
| std::wstring output; |
| EXPECT_EQ(cases[i].result, |
| gfx::ElideString(cases[i].input, cases[i].max_len, &output)); |
| - EXPECT_TRUE(output == cases[i].output); |
| + EXPECT_EQ(cases[i].output, output); |
| } |
| } |
| + |
| +TEST(TextEliderTest, ElideRectangleString) { |
| + struct TestData { |
| + const wchar_t* input; |
| + int max_rows; |
| + int max_cols; |
| + bool result; |
| + const wchar_t* output; |
| + } cases[] = { |
| + { L"", 0, 0, false, L"" }, |
| + { L"", 1, 1, false, L"" }, |
| + { L"Hi, my name is\nTom", 0, 0, true, L"..." }, |
| + { L"Hi, my name is\nTom", 1, 0, true, L"\n..." }, |
| + { L"Hi, my name is\nTom", 0, 1, true, L"..." }, |
| + { L"Hi, my name is\nTom", 1, 1, true, L"H\n..." }, |
| + { L"Hi, my name is\nTom", 2, 1, true, L"H\ni\n..." }, |
| + { L"Hi, my name is\nTom", 3, 1, true, L"H\ni\n,\n..." }, |
| + { L"Hi, my name is\nTom", 4, 1, true, L"H\ni\n,\n \n..." }, |
| + { L"Hi, my name is\nTom", 5, 1, true, L"H\ni\n,\n \nm\n..." }, |
| + { L"Hi, my name is\nTom", 0, 2, true, L"..." }, |
| + { L"Hi, my name is\nTom", 1, 2, true, L"Hi\n..." }, |
| + { L"Hi, my name is\nTom", 2, 2, true, L"Hi\n, \n..." }, |
| + { L"Hi, my name is\nTom", 3, 2, true, L"Hi\n, \nmy\n..." }, |
| + { L"Hi, my name is\nTom", 4, 2, true, L"Hi\n, \nmy\n n\n..." }, |
| + { L"Hi, my name is\nTom", 5, 2, true, L"Hi\n, \nmy\n n\nam\n..." }, |
| + { L"Hi, my name is\nTom", 0, 3, true, L"..." }, |
| + { L"Hi, my name is\nTom", 1, 3, true, L"Hi,\n..." }, |
| + { L"Hi, my name is\nTom", 2, 3, true, L"Hi,\n my\n..." }, |
| + { L"Hi, my name is\nTom", 3, 3, true, L"Hi,\n my\n na\n..." }, |
| + { L"Hi, my name is\nTom", 4, 3, true, L"Hi,\n my\n na\nme \n..." }, |
| + { L"Hi, my name is\nTom", 5, 3, true, L"Hi,\n my\n na\nme \nis\n..." }, |
| + { L"Hi, my name is\nTom", 1, 4, true, L"Hi, \n..." }, |
| + { L"Hi, my name is\nTom", 2, 4, true, L"Hi, \nmy n\n..." }, |
| + { L"Hi, my name is\nTom", 3, 4, true, L"Hi, \nmy n\name \n..." }, |
| + { L"Hi, my name is\nTom", 4, 4, true, L"Hi, \nmy n\name \nis\n..." }, |
| + { L"Hi, my name is\nTom", 5, 4, false, L"Hi, \nmy n\name \nis\nTom" }, |
| + { L"Hi, my name is\nTom", 1, 5, true, L"Hi, \n..." }, |
| + { L"Hi, my name is\nTom", 2, 5, true, L"Hi, \nmy na\n..." }, |
| + { L"Hi, my name is\nTom", 3, 5, true, L"Hi, \nmy na\nme \n..." }, |
| + { L"Hi, my name is\nTom", 4, 5, true, L"Hi, \nmy na\nme \nis\n..." }, |
| + { L"Hi, my name is\nTom", 5, 5, false, L"Hi, \nmy na\nme \nis\nTom" }, |
| + { L"Hi, my name is\nTom", 1, 6, true, L"Hi, \n..." }, |
| + { L"Hi, my name is\nTom", 2, 6, true, L"Hi, \nmy \n..." }, |
| + { L"Hi, my name is\nTom", 3, 6, true, L"Hi, \nmy \nname \n..." }, |
| + { L"Hi, my name is\nTom", 4, 6, true, L"Hi, \nmy \nname \nis\n..." }, |
| + { L"Hi, my name is\nTom", 5, 6, false, L"Hi, \nmy \nname \nis\nTom" }, |
| + { L"Hi, my name is\nTom", 1, 7, true, L"Hi, \n..." }, |
| + { L"Hi, my name is\nTom", 2, 7, true, L"Hi, \nmy \n..." }, |
| + { L"Hi, my name is\nTom", 3, 7, true, L"Hi, \nmy \nname \n..." }, |
| + { L"Hi, my name is\nTom", 4, 7, true, L"Hi, \nmy \nname \nis\n..." }, |
| + { L"Hi, my name is\nTom", 5, 7, false, L"Hi, \nmy \nname \nis\nTom" }, |
| + { L"Hi, my name is\nTom", 1, 8, true, L"Hi, my \n..." }, |
| + { L"Hi, my name is\nTom", 2, 8, true, L"Hi, my \nname \n..." }, |
| + { L"Hi, my name is\nTom", 3, 8, true, L"Hi, my \nname \nis\n..." }, |
| + { L"Hi, my name is\nTom", 4, 8, false, L"Hi, my \nname \nis\nTom" }, |
| + { L"Hi, my name is\nTom", 1, 9, true, L"Hi, my \n..." }, |
| + { L"Hi, my name is\nTom", 2, 9, true, L"Hi, my \nname is\n..." }, |
| + { L"Hi, my name is\nTom", 3, 9, false, L"Hi, my \nname is\nTom" }, |
| + { L"Hi, my name is\nTom", 1, 10, true, L"Hi, my \n..." }, |
| + { L"Hi, my name is\nTom", 2, 10, true, L"Hi, my \nname is\n..." }, |
| + { L"Hi, my name is\nTom", 3, 10, false, L"Hi, my \nname is\nTom" }, |
| + { L"Hi, my name is\nTom", 1, 11, true, L"Hi, my \n..." }, |
| + { L"Hi, my name is\nTom", 2, 11, true, L"Hi, my \nname is\n..." }, |
| + { L"Hi, my name is\nTom", 3, 11, false, L"Hi, my \nname is\nTom" }, |
| + { L"Hi, my name is\nTom", 1, 12, true, L"Hi, my \n..." }, |
| + { L"Hi, my name is\nTom", 2, 12, true, L"Hi, my \nname is\n..." }, |
| + { L"Hi, my name is\nTom", 3, 12, false, L"Hi, my \nname is\nTom" }, |
| + { L"Hi, my name is\nTom", 1, 13, true, L"Hi, my name \n..." }, |
| + { L"Hi, my name is\nTom", 2, 13, true, L"Hi, my name \nis\n..." }, |
| + { L"Hi, my name is\nTom", 3, 13, false, L"Hi, my name \nis\nTom" }, |
| + { L"Hi, my name is\nTom", 1, 20, true, L"Hi, my name is\n..." }, |
| + { L"Hi, my name is\nTom", 2, 20, false, L"Hi, my name is\nTom" }, |
| + { L"Hi, my name is Tom", 1, 40, false, L"Hi, my name is Tom" }, |
|
Evan Martin
2010/12/21 23:39:18
Awesome test suite!
|
| + }; |
| + string16 output; |
| + for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); ++i) { |
| + EXPECT_EQ(cases[i].result, |
| + gfx::ElideRectangleString(WideToUTF16(cases[i].input), |
| + cases[i].max_rows, cases[i].max_cols, |
| + &output)); |
| + EXPECT_EQ(cases[i].output, UTF16ToWide(output)); |
| + } |
| +} |
| + |
| +TEST(TextEliderTest, ElideRectangleWide16) { |
| + // Two greek words separated by space. |
| + const string16 str(WideToUTF16( |
| + L"\x03a0\x03b1\x03b3\x03ba\x03cc\x03c3\x03bc\x03b9" |
| + L"\x03bf\x03c2\x0020\x0399\x03c3\x03c4\x03cc\x03c2")); |
| + const string16 out1(WideToUTF16( |
| + L"\x03a0\x03b1\x03b3\x03ba\n" |
| + L"\x03cc\x03c3\x03bc\x03b9\n" |
| + L"...")); |
| + const string16 out2(WideToUTF16( |
| + L"\x03a0\x03b1\x03b3\x03ba\x03cc\x03c3\x03bc\x03b9\x03bf\x03c2\x0020\n" |
| + L"\x0399\x03c3\x03c4\x03cc\x03c2")); |
| + string16 output; |
| + EXPECT_TRUE(gfx::ElideRectangleString(str, 2, 4, &output)); |
| + EXPECT_EQ(out1, output); |
| + EXPECT_FALSE(gfx::ElideRectangleString(str, 2, 12, &output)); |
| + EXPECT_EQ(out2, output); |
| +} |
| + |
| +TEST(TextEliderTest, ElideRectangleWide32) { |
| + // Four U+1D49C MATHEMATICAL SCRIPT CAPITAL A followed by space "aaaaa". |
| + const string16 str(UTF8ToUTF16( |
| + "\xF0\x9D\x92\x9C\xF0\x9D\x92\x9C\xF0\x9D\x92\x9C\xF0\x9D\x92\x9C" |
| + " aaaaa")); |
| + const string16 out(UTF8ToUTF16( |
| + "\xF0\x9D\x92\x9C\xF0\x9D\x92\x9C\xF0\x9D\x92\x9C\n" |
| + "\xF0\x9D\x92\x9C \naaa\n...")); |
| + string16 output; |
| + EXPECT_TRUE(gfx::ElideRectangleString(str, 3, 3, &output)); |
| + EXPECT_EQ(out, output); |
| +} |
| + |