| 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" },
|
| + };
|
| + 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);
|
| +}
|
| +
|
|
|