Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2178)

Unified Diff: app/text_elider_unittest.cc

Issue 5964007: Last part of change for bug 49747.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « app/text_elider.cc ('k') | chrome/browser/ui/app_modal_dialogs/js_modal_dialog.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
+}
+
« no previous file with comments | « app/text_elider.cc ('k') | chrome/browser/ui/app_modal_dialogs/js_modal_dialog.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698