| 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 "chrome/browser/chromeos/drive/file_system_util.h" | 5 #include "chrome/browser/chromeos/drive/file_system_util.h" |
| 6 | 6 |
| 7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
| 8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
| 9 #include "base/files/scoped_temp_dir.h" | 9 #include "base/files/scoped_temp_dir.h" |
| 10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 136 } | 136 } |
| 137 | 137 |
| 138 TEST(FileSystemUtilTest, ExtractDrivePathFromFileSystemUrl) { | 138 TEST(FileSystemUtilTest, ExtractDrivePathFromFileSystemUrl) { |
| 139 TestingProfile profile; | 139 TestingProfile profile; |
| 140 | 140 |
| 141 // Set up file system context for testing. | 141 // Set up file system context for testing. |
| 142 base::ScopedTempDir temp_dir_; | 142 base::ScopedTempDir temp_dir_; |
| 143 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); | 143 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); |
| 144 | 144 |
| 145 base::MessageLoop message_loop; | 145 base::MessageLoop message_loop; |
| 146 scoped_refptr<fileapi::ExternalMountPoints> mount_points = | 146 scoped_refptr<storage::ExternalMountPoints> mount_points = |
| 147 fileapi::ExternalMountPoints::CreateRefCounted(); | 147 storage::ExternalMountPoints::CreateRefCounted(); |
| 148 scoped_refptr<fileapi::FileSystemContext> context( | 148 scoped_refptr<storage::FileSystemContext> context( |
| 149 new fileapi::FileSystemContext( | 149 new storage::FileSystemContext( |
| 150 base::MessageLoopProxy::current().get(), | 150 base::MessageLoopProxy::current().get(), |
| 151 base::MessageLoopProxy::current().get(), | 151 base::MessageLoopProxy::current().get(), |
| 152 mount_points.get(), | 152 mount_points.get(), |
| 153 NULL, // special_storage_policy | 153 NULL, // special_storage_policy |
| 154 NULL, // quota_manager_proxy, | 154 NULL, // quota_manager_proxy, |
| 155 ScopedVector<fileapi::FileSystemBackend>(), | 155 ScopedVector<storage::FileSystemBackend>(), |
| 156 std::vector<fileapi::URLRequestAutoMountHandler>(), | 156 std::vector<storage::URLRequestAutoMountHandler>(), |
| 157 temp_dir_.path(), // partition_path | 157 temp_dir_.path(), // partition_path |
| 158 content::CreateAllowFileAccessOptions())); | 158 content::CreateAllowFileAccessOptions())); |
| 159 | 159 |
| 160 // Type:"external" + virtual_path:"drive/foo/bar" resolves to "drive/foo/bar". | 160 // Type:"external" + virtual_path:"drive/foo/bar" resolves to "drive/foo/bar". |
| 161 const std::string& drive_mount_name = | 161 const std::string& drive_mount_name = |
| 162 GetDriveMountPointPath(&profile).BaseName().AsUTF8Unsafe(); | 162 GetDriveMountPointPath(&profile).BaseName().AsUTF8Unsafe(); |
| 163 mount_points->RegisterFileSystem( | 163 mount_points->RegisterFileSystem(drive_mount_name, |
| 164 drive_mount_name, | 164 storage::kFileSystemTypeDrive, |
| 165 fileapi::kFileSystemTypeDrive, | 165 storage::FileSystemMountOption(), |
| 166 fileapi::FileSystemMountOption(), | 166 GetDriveMountPointPath(&profile)); |
| 167 GetDriveMountPointPath(&profile)); | |
| 168 EXPECT_EQ( | 167 EXPECT_EQ( |
| 169 base::FilePath::FromUTF8Unsafe("drive/foo/bar"), | 168 base::FilePath::FromUTF8Unsafe("drive/foo/bar"), |
| 170 ExtractDrivePathFromFileSystemUrl(context->CrackURL(GURL( | 169 ExtractDrivePathFromFileSystemUrl(context->CrackURL(GURL( |
| 171 "filesystem:chrome-extension://dummy-id/external/" + | 170 "filesystem:chrome-extension://dummy-id/external/" + |
| 172 drive_mount_name + "/foo/bar")))); | 171 drive_mount_name + "/foo/bar")))); |
| 173 | 172 |
| 174 // Virtual mount name should not affect the extracted path. | 173 // Virtual mount name should not affect the extracted path. |
| 175 mount_points->RevokeFileSystem(drive_mount_name); | 174 mount_points->RevokeFileSystem(drive_mount_name); |
| 176 mount_points->RegisterFileSystem( | 175 mount_points->RegisterFileSystem("drive2", |
| 177 "drive2", | 176 storage::kFileSystemTypeDrive, |
| 178 fileapi::kFileSystemTypeDrive, | 177 storage::FileSystemMountOption(), |
| 179 fileapi::FileSystemMountOption(), | 178 GetDriveMountPointPath(&profile)); |
| 180 GetDriveMountPointPath(&profile)); | |
| 181 EXPECT_EQ( | 179 EXPECT_EQ( |
| 182 base::FilePath::FromUTF8Unsafe("drive/foo/bar"), | 180 base::FilePath::FromUTF8Unsafe("drive/foo/bar"), |
| 183 ExtractDrivePathFromFileSystemUrl(context->CrackURL(GURL( | 181 ExtractDrivePathFromFileSystemUrl(context->CrackURL(GURL( |
| 184 "filesystem:chrome-extension://dummy-id/external/drive2/foo/bar")))); | 182 "filesystem:chrome-extension://dummy-id/external/drive2/foo/bar")))); |
| 185 | 183 |
| 186 // Type:"external" + virtual_path:"Downloads/foo" is not a Drive path. | 184 // Type:"external" + virtual_path:"Downloads/foo" is not a Drive path. |
| 187 mount_points->RegisterFileSystem( | 185 mount_points->RegisterFileSystem("Downloads", |
| 188 "Downloads", | 186 storage::kFileSystemTypeNativeLocal, |
| 189 fileapi::kFileSystemTypeNativeLocal, | 187 storage::FileSystemMountOption(), |
| 190 fileapi::FileSystemMountOption(), | 188 temp_dir_.path()); |
| 191 temp_dir_.path()); | |
| 192 EXPECT_EQ( | 189 EXPECT_EQ( |
| 193 base::FilePath(), | 190 base::FilePath(), |
| 194 ExtractDrivePathFromFileSystemUrl(context->CrackURL(GURL( | 191 ExtractDrivePathFromFileSystemUrl(context->CrackURL(GURL( |
| 195 "filesystem:chrome-extension://dummy-id/external/Downloads/foo")))); | 192 "filesystem:chrome-extension://dummy-id/external/Downloads/foo")))); |
| 196 | 193 |
| 197 // Type:"isolated" + virtual_path:"isolated_id/name" mapped on a Drive path. | 194 // Type:"isolated" + virtual_path:"isolated_id/name" mapped on a Drive path. |
| 198 std::string isolated_name; | 195 std::string isolated_name; |
| 199 std::string isolated_id = | 196 std::string isolated_id = |
| 200 fileapi::IsolatedContext::GetInstance()->RegisterFileSystemForPath( | 197 storage::IsolatedContext::GetInstance()->RegisterFileSystemForPath( |
| 201 fileapi::kFileSystemTypeNativeForPlatformApp, | 198 storage::kFileSystemTypeNativeForPlatformApp, |
| 202 std::string(), | 199 std::string(), |
| 203 GetDriveMountPointPath(&profile).AppendASCII("bar/buz"), | 200 GetDriveMountPointPath(&profile).AppendASCII("bar/buz"), |
| 204 &isolated_name); | 201 &isolated_name); |
| 205 EXPECT_EQ( | 202 EXPECT_EQ( |
| 206 base::FilePath::FromUTF8Unsafe("drive/bar/buz"), | 203 base::FilePath::FromUTF8Unsafe("drive/bar/buz"), |
| 207 ExtractDrivePathFromFileSystemUrl(context->CrackURL(GURL( | 204 ExtractDrivePathFromFileSystemUrl(context->CrackURL(GURL( |
| 208 "filesystem:chrome-extension://dummy-id/isolated/" + | 205 "filesystem:chrome-extension://dummy-id/isolated/" + |
| 209 isolated_id + "/" + isolated_name)))); | 206 isolated_id + "/" + isolated_name)))); |
| 210 } | 207 } |
| 211 | 208 |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 282 // Non GDoc file. | 279 // Non GDoc file. |
| 283 file = temp_dir.path().AppendASCII("test.txt"); | 280 file = temp_dir.path().AppendASCII("test.txt"); |
| 284 std::string data = "Hello world!"; | 281 std::string data = "Hello world!"; |
| 285 EXPECT_TRUE(google_apis::test_util::WriteStringToFile(file, data)); | 282 EXPECT_TRUE(google_apis::test_util::WriteStringToFile(file, data)); |
| 286 EXPECT_TRUE(ReadUrlFromGDocFile(file).is_empty()); | 283 EXPECT_TRUE(ReadUrlFromGDocFile(file).is_empty()); |
| 287 EXPECT_TRUE(ReadResourceIdFromGDocFile(file).empty()); | 284 EXPECT_TRUE(ReadResourceIdFromGDocFile(file).empty()); |
| 288 } | 285 } |
| 289 | 286 |
| 290 } // namespace util | 287 } // namespace util |
| 291 } // namespace drive | 288 } // namespace drive |
| OLD | NEW |