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

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

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

Powered by Google App Engine
This is Rietveld 408576698