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 #include "webkit/fileapi/file_system_url.h" | 5 #include "webkit/fileapi/file_system_url.h" |
6 | 6 |
7 #include "base/file_path.h" | 7 #include "base/file_path.h" |
8 #include "googleurl/src/gurl.h" | 8 #include "googleurl/src/gurl.h" |
9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
10 #include "webkit/fileapi/external_mount_points.h" | 10 #include "webkit/fileapi/external_mount_points.h" |
(...skipping 23 matching lines...) Expand all Loading... |
34 case kFileSystemTypeIsolated: | 34 case kFileSystemTypeIsolated: |
35 return IsolatedContext::GetInstance()->CreateCrackedFileSystemURL( | 35 return IsolatedContext::GetInstance()->CreateCrackedFileSystemURL( |
36 url.origin(), url.type(), url.path()); | 36 url.origin(), url.type(), url.path()); |
37 default: | 37 default: |
38 return url; | 38 return url; |
39 } | 39 } |
40 } | 40 } |
41 | 41 |
42 FileSystemURL CreateExternalFileSystemURL(const GURL& origin, | 42 FileSystemURL CreateExternalFileSystemURL(const GURL& origin, |
43 FileSystemType type, | 43 FileSystemType type, |
44 const FilePath& path) { | 44 const base::FilePath& path) { |
45 return ExternalMountPoints::GetSystemInstance()->CreateCrackedFileSystemURL( | 45 return ExternalMountPoints::GetSystemInstance()->CreateCrackedFileSystemURL( |
46 origin, type, path); | 46 origin, type, path); |
47 } | 47 } |
48 | 48 |
49 std::string NormalizedUTF8Path(const FilePath& path) { | 49 std::string NormalizedUTF8Path(const base::FilePath& path) { |
50 return path.NormalizePathSeparators().AsUTF8Unsafe(); | 50 return path.NormalizePathSeparators().AsUTF8Unsafe(); |
51 } | 51 } |
52 | 52 |
53 } // namespace | 53 } // namespace |
54 | 54 |
55 TEST(FileSystemURLTest, ParsePersistent) { | 55 TEST(FileSystemURLTest, ParsePersistent) { |
56 FileSystemURL url = CreateFileSystemURL( | 56 FileSystemURL url = CreateFileSystemURL( |
57 "filesystem:http://chromium.org/persistent/directory/file"); | 57 "filesystem:http://chromium.org/persistent/directory/file"); |
58 ASSERT_TRUE(url.is_valid()); | 58 ASSERT_TRUE(url.is_valid()); |
59 EXPECT_EQ("http://chromium.org/", url.origin().spec()); | 59 EXPECT_EQ("http://chromium.org/", url.origin().spec()); |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 const FileSystemURL a = CreateFileSystemURL( | 133 const FileSystemURL a = CreateFileSystemURL( |
134 "filesystem:http://chromium.org/temporary/dir a/file a"); | 134 "filesystem:http://chromium.org/temporary/dir a/file a"); |
135 const FileSystemURL b = CreateFileSystemURL( | 135 const FileSystemURL b = CreateFileSystemURL( |
136 "filesystem:http://chromium.org/persistent/dir a/file a"); | 136 "filesystem:http://chromium.org/persistent/dir a/file a"); |
137 EXPECT_EQ(a.type() < b.type(), compare(a, b)); | 137 EXPECT_EQ(a.type() < b.type(), compare(a, b)); |
138 EXPECT_EQ(b.type() < a.type(), compare(b, a)); | 138 EXPECT_EQ(b.type() < a.type(), compare(b, a)); |
139 } | 139 } |
140 | 140 |
141 TEST(FileSystemURLTest, WithPath) { | 141 TEST(FileSystemURLTest, WithPath) { |
142 const GURL kURL("filesystem:http://chromium.org/temporary/dir"); | 142 const GURL kURL("filesystem:http://chromium.org/temporary/dir"); |
143 const FilePath::StringType paths[] = { | 143 const base::FilePath::StringType paths[] = { |
144 FPL("dir a"), | 144 FPL("dir a"), |
145 FPL("dir a/file 1"), | 145 FPL("dir a/file 1"), |
146 FPL("dir a/dir b"), | 146 FPL("dir a/dir b"), |
147 FPL("dir a/dir b/file 2"), | 147 FPL("dir a/dir b/file 2"), |
148 }; | 148 }; |
149 | 149 |
150 const FileSystemURL base = FileSystemURL::CreateForTest(kURL); | 150 const FileSystemURL base = FileSystemURL::CreateForTest(kURL); |
151 for (size_t i = 0; i < arraysize(paths); ++i) { | 151 for (size_t i = 0; i < arraysize(paths); ++i) { |
152 const FileSystemURL url = base.WithPath(FilePath(paths[i])); | 152 const FileSystemURL url = base.WithPath(base::FilePath(paths[i])); |
153 EXPECT_EQ(paths[i], url.path().value()); | 153 EXPECT_EQ(paths[i], url.path().value()); |
154 EXPECT_EQ(base.origin().spec(), url.origin().spec()); | 154 EXPECT_EQ(base.origin().spec(), url.origin().spec()); |
155 EXPECT_EQ(base.type(), url.type()); | 155 EXPECT_EQ(base.type(), url.type()); |
156 EXPECT_EQ(base.mount_type(), url.mount_type()); | 156 EXPECT_EQ(base.mount_type(), url.mount_type()); |
157 EXPECT_EQ(base.filesystem_id(), url.filesystem_id()); | 157 EXPECT_EQ(base.filesystem_id(), url.filesystem_id()); |
158 } | 158 } |
159 } | 159 } |
160 | 160 |
161 TEST(FileSystemURLTest, WithPathForExternal) { | 161 TEST(FileSystemURLTest, WithPathForExternal) { |
162 const std::string kId = "foo"; | 162 const std::string kId = "foo"; |
163 ScopedExternalFileSystem scoped_fs(kId, kFileSystemTypeSyncable, FilePath()); | 163 ScopedExternalFileSystem scoped_fs(kId, kFileSystemTypeSyncable, base::FilePat
h()); |
164 const FilePath kVirtualRoot = scoped_fs.GetVirtualRootPath(); | 164 const base::FilePath kVirtualRoot = scoped_fs.GetVirtualRootPath(); |
165 | 165 |
166 const FilePath::CharType kBasePath[] = FPL("dir"); | 166 const base::FilePath::CharType kBasePath[] = FPL("dir"); |
167 const FilePath::StringType paths[] = { | 167 const base::FilePath::StringType paths[] = { |
168 FPL("dir a"), | 168 FPL("dir a"), |
169 FPL("dir a/file 1"), | 169 FPL("dir a/file 1"), |
170 FPL("dir a/dir b"), | 170 FPL("dir a/dir b"), |
171 FPL("dir a/dir b/file 2"), | 171 FPL("dir a/dir b/file 2"), |
172 }; | 172 }; |
173 | 173 |
174 const FileSystemURL base = FileSystemURL::CreateForTest( | 174 const FileSystemURL base = FileSystemURL::CreateForTest( |
175 GURL("http://example.com/"), | 175 GURL("http://example.com/"), |
176 kFileSystemTypeExternal, | 176 kFileSystemTypeExternal, |
177 kVirtualRoot.Append(kBasePath)); | 177 kVirtualRoot.Append(kBasePath)); |
178 | 178 |
179 for (size_t i = 0; i < arraysize(paths); ++i) { | 179 for (size_t i = 0; i < arraysize(paths); ++i) { |
180 const FileSystemURL url = base.WithPath(FilePath(paths[i])); | 180 const FileSystemURL url = base.WithPath(base::FilePath(paths[i])); |
181 EXPECT_EQ(paths[i], url.path().value()); | 181 EXPECT_EQ(paths[i], url.path().value()); |
182 EXPECT_EQ(base.origin().spec(), url.origin().spec()); | 182 EXPECT_EQ(base.origin().spec(), url.origin().spec()); |
183 EXPECT_EQ(base.type(), url.type()); | 183 EXPECT_EQ(base.type(), url.type()); |
184 EXPECT_EQ(base.mount_type(), url.mount_type()); | 184 EXPECT_EQ(base.mount_type(), url.mount_type()); |
185 EXPECT_EQ(base.filesystem_id(), url.filesystem_id()); | 185 EXPECT_EQ(base.filesystem_id(), url.filesystem_id()); |
186 } | 186 } |
187 } | 187 } |
188 | 188 |
189 TEST(FileSystemURLTest, IsParent) { | 189 TEST(FileSystemURLTest, IsParent) { |
190 ScopedExternalFileSystem scoped1("foo", kFileSystemTypeSyncable, FilePath()); | 190 ScopedExternalFileSystem scoped1("foo", kFileSystemTypeSyncable, base::FilePat
h()); |
191 ScopedExternalFileSystem scoped2("bar", kFileSystemTypeSyncable, FilePath()); | 191 ScopedExternalFileSystem scoped2("bar", kFileSystemTypeSyncable, base::FilePat
h()); |
192 | 192 |
193 const std::string root1 = GetFileSystemRootURI( | 193 const std::string root1 = GetFileSystemRootURI( |
194 GURL("http://example.com"), kFileSystemTypeTemporary).spec(); | 194 GURL("http://example.com"), kFileSystemTypeTemporary).spec(); |
195 const std::string root2 = GetSyncableFileSystemRootURI( | 195 const std::string root2 = GetSyncableFileSystemRootURI( |
196 GURL("http://example.com"), "foo").spec(); | 196 GURL("http://example.com"), "foo").spec(); |
197 const std::string root3 = GetSyncableFileSystemRootURI( | 197 const std::string root3 = GetSyncableFileSystemRootURI( |
198 GURL("http://example.com"), "bar").spec(); | 198 GURL("http://example.com"), "bar").spec(); |
199 const std::string root4 = GetFileSystemRootURI( | 199 const std::string root4 = GetFileSystemRootURI( |
200 GURL("http://chromium.org"), kFileSystemTypeTemporary).spec(); | 200 GURL("http://chromium.org"), kFileSystemTypeTemporary).spec(); |
201 | 201 |
(...skipping 23 matching lines...) Expand all Loading... |
225 EXPECT_FALSE(CreateFileSystemURL(root1 + parent).IsParent( | 225 EXPECT_FALSE(CreateFileSystemURL(root1 + parent).IsParent( |
226 CreateFileSystemURL(root3 + child))); | 226 CreateFileSystemURL(root3 + child))); |
227 | 227 |
228 // False case: different origins. | 228 // False case: different origins. |
229 EXPECT_FALSE(CreateFileSystemURL(root1 + parent).IsParent( | 229 EXPECT_FALSE(CreateFileSystemURL(root1 + parent).IsParent( |
230 CreateFileSystemURL(root4 + child))); | 230 CreateFileSystemURL(root4 + child))); |
231 } | 231 } |
232 | 232 |
233 TEST(FileSystemURLTest, DebugString) { | 233 TEST(FileSystemURLTest, DebugString) { |
234 const GURL kOrigin("http://example.com"); | 234 const GURL kOrigin("http://example.com"); |
235 const FilePath kPath(FPL("dir/file")); | 235 const base::FilePath kPath(FPL("dir/file")); |
236 | 236 |
237 const FileSystemURL kURL1 = FileSystemURL::CreateForTest( | 237 const FileSystemURL kURL1 = FileSystemURL::CreateForTest( |
238 kOrigin, kFileSystemTypeTemporary, kPath); | 238 kOrigin, kFileSystemTypeTemporary, kPath); |
239 EXPECT_EQ("filesystem:http://example.com/temporary/" + | 239 EXPECT_EQ("filesystem:http://example.com/temporary/" + |
240 NormalizedUTF8Path(kPath), | 240 NormalizedUTF8Path(kPath), |
241 kURL1.DebugString()); | 241 kURL1.DebugString()); |
242 | 242 |
243 const FilePath kRoot(DRIVE FPL("/root")); | 243 const base::FilePath kRoot(DRIVE FPL("/root")); |
244 ScopedExternalFileSystem scoped_fs("foo", | 244 ScopedExternalFileSystem scoped_fs("foo", |
245 kFileSystemTypeNativeLocal, | 245 kFileSystemTypeNativeLocal, |
246 kRoot.NormalizePathSeparators()); | 246 kRoot.NormalizePathSeparators()); |
247 const FileSystemURL kURL2(CreateExternalFileSystemURL( | 247 const FileSystemURL kURL2(CreateExternalFileSystemURL( |
248 kOrigin, | 248 kOrigin, |
249 kFileSystemTypeExternal, | 249 kFileSystemTypeExternal, |
250 scoped_fs.GetVirtualRootPath().Append(kPath))); | 250 scoped_fs.GetVirtualRootPath().Append(kPath))); |
251 EXPECT_EQ("filesystem:http://example.com/external/" + | 251 EXPECT_EQ("filesystem:http://example.com/external/" + |
252 NormalizedUTF8Path(scoped_fs.GetVirtualRootPath().Append(kPath)) + | 252 NormalizedUTF8Path(scoped_fs.GetVirtualRootPath().Append(kPath)) + |
253 " (NativeLocal@foo:" + | 253 " (NativeLocal@foo:" + |
254 NormalizedUTF8Path(kRoot.Append(kPath)) + ")", | 254 NormalizedUTF8Path(kRoot.Append(kPath)) + ")", |
255 kURL2.DebugString()); | 255 kURL2.DebugString()); |
256 } | 256 } |
257 | 257 |
258 } // namespace fileapi | 258 } // namespace fileapi |
OLD | NEW |