OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 // | 4 // |
5 // Unit tests for eliding and formatting utility functions. | 5 // Unit tests for eliding and formatting utility functions. |
6 | 6 |
7 #include "ui/base/text/text_elider.h" | 7 #include "ui/base/text/text_elider.h" |
8 | 8 |
9 #include "base/file_path.h" | 9 #include "base/file_path.h" |
10 #include "base/i18n/rtl.h" | 10 #include "base/i18n/rtl.h" |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 // That's kinda redundant with net_util_unittests. | 48 // That's kinda redundant with net_util_unittests. |
49 EXPECT_EQ(UTF8ToUTF16(testcases[i].output), | 49 EXPECT_EQ(UTF8ToUTF16(testcases[i].output), |
50 ElideUrl(url, font, | 50 ElideUrl(url, font, |
51 font.GetStringWidth(UTF8ToUTF16(testcases[i].output)), | 51 font.GetStringWidth(UTF8ToUTF16(testcases[i].output)), |
52 std::string())); | 52 std::string())); |
53 } | 53 } |
54 } | 54 } |
55 | 55 |
56 } // namespace | 56 } // namespace |
57 | 57 |
58 TEST(TextEliderTest, ElideEmail) { | 58 // TODO(ios): Complex eliding is off by one for some of those tests on iOS. |
| 59 // See crbug.com/154019 |
| 60 #if defined(OS_IOS) |
| 61 #define MAYBE_ElideEmail DISABLED_ElideEmail |
| 62 #else |
| 63 #define MAYBE_ElideEmail ElideEmail |
| 64 #endif |
| 65 TEST(TextEliderTest, MAYBE_ElideEmail) { |
59 const std::string kEllipsisStr(kEllipsis); | 66 const std::string kEllipsisStr(kEllipsis); |
60 | 67 |
61 // Test emails and their expected elided forms (from which the available | 68 // Test emails and their expected elided forms (from which the available |
62 // widths will be derived). | 69 // widths will be derived). |
63 // For elided forms in which both the username and domain must be elided: | 70 // For elided forms in which both the username and domain must be elided: |
64 // the result (how many characters are left on each side) can be font | 71 // the result (how many characters are left on each side) can be font |
65 // dependent. To avoid this, the username is prefixed with the characters | 72 // dependent. To avoid this, the username is prefixed with the characters |
66 // expected to remain in the domain. | 73 // expected to remain in the domain. |
67 Testcase testcases[] = { | 74 Testcase testcases[] = { |
68 {"g@g.c", "g@g.c"}, | 75 {"g@g.c", "g@g.c"}, |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
240 "C:/" + kEllipsisStr + "/filename"}, | 247 "C:/" + kEllipsisStr + "/filename"}, |
241 #endif | 248 #endif |
242 {"file://filer/foo/bar/file", "filer/foo/bar/file"}, | 249 {"file://filer/foo/bar/file", "filer/foo/bar/file"}, |
243 {"file://filer/foo/bar/file", "filer/foo/" + kEllipsisStr + "/file"}, | 250 {"file://filer/foo/bar/file", "filer/foo/" + kEllipsisStr + "/file"}, |
244 {"file://filer/foo/bar/file", "filer/" + kEllipsisStr + "/file"}, | 251 {"file://filer/foo/bar/file", "filer/" + kEllipsisStr + "/file"}, |
245 }; | 252 }; |
246 | 253 |
247 RunUrlTest(testcases, arraysize(testcases)); | 254 RunUrlTest(testcases, arraysize(testcases)); |
248 } | 255 } |
249 | 256 |
250 TEST(TextEliderTest, TestFilenameEliding) { | 257 // TODO(ios): Complex eliding is off by one for some of those tests on iOS. |
| 258 // See crbug.com/154019 |
| 259 #if defined(OS_IOS) |
| 260 #define MAYBE_TestFilenameEliding DISABLED_TestFilenameEliding |
| 261 #else |
| 262 #define MAYBE_TestFilenameEliding TestFilenameEliding |
| 263 #endif |
| 264 TEST(TextEliderTest, MAYBE_TestFilenameEliding) { |
251 const std::string kEllipsisStr(kEllipsis); | 265 const std::string kEllipsisStr(kEllipsis); |
252 const FilePath::StringType kPathSeparator = | 266 const FilePath::StringType kPathSeparator = |
253 FilePath::StringType().append(1, FilePath::kSeparators[0]); | 267 FilePath::StringType().append(1, FilePath::kSeparators[0]); |
254 | 268 |
255 FileTestcase testcases[] = { | 269 FileTestcase testcases[] = { |
256 {FILE_PATH_LITERAL(""), ""}, | 270 {FILE_PATH_LITERAL(""), ""}, |
257 {FILE_PATH_LITERAL("."), "."}, | 271 {FILE_PATH_LITERAL("."), "."}, |
258 {FILE_PATH_LITERAL("filename.exe"), "filename.exe"}, | 272 {FILE_PATH_LITERAL("filename.exe"), "filename.exe"}, |
259 {FILE_PATH_LITERAL(".longext"), ".longext"}, | 273 {FILE_PATH_LITERAL(".longext"), ".longext"}, |
260 {FILE_PATH_LITERAL("pie"), "pie"}, | 274 {FILE_PATH_LITERAL("pie"), "pie"}, |
(...skipping 612 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
873 | 887 |
874 // Test adds ... at right spot when there is not enough room to break at a | 888 // Test adds ... at right spot when there is not enough room to break at a |
875 // word boundary. | 889 // word boundary. |
876 EXPECT_EQ(L"foooooey\x2026", UTF16ToWide(TruncateString(string, 11))); | 890 EXPECT_EQ(L"foooooey\x2026", UTF16ToWide(TruncateString(string, 11))); |
877 | 891 |
878 // Test completely truncates string if break is on initial whitespace. | 892 // Test completely truncates string if break is on initial whitespace. |
879 EXPECT_EQ(L"\x2026", UTF16ToWide(TruncateString(ASCIIToUTF16(" "), 2))); | 893 EXPECT_EQ(L"\x2026", UTF16ToWide(TruncateString(ASCIIToUTF16(" "), 2))); |
880 } | 894 } |
881 | 895 |
882 } // namespace ui | 896 } // namespace ui |
OLD | NEW |