OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "storage/common/fileapi/file_system_util.h" | 5 #include "storage/common/fileapi/file_system_util.h" |
6 | 6 |
7 #include "base/files/file_path.h" | 7 #include "base/files/file_path.h" |
8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
9 #include "url/gurl.h" | 9 #include "url/gurl.h" |
10 | 10 |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 { FILE_PATH_LITERAL("foo//////bar"), FILE_PATH_LITERAL("bar") }, | 62 { FILE_PATH_LITERAL("foo//////bar"), FILE_PATH_LITERAL("bar") }, |
63 { FILE_PATH_LITERAL("foo/bar/"), FILE_PATH_LITERAL("bar") }, | 63 { FILE_PATH_LITERAL("foo/bar/"), FILE_PATH_LITERAL("bar") }, |
64 { FILE_PATH_LITERAL("foo/bar/////"), FILE_PATH_LITERAL("bar") }, | 64 { FILE_PATH_LITERAL("foo/bar/////"), FILE_PATH_LITERAL("bar") }, |
65 { FILE_PATH_LITERAL("/bar/////"), FILE_PATH_LITERAL("bar") }, | 65 { FILE_PATH_LITERAL("/bar/////"), FILE_PATH_LITERAL("bar") }, |
66 { FILE_PATH_LITERAL("bar/////"), FILE_PATH_LITERAL("bar") }, | 66 { FILE_PATH_LITERAL("bar/////"), FILE_PATH_LITERAL("bar") }, |
67 { FILE_PATH_LITERAL("bar/"), FILE_PATH_LITERAL("bar") }, | 67 { FILE_PATH_LITERAL("bar/"), FILE_PATH_LITERAL("bar") }, |
68 { FILE_PATH_LITERAL("/bar"), FILE_PATH_LITERAL("bar") }, | 68 { FILE_PATH_LITERAL("/bar"), FILE_PATH_LITERAL("bar") }, |
69 { FILE_PATH_LITERAL("////bar"), FILE_PATH_LITERAL("bar") }, | 69 { FILE_PATH_LITERAL("////bar"), FILE_PATH_LITERAL("bar") }, |
70 { FILE_PATH_LITERAL("bar"), FILE_PATH_LITERAL("bar") } | 70 { FILE_PATH_LITERAL("bar"), FILE_PATH_LITERAL("bar") } |
71 }; | 71 }; |
72 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); ++i) { | 72 for (size_t i = 0; i < arraysize(test_cases); ++i) { |
73 base::FilePath input = base::FilePath(test_cases[i].path); | 73 base::FilePath input = base::FilePath(test_cases[i].path); |
74 base::FilePath base_name = VirtualPath::BaseName(input); | 74 base::FilePath base_name = VirtualPath::BaseName(input); |
75 EXPECT_EQ(test_cases[i].base_name, base_name.value()); | 75 EXPECT_EQ(test_cases[i].base_name, base_name.value()); |
76 } | 76 } |
77 } | 77 } |
78 | 78 |
79 TEST_F(FileSystemUtilTest, VirtualPathDirName) { | 79 TEST_F(FileSystemUtilTest, VirtualPathDirName) { |
80 struct test_data { | 80 struct test_data { |
81 const base::FilePath::StringType path; | 81 const base::FilePath::StringType path; |
82 const base::FilePath::StringType dir_name; | 82 const base::FilePath::StringType dir_name; |
(...skipping 19 matching lines...) Expand all Loading... |
102 { FILE_PATH_LITERAL("foo\\\\\\\\\\\\bar"), FILE_PATH_LITERAL("foo") }, | 102 { FILE_PATH_LITERAL("foo\\\\\\\\\\\\bar"), FILE_PATH_LITERAL("foo") }, |
103 { FILE_PATH_LITERAL("foo\\bar\\"), FILE_PATH_LITERAL("foo") }, | 103 { FILE_PATH_LITERAL("foo\\bar\\"), FILE_PATH_LITERAL("foo") }, |
104 { FILE_PATH_LITERAL("foo\\bar\\\\\\\\\\"), FILE_PATH_LITERAL("foo") }, | 104 { FILE_PATH_LITERAL("foo\\bar\\\\\\\\\\"), FILE_PATH_LITERAL("foo") }, |
105 { FILE_PATH_LITERAL("\\bar\\\\\\\\\\"), FILE_PATH_LITERAL("\\") }, | 105 { FILE_PATH_LITERAL("\\bar\\\\\\\\\\"), FILE_PATH_LITERAL("\\") }, |
106 { FILE_PATH_LITERAL("bar\\\\\\\\\\"), FILE_PATH_LITERAL(".") }, | 106 { FILE_PATH_LITERAL("bar\\\\\\\\\\"), FILE_PATH_LITERAL(".") }, |
107 { FILE_PATH_LITERAL("bar\\"), FILE_PATH_LITERAL(".") }, | 107 { FILE_PATH_LITERAL("bar\\"), FILE_PATH_LITERAL(".") }, |
108 { FILE_PATH_LITERAL("\\bar"), FILE_PATH_LITERAL("\\") }, | 108 { FILE_PATH_LITERAL("\\bar"), FILE_PATH_LITERAL("\\") }, |
109 { FILE_PATH_LITERAL("\\\\\\\\bar"), FILE_PATH_LITERAL("\\") }, | 109 { FILE_PATH_LITERAL("\\\\\\\\bar"), FILE_PATH_LITERAL("\\") }, |
110 #endif | 110 #endif |
111 }; | 111 }; |
112 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); ++i) { | 112 for (size_t i = 0; i < arraysize(test_cases); ++i) { |
113 base::FilePath input = base::FilePath(test_cases[i].path); | 113 base::FilePath input = base::FilePath(test_cases[i].path); |
114 base::FilePath dir_name = VirtualPath::DirName(input); | 114 base::FilePath dir_name = VirtualPath::DirName(input); |
115 EXPECT_EQ(test_cases[i].dir_name, dir_name.value()); | 115 EXPECT_EQ(test_cases[i].dir_name, dir_name.value()); |
116 } | 116 } |
117 } | 117 } |
118 | 118 |
119 TEST_F(FileSystemUtilTest, GetNormalizedFilePath) { | 119 TEST_F(FileSystemUtilTest, GetNormalizedFilePath) { |
120 struct test_data { | 120 struct test_data { |
121 const base::FilePath::StringType path; | 121 const base::FilePath::StringType path; |
122 const base::FilePath::StringType normalized_path; | 122 const base::FilePath::StringType normalized_path; |
123 } test_cases[] = { | 123 } test_cases[] = { |
124 { FILE_PATH_LITERAL(""), FILE_PATH_LITERAL("/") }, | 124 { FILE_PATH_LITERAL(""), FILE_PATH_LITERAL("/") }, |
125 { FILE_PATH_LITERAL("/"), FILE_PATH_LITERAL("/") }, | 125 { FILE_PATH_LITERAL("/"), FILE_PATH_LITERAL("/") }, |
126 { FILE_PATH_LITERAL("foo/bar"), FILE_PATH_LITERAL("/foo/bar") }, | 126 { FILE_PATH_LITERAL("foo/bar"), FILE_PATH_LITERAL("/foo/bar") }, |
127 { FILE_PATH_LITERAL("/foo/bar"), FILE_PATH_LITERAL("/foo/bar") }, | 127 { FILE_PATH_LITERAL("/foo/bar"), FILE_PATH_LITERAL("/foo/bar") }, |
128 #if defined(FILE_PATH_USES_WIN_SEPARATORS) | 128 #if defined(FILE_PATH_USES_WIN_SEPARATORS) |
129 { FILE_PATH_LITERAL("\\foo"), FILE_PATH_LITERAL("/foo") }, | 129 { FILE_PATH_LITERAL("\\foo"), FILE_PATH_LITERAL("/foo") }, |
130 #endif | 130 #endif |
131 }; | 131 }; |
132 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); ++i) { | 132 for (size_t i = 0; i < arraysize(test_cases); ++i) { |
133 base::FilePath input = base::FilePath(test_cases[i].path); | 133 base::FilePath input = base::FilePath(test_cases[i].path); |
134 base::FilePath::StringType normalized_path_string = | 134 base::FilePath::StringType normalized_path_string = |
135 VirtualPath::GetNormalizedFilePath(input); | 135 VirtualPath::GetNormalizedFilePath(input); |
136 EXPECT_EQ(test_cases[i].normalized_path, normalized_path_string); | 136 EXPECT_EQ(test_cases[i].normalized_path, normalized_path_string); |
137 } | 137 } |
138 } | 138 } |
139 | 139 |
140 TEST_F(FileSystemUtilTest, IsAbsolutePath) { | 140 TEST_F(FileSystemUtilTest, IsAbsolutePath) { |
141 EXPECT_TRUE(VirtualPath::IsAbsolute(FILE_PATH_LITERAL("/"))); | 141 EXPECT_TRUE(VirtualPath::IsAbsolute(FILE_PATH_LITERAL("/"))); |
142 EXPECT_TRUE(VirtualPath::IsAbsolute(FILE_PATH_LITERAL("/foo/bar"))); | 142 EXPECT_TRUE(VirtualPath::IsAbsolute(FILE_PATH_LITERAL("/foo/bar"))); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
187 { FILE_PATH_LITERAL("foo"), FILE_PATH_LITERAL("bar") } }, | 187 { FILE_PATH_LITERAL("foo"), FILE_PATH_LITERAL("bar") } }, |
188 { FILE_PATH_LITERAL("c:/bar"), | 188 { FILE_PATH_LITERAL("c:/bar"), |
189 2, | 189 2, |
190 { FILE_PATH_LITERAL("c:"), FILE_PATH_LITERAL("bar") } }, | 190 { FILE_PATH_LITERAL("c:"), FILE_PATH_LITERAL("bar") } }, |
191 #ifdef FILE_PATH_USES_WIN_SEPARATORS | 191 #ifdef FILE_PATH_USES_WIN_SEPARATORS |
192 { FILE_PATH_LITERAL("c:\\bar"), | 192 { FILE_PATH_LITERAL("c:\\bar"), |
193 2, | 193 2, |
194 { FILE_PATH_LITERAL("c:"), FILE_PATH_LITERAL("bar") } }, | 194 { FILE_PATH_LITERAL("c:"), FILE_PATH_LITERAL("bar") } }, |
195 #endif | 195 #endif |
196 }; | 196 }; |
197 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); ++i) { | 197 for (size_t i = 0; i < arraysize(test_cases); ++i) { |
198 base::FilePath input = base::FilePath(test_cases[i].path); | 198 base::FilePath input = base::FilePath(test_cases[i].path); |
199 std::vector<base::FilePath::StringType> components; | 199 std::vector<base::FilePath::StringType> components; |
200 VirtualPath::GetComponents(input, &components); | 200 VirtualPath::GetComponents(input, &components); |
201 EXPECT_EQ(test_cases[i].count, components.size()); | 201 EXPECT_EQ(test_cases[i].count, components.size()); |
202 for (size_t j = 0; j < components.size(); ++j) | 202 for (size_t j = 0; j < components.size(); ++j) |
203 EXPECT_EQ(test_cases[i].components[j], components[j]); | 203 EXPECT_EQ(test_cases[i].components[j], components[j]); |
204 } | 204 } |
205 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); ++i) { | 205 for (size_t i = 0; i < arraysize(test_cases); ++i) { |
206 base::FilePath input = base::FilePath(test_cases[i].path); | 206 base::FilePath input = base::FilePath(test_cases[i].path); |
207 std::vector<std::string> components; | 207 std::vector<std::string> components; |
208 VirtualPath::GetComponentsUTF8Unsafe(input, &components); | 208 VirtualPath::GetComponentsUTF8Unsafe(input, &components); |
209 EXPECT_EQ(test_cases[i].count, components.size()); | 209 EXPECT_EQ(test_cases[i].count, components.size()); |
210 for (size_t j = 0; j < components.size(); ++j) { | 210 for (size_t j = 0; j < components.size(); ++j) { |
211 EXPECT_EQ(base::FilePath(test_cases[i].components[j]).AsUTF8Unsafe(), | 211 EXPECT_EQ(base::FilePath(test_cases[i].components[j]).AsUTF8Unsafe(), |
212 components[j]); | 212 components[j]); |
213 } | 213 } |
214 } | 214 } |
215 } | 215 } |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
298 // Percents must be escaped, otherwise they will be unintentionally unescaped. | 298 // Percents must be escaped, otherwise they will be unintentionally unescaped. |
299 const std::string kMountName = "X%20Y"; | 299 const std::string kMountName = "X%20Y"; |
300 | 300 |
301 const std::string url_string = | 301 const std::string url_string = |
302 GetExternalFileSystemRootURIString(kOriginURL, kMountName); | 302 GetExternalFileSystemRootURIString(kOriginURL, kMountName); |
303 EXPECT_EQ("filesystem:http://foo/external/X%2520Y/", url_string); | 303 EXPECT_EQ("filesystem:http://foo/external/X%2520Y/", url_string); |
304 } | 304 } |
305 | 305 |
306 } // namespace | 306 } // namespace |
307 } // namespace content | 307 } // namespace content |
OLD | NEW |