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

Side by Side Diff: ui/shell_dialogs/select_file_dialog_unittest.cc

Issue 2804793002: Print Preview: Fix failure to save with long page title (Closed)
Patch Set: Remove unused line Created 3 years, 8 months 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 unified diff | Download patch
« no previous file with comments | « ui/shell_dialogs/select_file_dialog.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include <stddef.h>
6
7 #include "base/macros.h"
8 #include "testing/gtest/include/gtest/gtest.h"
9 #include "ui/shell_dialogs/select_file_dialog.h"
10
11 TEST(ShellDialogs, ShortenFileNameIfNeeded) {
12 struct ShortenFileNameTestCase {
13 base::FilePath::StringType input;
14 base::FilePath::StringType expected;
15 } test_cases[] = {
16 // Paths with short paths/file names don't get shortened.
17 {FILE_PATH_LITERAL("folder1111/folder2222/file1.html"),
18 FILE_PATH_LITERAL("folder1111/folder2222/file1.html")},
19
20 // Path with long filename gets shortened to 255 chars
21 {FILE_PATH_LITERAL("folder1111/"
22 "abcdefghijklmnopqrstuvwxyz1234abcdefghijklmnopqrstuvw"
23 "xyz1234abcdefghijklmnopqrstuvwxyz1234abcdefghijklmnop"
24 "qrstuvwxyz1234abcdefghijklmnopqrstuvwxyz1234abcdefghi"
25 "jklmnopqrstuvwxyz1234abcdefghijklmnopqrstuvwxyz1234ab"
26 "cdefghijklmnopqrstuvwxyz1234abcdefghijklmnopqrstuvwxy"
27 "z1234.html"),
28 FILE_PATH_LITERAL("folder1111/"
29 "abcdefghijklmnopqrstuvwxyz1234abcdefghijklmnopqrstuvw"
30 "xyz1234abcdefghijklmnopqrstuvwxyz1234abcdefghijklmnop"
31 "qrstuvwxyz1234abcdefghijklmnopqrstuvwxyz1234abcdefghi"
32 "jklmnopqrstuvwxyz1234abcdefghijklmnopqrstuvwxyz1234ab"
33 "cdefghijklmnopqrstuvwxyz1234abcdefghij.html")},
34
35 // Long path but short filename is not truncated, handled by system open
36 // file dialog.
37 {FILE_PATH_LITERAL(
38 "folder1111/folder2222/folder3333/folder4444/folder5555/folder6666/"
39 "folder7777/folder8888/folder9999/folder0000/folder1111/folder2222/"
40 "folder3333/folder4444/folder5555/folder6666/folder7777/folder8888/"
41 "folder9999/folder0000/folder1111/folder2222/folder3333/folder4444/"
42 "folder5555/folder6666/folder7777/folder8888/folder9999/folder0000/"
43 "file1.pdf"),
44 FILE_PATH_LITERAL(
45 "folder1111/folder2222/folder3333/folder4444/folder5555/folder6666/"
46 "folder7777/folder8888/folder9999/folder0000/folder1111/folder2222/"
47 "folder3333/folder4444/folder5555/folder6666/folder7777/folder8888/"
48 "folder9999/folder0000/folder1111/folder2222/folder3333/folder4444/"
49 "folder5555/folder6666/folder7777/folder8888/folder9999/folder0000/"
50 "file1.pdf")},
51
52 // Long extension with total file name length < 255 is not truncated.
53 {FILE_PATH_LITERAL("folder1111/folder2222/"
54 "file1."
55 "abcdefghijklmnopqrstuvwxyz1234abcdefghijklmnopqrstuvw"
56 "xyz1234abcdefghijklmnopqrstuvwxyz1234abcdefghijklmnop"
57 "qrstuvwxyz1234abcdefghijklmnopqrstuvwxyz1234abcdefghi"
58 "jklmnopqrstuvwxyz1234abcdefghijklmnopqrstuvwxyz1234"),
59 FILE_PATH_LITERAL("folder1111/folder2222/"
60 "file1."
61 "abcdefghijklmnopqrstuvwxyz1234abcdefghijklmnopqrstuvw"
62 "xyz1234abcdefghijklmnopqrstuvwxyz1234abcdefghijklmnop"
63 "qrstuvwxyz1234abcdefghijklmnopqrstuvwxyz1234abcdefghi"
64 "jklmnopqrstuvwxyz1234abcdefghijklmnopqrstuvwxyz123"
65 "4")},
66
67 // Long extension, medium length file name is truncated so that total
68 // file name length = 255
69 {FILE_PATH_LITERAL("folder1111/folder2222/"
70 "file1234567890123456789012345678901234567890123456789"
71 "0."
72 "abcdefghijklmnopqrstuvwxyz1234abcdefghijklmnopqrstuvw"
73 "xyz1234abcdefghijklmnopqrstuvwxyz1234abcdefghijklmnop"
74 "qrstuvwxyz1234abcdefghijklmnopqrstuvwxyz1234abcdefghi"
75 "jklmnopqrstuvwxyz1234abcdefghijklmnopqrstuvwxyz1234"),
76 FILE_PATH_LITERAL("folder1111/folder2222/"
77 "file1234567890123456789012345678901234567890123456789"
78 "0."
79 "abcdefghijklmnopqrstuvwxyz1234abcdefghijklmnopqrstuvw"
80 "xyz1234abcdefghijklmnopqrstuvwxyz1234abcdefghijklmnop"
81 "qrstuvwxyz1234abcdefghijklmnopqrstuvwxyz1234abcdefghi"
82 "jklmnopqrstuvwxyz1234abcdefghijklmnopqrst")},
83
84 // Long extension and long file name -> extension truncated to 13 chars
85 // and file name truncated to 255-13.
86 {FILE_PATH_LITERAL("folder1111/folder2222/"
87 "abcdefghijklmnopqrstuvwxyz1234abcdefghijklmnopqrstuvw"
88 "xyz1234abcdefghijklmnopqrstuvwxyz1234abcdefghijklmnop"
89 "qrstuvwxyz1234abcdefghijklmnopqrstuvwxyz1234abcdefghi"
90 "jklmnopqrstuvwxyz1234abcdefghijklmnopqrstuvwxyz1234ab"
91 "cdefghijklmnopqrstuvwxyz1234abcdefghijklmnopqrstuvwxy"
92 "z1234."
93 "abcdefghijklmnopqrstuvwxyz1234abcdefghijklmnopqrstuvw"
94 "xyz1234abcdefghijklmnopqrstuvwxyz1234abcdefghijklmnop"
95 "qrstuvwxyz1234abcdefghijklmnopqrstuvwxyz1234abcdefghi"
96 "jklmnopqrstuvwxyz1234abcdefghijklmnopqrstuvwxyz1234"),
97 FILE_PATH_LITERAL("folder1111/folder2222/"
98 "abcdefghijklmnopqrstuvwxyz1234abcdefghijklmnopqrstuvw"
99 "xyz1234abcdefghijklmnopqrstuvwxyz1234abcdefghijklmnop"
100 "qrstuvwxyz1234abcdefghijklmnopqrstuvwxyz1234abcdefghi"
101 "jklmnopqrstuvwxyz1234abcdefghijklmnopqrstuvwxyz1234ab"
102 "cdefghijklmnopqrstuvwxyz1234ab.abcdefghijkl")}};
103
104 for (size_t i = 0; i < arraysize(test_cases); ++i) {
105 base::FilePath input =
106 base::FilePath(test_cases[i].input).NormalizePathSeparators();
107 base::FilePath output =
108 base::FilePath(test_cases[i].expected).NormalizePathSeparators();
109 EXPECT_EQ(output.value(),
110 ui::SelectFileDialog::GetShortenedFilePath(input).value());
111 EXPECT_LE(ui::SelectFileDialog::GetShortenedFilePath(input)
112 .BaseName()
113 .value()
114 .length(),
115 255u);
116 }
117 }
OLDNEW
« no previous file with comments | « ui/shell_dialogs/select_file_dialog.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698