OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "chrome/browser/chromeos/fileapi/file_system_backend.h" | 5 #include "chrome/browser/chromeos/fileapi/file_system_backend.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <set> | 9 #include <set> |
10 | 10 |
(...skipping 27 matching lines...) Expand all Loading... |
38 // to avoid flakiness. | 38 // to avoid flakiness. |
39 storage::ExternalMountPoints::GetSystemInstance()->RevokeAllFileSystems(); | 39 storage::ExternalMountPoints::GetSystemInstance()->RevokeAllFileSystems(); |
40 | 40 |
41 scoped_refptr<storage::ExternalMountPoints> mount_points( | 41 scoped_refptr<storage::ExternalMountPoints> mount_points( |
42 storage::ExternalMountPoints::CreateRefCounted()); | 42 storage::ExternalMountPoints::CreateRefCounted()); |
43 chromeos::FileSystemBackend backend( | 43 chromeos::FileSystemBackend backend( |
44 nullptr, // drive_delegate | 44 nullptr, // drive_delegate |
45 nullptr, // file_system_provider_delegate | 45 nullptr, // file_system_provider_delegate |
46 nullptr, // mtp_delegate | 46 nullptr, // mtp_delegate |
47 nullptr, // arc_content_delegate | 47 nullptr, // arc_content_delegate |
| 48 nullptr, // arc_documents_provider_delegate |
48 mount_points.get(), storage::ExternalMountPoints::GetSystemInstance()); | 49 mount_points.get(), storage::ExternalMountPoints::GetSystemInstance()); |
49 backend.AddSystemMountPoints(); | 50 backend.AddSystemMountPoints(); |
50 std::vector<base::FilePath> root_dirs = backend.GetRootDirectories(); | 51 std::vector<base::FilePath> root_dirs = backend.GetRootDirectories(); |
51 std::set<base::FilePath> root_dirs_set(root_dirs.begin(), root_dirs.end()); | 52 std::set<base::FilePath> root_dirs_set(root_dirs.begin(), root_dirs.end()); |
52 | 53 |
53 // By default there should be 3 mount points (in system mount points): | 54 // By default there should be 3 mount points (in system mount points): |
54 EXPECT_EQ(3u, root_dirs.size()); | 55 EXPECT_EQ(3u, root_dirs.size()); |
55 | 56 |
56 EXPECT_TRUE(root_dirs_set.count( | 57 EXPECT_TRUE(root_dirs_set.count( |
57 chromeos::CrosDisksClient::GetRemovableDiskMountPoint())); | 58 chromeos::CrosDisksClient::GetRemovableDiskMountPoint())); |
58 EXPECT_TRUE(root_dirs_set.count( | 59 EXPECT_TRUE(root_dirs_set.count( |
59 chromeos::CrosDisksClient::GetArchiveMountPoint())); | 60 chromeos::CrosDisksClient::GetArchiveMountPoint())); |
60 EXPECT_TRUE(root_dirs_set.count(base::FilePath(FPL("/usr/share/oem")))); | 61 EXPECT_TRUE(root_dirs_set.count(base::FilePath(FPL("/usr/share/oem")))); |
61 } | 62 } |
62 | 63 |
63 TEST(ChromeOSFileSystemBackendTest, GetRootDirectories) { | 64 TEST(ChromeOSFileSystemBackendTest, GetRootDirectories) { |
64 scoped_refptr<storage::ExternalMountPoints> mount_points( | 65 scoped_refptr<storage::ExternalMountPoints> mount_points( |
65 storage::ExternalMountPoints::CreateRefCounted()); | 66 storage::ExternalMountPoints::CreateRefCounted()); |
66 | 67 |
67 scoped_refptr<storage::ExternalMountPoints> system_mount_points( | 68 scoped_refptr<storage::ExternalMountPoints> system_mount_points( |
68 storage::ExternalMountPoints::CreateRefCounted()); | 69 storage::ExternalMountPoints::CreateRefCounted()); |
69 | 70 |
70 chromeos::FileSystemBackend backend(nullptr, // drive_delegate | 71 chromeos::FileSystemBackend backend( |
71 nullptr, // file_system_provider_delegate | 72 nullptr, // drive_delegate |
72 nullptr, // mtp_delegate | 73 nullptr, // file_system_provider_delegate |
73 nullptr, // arc_content_delegate | 74 nullptr, // mtp_delegate |
74 mount_points.get(), | 75 nullptr, // arc_content_delegate |
75 system_mount_points.get()); | 76 nullptr, // arc_documents_provider_delegate |
| 77 mount_points.get(), system_mount_points.get()); |
76 | 78 |
77 const size_t initial_root_dirs_size = backend.GetRootDirectories().size(); | 79 const size_t initial_root_dirs_size = backend.GetRootDirectories().size(); |
78 | 80 |
79 // Register 'local' test mount points. | 81 // Register 'local' test mount points. |
80 mount_points->RegisterFileSystem("c", | 82 mount_points->RegisterFileSystem("c", |
81 storage::kFileSystemTypeNativeLocal, | 83 storage::kFileSystemTypeNativeLocal, |
82 storage::FileSystemMountOption(), | 84 storage::FileSystemMountOption(), |
83 base::FilePath(FPL("/a/b/c"))); | 85 base::FilePath(FPL("/a/b/c"))); |
84 mount_points->RegisterFileSystem("d", | 86 mount_points->RegisterFileSystem("d", |
85 storage::kFileSystemTypeNativeLocal, | 87 storage::kFileSystemTypeNativeLocal, |
(...skipping 19 matching lines...) Expand all Loading... |
105 EXPECT_TRUE(root_dirs_set.count(base::FilePath(FPL("/g/d/e")))); | 107 EXPECT_TRUE(root_dirs_set.count(base::FilePath(FPL("/g/d/e")))); |
106 } | 108 } |
107 | 109 |
108 TEST(ChromeOSFileSystemBackendTest, AccessPermissions) { | 110 TEST(ChromeOSFileSystemBackendTest, AccessPermissions) { |
109 url::AddStandardScheme("chrome-extension", url::SCHEME_WITHOUT_PORT); | 111 url::AddStandardScheme("chrome-extension", url::SCHEME_WITHOUT_PORT); |
110 | 112 |
111 scoped_refptr<storage::ExternalMountPoints> mount_points( | 113 scoped_refptr<storage::ExternalMountPoints> mount_points( |
112 storage::ExternalMountPoints::CreateRefCounted()); | 114 storage::ExternalMountPoints::CreateRefCounted()); |
113 scoped_refptr<storage::ExternalMountPoints> system_mount_points( | 115 scoped_refptr<storage::ExternalMountPoints> system_mount_points( |
114 storage::ExternalMountPoints::CreateRefCounted()); | 116 storage::ExternalMountPoints::CreateRefCounted()); |
115 chromeos::FileSystemBackend backend(nullptr, // drive_delegate | 117 chromeos::FileSystemBackend backend( |
116 nullptr, // file_system_provider_delegate | 118 nullptr, // drive_delegate |
117 nullptr, // mtp_delegate | 119 nullptr, // file_system_provider_delegate |
118 nullptr, // arc_content_delegate | 120 nullptr, // mtp_delegate |
119 mount_points.get(), | 121 nullptr, // arc_content_delegate |
120 system_mount_points.get()); | 122 nullptr, // arc_documents_provider_delegate |
| 123 mount_points.get(), system_mount_points.get()); |
121 | 124 |
122 std::string extension("ddammdhioacbehjngdmkjcjbnfginlla"); | 125 std::string extension("ddammdhioacbehjngdmkjcjbnfginlla"); |
123 | 126 |
124 // Initialize mount points. | 127 // Initialize mount points. |
125 ASSERT_TRUE(system_mount_points->RegisterFileSystem( | 128 ASSERT_TRUE(system_mount_points->RegisterFileSystem( |
126 "system", | 129 "system", |
127 storage::kFileSystemTypeNativeLocal, | 130 storage::kFileSystemTypeNativeLocal, |
128 storage::FileSystemMountOption(), | 131 storage::FileSystemMountOption(), |
129 base::FilePath(FPL("/g/system")))); | 132 base::FilePath(FPL("/g/system")))); |
130 ASSERT_TRUE(mount_points->RegisterFileSystem( | 133 ASSERT_TRUE(mount_points->RegisterFileSystem( |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
174 backend.RevokeAccessForExtension(extension); | 177 backend.RevokeAccessForExtension(extension); |
175 EXPECT_FALSE(backend.IsAccessAllowed( | 178 EXPECT_FALSE(backend.IsAccessAllowed( |
176 CreateFileSystemURL(extension, "removable/foo", mount_points.get()))); | 179 CreateFileSystemURL(extension, "removable/foo", mount_points.get()))); |
177 } | 180 } |
178 | 181 |
179 TEST(ChromeOSFileSystemBackendTest, GetVirtualPathConflictWithSystemPoints) { | 182 TEST(ChromeOSFileSystemBackendTest, GetVirtualPathConflictWithSystemPoints) { |
180 scoped_refptr<storage::ExternalMountPoints> mount_points( | 183 scoped_refptr<storage::ExternalMountPoints> mount_points( |
181 storage::ExternalMountPoints::CreateRefCounted()); | 184 storage::ExternalMountPoints::CreateRefCounted()); |
182 scoped_refptr<storage::ExternalMountPoints> system_mount_points( | 185 scoped_refptr<storage::ExternalMountPoints> system_mount_points( |
183 storage::ExternalMountPoints::CreateRefCounted()); | 186 storage::ExternalMountPoints::CreateRefCounted()); |
184 chromeos::FileSystemBackend backend(nullptr, // drive_delegate | 187 chromeos::FileSystemBackend backend( |
185 nullptr, // file_system_provider_delegate | 188 nullptr, // drive_delegate |
186 nullptr, // mtp_delegate | 189 nullptr, // file_system_provider_delegate |
187 nullptr, // arc_content_delegate | 190 nullptr, // mtp_delegate |
188 mount_points.get(), | 191 nullptr, // arc_content_delegate |
189 system_mount_points.get()); | 192 nullptr, // arc_documents_provider_delegate |
| 193 mount_points.get(), system_mount_points.get()); |
190 | 194 |
191 const storage::FileSystemType type = storage::kFileSystemTypeNativeLocal; | 195 const storage::FileSystemType type = storage::kFileSystemTypeNativeLocal; |
192 const storage::FileSystemMountOption option = | 196 const storage::FileSystemMountOption option = |
193 storage::FileSystemMountOption(); | 197 storage::FileSystemMountOption(); |
194 | 198 |
195 // Backend specific mount points. | 199 // Backend specific mount points. |
196 ASSERT_TRUE(mount_points->RegisterFileSystem( | 200 ASSERT_TRUE(mount_points->RegisterFileSystem( |
197 "b", type, option, base::FilePath(FPL("/a/b")))); | 201 "b", type, option, base::FilePath(FPL("/a/b")))); |
198 ASSERT_TRUE(mount_points->RegisterFileSystem( | 202 ASSERT_TRUE(mount_points->RegisterFileSystem( |
199 "y", type, option, base::FilePath(FPL("/z/y")))); | 203 "y", type, option, base::FilePath(FPL("/z/y")))); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
241 if (!kTestCases[i].success) | 245 if (!kTestCases[i].success) |
242 continue; | 246 continue; |
243 | 247 |
244 base::FilePath expected_virtual_path(kTestCases[i].virtual_path); | 248 base::FilePath expected_virtual_path(kTestCases[i].virtual_path); |
245 EXPECT_EQ(expected_virtual_path, virtual_path) | 249 EXPECT_EQ(expected_virtual_path, virtual_path) |
246 << "Resolving " << kTestCases[i].local_path; | 250 << "Resolving " << kTestCases[i].local_path; |
247 } | 251 } |
248 } | 252 } |
249 | 253 |
250 } // namespace | 254 } // namespace |
OLD | NEW |