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

Side by Side Diff: chrome/browser/sync/util/path_helpers_unittest.cc

Issue 340055: String cleanup in sync code (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 #include "base/logging.h" 5 #include "base/logging.h"
6 #include "base/port.h" 6 #include "base/port.h"
7 #include "build/build_config.h" 7 #include "build/build_config.h"
8 #include "chrome/browser/sync/syncable/path_name_cmp.h" 8 #include "chrome/browser/sync/syncable/path_name_cmp.h"
9 #include "chrome/browser/sync/util/path_helpers.h" 9 #include "chrome/browser/sync/util/path_helpers.h"
10 #include "chrome/browser/sync/util/sync_types.h" 10 #include "chrome/browser/sync/util/sync_types.h"
11 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
12 12
13 namespace syncable { 13 namespace syncable {
14 14
15 class PathHelpersTest : public testing::Test { 15 class PathHelpersTest : public testing::Test {
16 }; 16 };
17 17
18 TEST(PathHelpersTest, TruncatePathStringTest) {
19 // Simple case.
20 PathString str = PSTR("12345");
21 EXPECT_EQ(PSTR("123"), TruncatePathString(str, 3));
22 EXPECT_EQ(str, TruncatePathString(str, str.size()));
23
24 // abcg is "abc" + musical g clef U+1D11E
25 #if PATHSTRING_IS_STD_STRING
26 // UTF-8
27 PathChar abcg[] = {'a', 'b', 'c', 0xF0, 0x9D, 0x84, 0x9E, '\0'};
28 #else // PATHSTRING_IS_STD_STRING
29 // UTF-16
30 PathChar abcg[] = {'a', 'b', 'c', 0xD834, 0xDD1E, '\0'};
31 #endif // PATHSTRING_IS_STD_STRING
32
33 EXPECT_EQ(PSTR("abc"), TruncatePathString(abcg, 4));
34
35 // Further utf-8 tests.
36 #if PATHSTRING_IS_STD_STRING
37 // UTF-8
38
39 EXPECT_EQ(PSTR("abc"), TruncatePathString(abcg, 4));
40 EXPECT_EQ(PSTR("abc"), TruncatePathString(abcg, 5));
41 EXPECT_EQ(PSTR("abc"), TruncatePathString(abcg, 6));
42 EXPECT_EQ(PathString(abcg), TruncatePathString(abcg, 7));
43
44 PathChar abc2[] = {'a', 'b', 'c', 0xC3, 0xB1, '\0'}; // abc(n w/ tilde)
45 EXPECT_EQ(PSTR("abc"), TruncatePathString(abc2, 3));
46 EXPECT_EQ(PSTR("abc"), TruncatePathString(abc2, 4));
47 EXPECT_EQ(PathString(abc2), TruncatePathString(abc2, 5));
48
49 PathChar abc3[] = {'a', 'b', 'c', 0xE2, 0x82, 0xAC, '\0'}; // abc(euro)
50 EXPECT_EQ(PSTR("abc"), TruncatePathString(abc3, 3));
51 EXPECT_EQ(PSTR("abc"), TruncatePathString(abc3, 4));
52 EXPECT_EQ(PSTR("abc"), TruncatePathString(abc3, 5));
53 EXPECT_EQ(PathString(abc3), TruncatePathString(abc3, 6));
54 #endif
55 }
56
57 TEST(PathHelpersTest, PathStrutil) {
58 PathString big = PSTR("abcdef");
59 PathString suffix = PSTR("def");
60 PathString other = PSTR("x");
61 EXPECT_TRUE(HasSuffixPathString(big, suffix));
62 EXPECT_FALSE(HasSuffixPathString(suffix, big));
63 EXPECT_FALSE(HasSuffixPathString(big, other));
64 EXPECT_EQ(PSTR("abc"), StripSuffixPathString(big, suffix));
65 }
66
67 TEST(PathHelpersTest, SanitizePathComponent) { 18 TEST(PathHelpersTest, SanitizePathComponent) {
68 #if defined(OS_WIN) 19 #if defined(OS_WIN)
69 EXPECT_EQ(MakePathComponentOSLegal(L"bar"), L""); 20 EXPECT_EQ(MakePathComponentOSLegal("bar"), "");
70 EXPECT_EQ(MakePathComponentOSLegal(L"bar <"), L"bar"); 21 EXPECT_EQ(MakePathComponentOSLegal("bar <"), "bar");
71 EXPECT_EQ(MakePathComponentOSLegal(L"bar.<"), L"bar"); 22 EXPECT_EQ(MakePathComponentOSLegal("bar.<"), "bar");
72 EXPECT_EQ(MakePathComponentOSLegal(L"prn"), L"prn~1"); 23 EXPECT_EQ(MakePathComponentOSLegal("prn"), "prn~1");
73 EXPECT_EQ(MakePathComponentOSLegal(L"pr>n"), L"prn~1"); 24 EXPECT_EQ(MakePathComponentOSLegal("pr>n"), "prn~1");
74 EXPECT_EQ(MakePathComponentOSLegal(L"ab:c"), L"abc"); 25 EXPECT_EQ(MakePathComponentOSLegal("ab:c"), "abc");
75 EXPECT_EQ(MakePathComponentOSLegal(L"a|bc"), L"abc"); 26 EXPECT_EQ(MakePathComponentOSLegal("a|bc"), "abc");
76 EXPECT_EQ(MakePathComponentOSLegal(L"baz~9"), L""); 27 EXPECT_EQ(MakePathComponentOSLegal("baz~9"), "");
77 EXPECT_EQ(MakePathComponentOSLegal(L"\007"), L"~1"); 28 EXPECT_EQ(MakePathComponentOSLegal("\007"), "~1");
78 EXPECT_EQ(MakePathComponentOSLegal(L"com1.txt.bat"), L"com1~1.txt.bat"); 29 EXPECT_EQ(MakePathComponentOSLegal("com1.txt.bat"), "com1~1.txt.bat");
79 EXPECT_EQ(MakePathComponentOSLegal(L"foo.com1.bat"), L""); 30 EXPECT_EQ(MakePathComponentOSLegal("foo.com1.bat"), "");
80 EXPECT_EQ(MakePathComponentOSLegal(L"\010gg"), L"gg"); 31 EXPECT_EQ(MakePathComponentOSLegal("\010gg"), "gg");
81 EXPECT_EQ(MakePathComponentOSLegal(L"<"), L"~1"); 32 EXPECT_EQ(MakePathComponentOSLegal("<"), "~1");
82 EXPECT_EQ(MakePathComponentOSLegal(L"col:on"), L"colon"); 33 EXPECT_EQ(MakePathComponentOSLegal("col:on"), "colon");
83 EXPECT_EQ(MakePathComponentOSLegal(L"q\""), L"q"); 34 EXPECT_EQ(MakePathComponentOSLegal("q\""), "q");
84 EXPECT_EQ(MakePathComponentOSLegal(L"back\\slAsh"), L"backslAsh"); 35 EXPECT_EQ(MakePathComponentOSLegal("back\\slAsh"), "backslAsh");
85 EXPECT_EQ(MakePathComponentOSLegal(L"sla/sh "), L"slash"); 36 EXPECT_EQ(MakePathComponentOSLegal("sla/sh "), "slash");
86 EXPECT_EQ(MakePathComponentOSLegal(L"s|laSh"), L"slaSh"); 37 EXPECT_EQ(MakePathComponentOSLegal("s|laSh"), "slaSh");
87 EXPECT_EQ(MakePathComponentOSLegal(L"CON"), L"CON~1"); 38 EXPECT_EQ(MakePathComponentOSLegal("CON"), "CON~1");
88 EXPECT_EQ(MakePathComponentOSLegal(L"PRN"), L"PRN~1"); 39 EXPECT_EQ(MakePathComponentOSLegal("PRN"), "PRN~1");
89 EXPECT_EQ(MakePathComponentOSLegal(L"AUX"), L"AUX~1"); 40 EXPECT_EQ(MakePathComponentOSLegal("AUX"), "AUX~1");
90 EXPECT_EQ(MakePathComponentOSLegal(L"NUL"), L"NUL~1"); 41 EXPECT_EQ(MakePathComponentOSLegal("NUL"), "NUL~1");
91 EXPECT_EQ(MakePathComponentOSLegal(L"COM1"), L"COM1~1"); 42 EXPECT_EQ(MakePathComponentOSLegal("COM1"), "COM1~1");
92 EXPECT_EQ(MakePathComponentOSLegal(L"COM2"), L"COM2~1"); 43 EXPECT_EQ(MakePathComponentOSLegal("COM2"), "COM2~1");
93 EXPECT_EQ(MakePathComponentOSLegal(L"COM3"), L"COM3~1"); 44 EXPECT_EQ(MakePathComponentOSLegal("COM3"), "COM3~1");
94 EXPECT_EQ(MakePathComponentOSLegal(L"COM4"), L"COM4~1"); 45 EXPECT_EQ(MakePathComponentOSLegal("COM4"), "COM4~1");
95 EXPECT_EQ(MakePathComponentOSLegal(L"COM5"), L"COM5~1"); 46 EXPECT_EQ(MakePathComponentOSLegal("COM5"), "COM5~1");
96 EXPECT_EQ(MakePathComponentOSLegal(L"COM6"), L"COM6~1"); 47 EXPECT_EQ(MakePathComponentOSLegal("COM6"), "COM6~1");
97 EXPECT_EQ(MakePathComponentOSLegal(L"COM7"), L"COM7~1"); 48 EXPECT_EQ(MakePathComponentOSLegal("COM7"), "COM7~1");
98 EXPECT_EQ(MakePathComponentOSLegal(L"COM8"), L"COM8~1"); 49 EXPECT_EQ(MakePathComponentOSLegal("COM8"), "COM8~1");
99 EXPECT_EQ(MakePathComponentOSLegal(L"COM9"), L"COM9~1"); 50 EXPECT_EQ(MakePathComponentOSLegal("COM9"), "COM9~1");
100 EXPECT_EQ(MakePathComponentOSLegal(L"LPT1"), L"LPT1~1"); 51 EXPECT_EQ(MakePathComponentOSLegal("LPT1"), "LPT1~1");
101 EXPECT_EQ(MakePathComponentOSLegal(L"LPT2"), L"LPT2~1"); 52 EXPECT_EQ(MakePathComponentOSLegal("LPT2"), "LPT2~1");
102 EXPECT_EQ(MakePathComponentOSLegal(L"LPT3"), L"LPT3~1"); 53 EXPECT_EQ(MakePathComponentOSLegal("LPT3"), "LPT3~1");
103 EXPECT_EQ(MakePathComponentOSLegal(L"LPT4"), L"LPT4~1"); 54 EXPECT_EQ(MakePathComponentOSLegal("LPT4"), "LPT4~1");
104 EXPECT_EQ(MakePathComponentOSLegal(L"LPT5"), L"LPT5~1"); 55 EXPECT_EQ(MakePathComponentOSLegal("LPT5"), "LPT5~1");
105 EXPECT_EQ(MakePathComponentOSLegal(L"LPT6"), L"LPT6~1"); 56 EXPECT_EQ(MakePathComponentOSLegal("LPT6"), "LPT6~1");
106 EXPECT_EQ(MakePathComponentOSLegal(L"LPT7"), L"LPT7~1"); 57 EXPECT_EQ(MakePathComponentOSLegal("LPT7"), "LPT7~1");
107 EXPECT_EQ(MakePathComponentOSLegal(L"LPT8"), L"LPT8~1"); 58 EXPECT_EQ(MakePathComponentOSLegal("LPT8"), "LPT8~1");
108 EXPECT_EQ(MakePathComponentOSLegal(L"LPT9"), L"LPT9~1"); 59 EXPECT_EQ(MakePathComponentOSLegal("LPT9"), "LPT9~1");
109 EXPECT_EQ(MakePathComponentOSLegal(L"bar~bar"), L""); 60 EXPECT_EQ(MakePathComponentOSLegal("bar~bar"), "");
110 EXPECT_EQ(MakePathComponentOSLegal(L"adlr~-3"), L""); 61 EXPECT_EQ(MakePathComponentOSLegal("adlr~-3"), "");
111 EXPECT_EQ(MakePathComponentOSLegal(L"tilde~"), L""); 62 EXPECT_EQ(MakePathComponentOSLegal("tilde~"), "");
112 EXPECT_EQ(MakePathComponentOSLegal(L"mytext.txt"), L""); 63 EXPECT_EQ(MakePathComponentOSLegal("mytext.txt"), "");
113 EXPECT_EQ(MakePathComponentOSLegal(L"mytext|.txt"), L"mytext.txt"); 64 EXPECT_EQ(MakePathComponentOSLegal("mytext|.txt"), "mytext.txt");
114 EXPECT_EQ(MakePathComponentOSLegal(L"okay.com1.txt"), L""); 65 EXPECT_EQ(MakePathComponentOSLegal("okay.com1.txt"), "");
115 EXPECT_EQ(MakePathComponentOSLegal(L"software-3.tar.gz"), L""); 66 EXPECT_EQ(MakePathComponentOSLegal("software-3.tar.gz"), "");
116 EXPECT_EQ(MakePathComponentOSLegal(L"<"), L"~1"); 67 EXPECT_EQ(MakePathComponentOSLegal("<"), "~1");
117 EXPECT_EQ(MakePathComponentOSLegal(L"<.<"), L"~1"); 68 EXPECT_EQ(MakePathComponentOSLegal("<.<"), "~1");
118 EXPECT_EQ(MakePathComponentOSLegal(L"<.<txt"), L".txt"); 69 EXPECT_EQ(MakePathComponentOSLegal("<.<txt"), ".txt");
119 EXPECT_EQ(MakePathComponentOSLegal(L"txt<.<"), L"txt"); 70 EXPECT_EQ(MakePathComponentOSLegal("txt<.<"), "txt");
120 #else // !defined(OS_WIN) 71 #else // !defined(OS_WIN)
121
122 EXPECT_EQ(MakePathComponentOSLegal("bar"), ""); 72 EXPECT_EQ(MakePathComponentOSLegal("bar"), "");
123 EXPECT_EQ(MakePathComponentOSLegal("b"), ""); 73 EXPECT_EQ(MakePathComponentOSLegal("b"), "");
124 EXPECT_EQ(MakePathComponentOSLegal("A"), ""); 74 EXPECT_EQ(MakePathComponentOSLegal("A"), "");
125 EXPECT_EQ(MakePathComponentOSLegal("<'|"), ""); 75 EXPECT_EQ(MakePathComponentOSLegal("<'|"), "");
126 EXPECT_EQ(MakePathComponentOSLegal("/"), ":"); 76 EXPECT_EQ(MakePathComponentOSLegal("/"), ":");
127 EXPECT_EQ(MakePathComponentOSLegal(":"), ""); 77 EXPECT_EQ(MakePathComponentOSLegal(":"), "");
128
129 #endif // defined(OS_WIN) 78 #endif // defined(OS_WIN)
130 } 79 }
131 80
132 } // namespace syncable 81 } // namespace syncable
OLDNEW
« no previous file with comments | « chrome/browser/sync/util/path_helpers_posix.cc ('k') | chrome/browser/sync/util/path_helpers_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698