| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 <map> | 5 #include <map> |
| 6 #include <queue> | 6 #include <queue> |
| 7 | 7 |
| 8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/files/scoped_temp_dir.h" | 10 #include "base/files/scoped_temp_dir.h" |
| (...skipping 17 matching lines...) Expand all Loading... |
| 28 typedef FileSystemOperation::FileEntryList FileEntryList; | 28 typedef FileSystemOperation::FileEntryList FileEntryList; |
| 29 | 29 |
| 30 namespace { | 30 namespace { |
| 31 | 31 |
| 32 void ExpectOk(base::PlatformFileError error) { | 32 void ExpectOk(base::PlatformFileError error) { |
| 33 ASSERT_EQ(base::PLATFORM_FILE_OK, error); | 33 ASSERT_EQ(base::PLATFORM_FILE_OK, error); |
| 34 } | 34 } |
| 35 | 35 |
| 36 } // namespace | 36 } // namespace |
| 37 | 37 |
| 38 class CrossOperationTestHelper { | 38 class CopyOrMoveOperationTestHelper { |
| 39 public: | 39 public: |
| 40 CrossOperationTestHelper( | 40 CopyOrMoveOperationTestHelper( |
| 41 const GURL& origin, | 41 const GURL& origin, |
| 42 FileSystemType src_type, | 42 FileSystemType src_type, |
| 43 FileSystemType dest_type) | 43 FileSystemType dest_type) |
| 44 : origin_(origin), | 44 : origin_(origin), |
| 45 src_type_(src_type), | 45 src_type_(src_type), |
| 46 dest_type_(dest_type) {} | 46 dest_type_(dest_type) {} |
| 47 | 47 |
| 48 ~CrossOperationTestHelper() { | 48 ~CopyOrMoveOperationTestHelper() { |
| 49 file_system_context_ = NULL; | 49 file_system_context_ = NULL; |
| 50 quota_manager_proxy_->SimulateQuotaManagerDestroyed(); | 50 quota_manager_proxy_->SimulateQuotaManagerDestroyed(); |
| 51 quota_manager_ = NULL; | 51 quota_manager_ = NULL; |
| 52 quota_manager_proxy_ = NULL; | 52 quota_manager_proxy_ = NULL; |
| 53 base::MessageLoop::current()->RunUntilIdle(); | 53 base::MessageLoop::current()->RunUntilIdle(); |
| 54 } | 54 } |
| 55 | 55 |
| 56 void SetUp() { | 56 void SetUp() { |
| 57 ASSERT_TRUE(base_.CreateUniqueTempDir()); | 57 ASSERT_TRUE(base_.CreateUniqueTempDir()); |
| 58 base::FilePath base_dir = base_.path(); | 58 base::FilePath base_dir = base_.path(); |
| (...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 225 | 225 |
| 226 const GURL origin_; | 226 const GURL origin_; |
| 227 const FileSystemType src_type_; | 227 const FileSystemType src_type_; |
| 228 const FileSystemType dest_type_; | 228 const FileSystemType dest_type_; |
| 229 | 229 |
| 230 base::MessageLoop message_loop_; | 230 base::MessageLoop message_loop_; |
| 231 scoped_refptr<FileSystemContext> file_system_context_; | 231 scoped_refptr<FileSystemContext> file_system_context_; |
| 232 scoped_refptr<quota::MockQuotaManagerProxy> quota_manager_proxy_; | 232 scoped_refptr<quota::MockQuotaManagerProxy> quota_manager_proxy_; |
| 233 scoped_refptr<quota::MockQuotaManager> quota_manager_; | 233 scoped_refptr<quota::MockQuotaManager> quota_manager_; |
| 234 | 234 |
| 235 DISALLOW_COPY_AND_ASSIGN(CrossOperationTestHelper); | 235 DISALLOW_COPY_AND_ASSIGN(CopyOrMoveOperationTestHelper); |
| 236 }; | 236 }; |
| 237 | 237 |
| 238 TEST(LocalFileSystemCrossOperationTest, CopySingleFile) { | 238 TEST(LocalFileSystemCopyOrMoveOperationTest, CopySingleFile) { |
| 239 CrossOperationTestHelper helper(GURL("http://foo"), | 239 CopyOrMoveOperationTestHelper helper(GURL("http://foo"), |
| 240 kFileSystemTypeTemporary, | 240 kFileSystemTypeTemporary, |
| 241 kFileSystemTypePersistent); | 241 kFileSystemTypePersistent); |
| 242 helper.SetUp(); | 242 helper.SetUp(); |
| 243 | 243 |
| 244 FileSystemURL src = helper.SourceURL("a"); | 244 FileSystemURL src = helper.SourceURL("a"); |
| 245 FileSystemURL dest = helper.DestURL("b"); | 245 FileSystemURL dest = helper.DestURL("b"); |
| 246 int64 src_initial_usage = helper.GetSourceUsage(); | 246 int64 src_initial_usage = helper.GetSourceUsage(); |
| 247 int64 dest_initial_usage = helper.GetDestUsage(); | 247 int64 dest_initial_usage = helper.GetDestUsage(); |
| 248 | 248 |
| 249 // Set up a source file. | 249 // Set up a source file. |
| 250 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.CreateFile(src, 10)); | 250 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.CreateFile(src, 10)); |
| 251 int64 src_increase = helper.GetSourceUsage() - src_initial_usage; | 251 int64 src_increase = helper.GetSourceUsage() - src_initial_usage; |
| 252 | 252 |
| 253 // Copy it. | 253 // Copy it. |
| 254 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.Copy(src, dest)); | 254 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.Copy(src, dest)); |
| 255 | 255 |
| 256 // Verify. | 256 // Verify. |
| 257 ASSERT_TRUE(helper.FileExists(src, 10)); | 257 ASSERT_TRUE(helper.FileExists(src, 10)); |
| 258 ASSERT_TRUE(helper.FileExists(dest, 10)); | 258 ASSERT_TRUE(helper.FileExists(dest, 10)); |
| 259 | 259 |
| 260 int64 src_new_usage = helper.GetSourceUsage(); | 260 int64 src_new_usage = helper.GetSourceUsage(); |
| 261 ASSERT_EQ(src_initial_usage + src_increase, src_new_usage); | 261 ASSERT_EQ(src_initial_usage + src_increase, src_new_usage); |
| 262 | 262 |
| 263 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; | 263 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; |
| 264 ASSERT_EQ(src_increase, dest_increase); | 264 ASSERT_EQ(src_increase, dest_increase); |
| 265 } | 265 } |
| 266 | 266 |
| 267 TEST(LocalFileSystemCrossOperationTest, MoveSingleFile) { | 267 TEST(LocalFileSystemCopyOrMoveOperationTest, MoveSingleFile) { |
| 268 CrossOperationTestHelper helper(GURL("http://foo"), | 268 CopyOrMoveOperationTestHelper helper(GURL("http://foo"), |
| 269 kFileSystemTypeTemporary, | 269 kFileSystemTypeTemporary, |
| 270 kFileSystemTypePersistent); | 270 kFileSystemTypePersistent); |
| 271 helper.SetUp(); | 271 helper.SetUp(); |
| 272 | 272 |
| 273 FileSystemURL src = helper.SourceURL("a"); | 273 FileSystemURL src = helper.SourceURL("a"); |
| 274 FileSystemURL dest = helper.DestURL("b"); | 274 FileSystemURL dest = helper.DestURL("b"); |
| 275 int64 src_initial_usage = helper.GetSourceUsage(); | 275 int64 src_initial_usage = helper.GetSourceUsage(); |
| 276 int64 dest_initial_usage = helper.GetDestUsage(); | 276 int64 dest_initial_usage = helper.GetDestUsage(); |
| 277 | 277 |
| 278 // Set up a source file. | 278 // Set up a source file. |
| 279 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.CreateFile(src, 10)); | 279 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.CreateFile(src, 10)); |
| 280 int64 src_increase = helper.GetSourceUsage() - src_initial_usage; | 280 int64 src_increase = helper.GetSourceUsage() - src_initial_usage; |
| 281 | 281 |
| 282 // Move it. | 282 // Move it. |
| 283 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.Move(src, dest)); | 283 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.Move(src, dest)); |
| 284 | 284 |
| 285 // Verify. | 285 // Verify. |
| 286 ASSERT_FALSE(helper.FileExists(src, AsyncFileTestHelper::kDontCheckSize)); | 286 ASSERT_FALSE(helper.FileExists(src, AsyncFileTestHelper::kDontCheckSize)); |
| 287 ASSERT_TRUE(helper.FileExists(dest, 10)); | 287 ASSERT_TRUE(helper.FileExists(dest, 10)); |
| 288 | 288 |
| 289 int64 src_new_usage = helper.GetSourceUsage(); | 289 int64 src_new_usage = helper.GetSourceUsage(); |
| 290 ASSERT_EQ(src_initial_usage, src_new_usage); | 290 ASSERT_EQ(src_initial_usage, src_new_usage); |
| 291 | 291 |
| 292 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; | 292 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; |
| 293 ASSERT_EQ(src_increase, dest_increase); | 293 ASSERT_EQ(src_increase, dest_increase); |
| 294 } | 294 } |
| 295 | 295 |
| 296 TEST(LocalFileSystemCrossOperationTest, CopySingleDirectory) { | 296 TEST(LocalFileSystemCopyOrMoveOperationTest, CopySingleDirectory) { |
| 297 CrossOperationTestHelper helper(GURL("http://foo"), | 297 CopyOrMoveOperationTestHelper helper(GURL("http://foo"), |
| 298 kFileSystemTypeTemporary, | 298 kFileSystemTypeTemporary, |
| 299 kFileSystemTypePersistent); | 299 kFileSystemTypePersistent); |
| 300 helper.SetUp(); | 300 helper.SetUp(); |
| 301 | 301 |
| 302 FileSystemURL src = helper.SourceURL("a"); | 302 FileSystemURL src = helper.SourceURL("a"); |
| 303 FileSystemURL dest = helper.DestURL("b"); | 303 FileSystemURL dest = helper.DestURL("b"); |
| 304 int64 src_initial_usage = helper.GetSourceUsage(); | 304 int64 src_initial_usage = helper.GetSourceUsage(); |
| 305 int64 dest_initial_usage = helper.GetDestUsage(); | 305 int64 dest_initial_usage = helper.GetDestUsage(); |
| 306 | 306 |
| 307 // Set up a source directory. | 307 // Set up a source directory. |
| 308 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.CreateDirectory(src)); | 308 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.CreateDirectory(src)); |
| 309 int64 src_increase = helper.GetSourceUsage() - src_initial_usage; | 309 int64 src_increase = helper.GetSourceUsage() - src_initial_usage; |
| 310 | 310 |
| 311 // Copy it. | 311 // Copy it. |
| 312 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.Copy(src, dest)); | 312 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.Copy(src, dest)); |
| 313 | 313 |
| 314 // Verify. | 314 // Verify. |
| 315 ASSERT_TRUE(helper.DirectoryExists(src)); | 315 ASSERT_TRUE(helper.DirectoryExists(src)); |
| 316 ASSERT_TRUE(helper.DirectoryExists(dest)); | 316 ASSERT_TRUE(helper.DirectoryExists(dest)); |
| 317 | 317 |
| 318 int64 src_new_usage = helper.GetSourceUsage(); | 318 int64 src_new_usage = helper.GetSourceUsage(); |
| 319 ASSERT_EQ(src_initial_usage + src_increase, src_new_usage); | 319 ASSERT_EQ(src_initial_usage + src_increase, src_new_usage); |
| 320 | 320 |
| 321 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; | 321 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; |
| 322 ASSERT_EQ(src_increase, dest_increase); | 322 ASSERT_EQ(src_increase, dest_increase); |
| 323 } | 323 } |
| 324 | 324 |
| 325 TEST(LocalFileSystemCrossOperationTest, MoveSingleDirectory) { | 325 TEST(LocalFileSystemCopyOrMoveOperationTest, MoveSingleDirectory) { |
| 326 CrossOperationTestHelper helper(GURL("http://foo"), | 326 CopyOrMoveOperationTestHelper helper(GURL("http://foo"), |
| 327 kFileSystemTypeTemporary, | 327 kFileSystemTypeTemporary, |
| 328 kFileSystemTypePersistent); | 328 kFileSystemTypePersistent); |
| 329 helper.SetUp(); | 329 helper.SetUp(); |
| 330 | 330 |
| 331 FileSystemURL src = helper.SourceURL("a"); | 331 FileSystemURL src = helper.SourceURL("a"); |
| 332 FileSystemURL dest = helper.DestURL("b"); | 332 FileSystemURL dest = helper.DestURL("b"); |
| 333 int64 src_initial_usage = helper.GetSourceUsage(); | 333 int64 src_initial_usage = helper.GetSourceUsage(); |
| 334 int64 dest_initial_usage = helper.GetDestUsage(); | 334 int64 dest_initial_usage = helper.GetDestUsage(); |
| 335 | 335 |
| 336 // Set up a source directory. | 336 // Set up a source directory. |
| 337 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.CreateDirectory(src)); | 337 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.CreateDirectory(src)); |
| 338 int64 src_increase = helper.GetSourceUsage() - src_initial_usage; | 338 int64 src_increase = helper.GetSourceUsage() - src_initial_usage; |
| 339 | 339 |
| 340 // Move it. | 340 // Move it. |
| 341 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.Move(src, dest)); | 341 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.Move(src, dest)); |
| 342 | 342 |
| 343 // Verify. | 343 // Verify. |
| 344 ASSERT_FALSE(helper.DirectoryExists(src)); | 344 ASSERT_FALSE(helper.DirectoryExists(src)); |
| 345 ASSERT_TRUE(helper.DirectoryExists(dest)); | 345 ASSERT_TRUE(helper.DirectoryExists(dest)); |
| 346 | 346 |
| 347 int64 src_new_usage = helper.GetSourceUsage(); | 347 int64 src_new_usage = helper.GetSourceUsage(); |
| 348 ASSERT_EQ(src_initial_usage, src_new_usage); | 348 ASSERT_EQ(src_initial_usage, src_new_usage); |
| 349 | 349 |
| 350 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; | 350 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; |
| 351 ASSERT_EQ(src_increase, dest_increase); | 351 ASSERT_EQ(src_increase, dest_increase); |
| 352 } | 352 } |
| 353 | 353 |
| 354 TEST(LocalFileSystemCrossOperationTest, CopyDirectory) { | 354 TEST(LocalFileSystemCopyOrMoveOperationTest, CopyDirectory) { |
| 355 CrossOperationTestHelper helper(GURL("http://foo"), | 355 CopyOrMoveOperationTestHelper helper(GURL("http://foo"), |
| 356 kFileSystemTypeTemporary, | 356 kFileSystemTypeTemporary, |
| 357 kFileSystemTypePersistent); | 357 kFileSystemTypePersistent); |
| 358 helper.SetUp(); | 358 helper.SetUp(); |
| 359 | 359 |
| 360 FileSystemURL src = helper.SourceURL("a"); | 360 FileSystemURL src = helper.SourceURL("a"); |
| 361 FileSystemURL dest = helper.DestURL("b"); | 361 FileSystemURL dest = helper.DestURL("b"); |
| 362 int64 src_initial_usage = helper.GetSourceUsage(); | 362 int64 src_initial_usage = helper.GetSourceUsage(); |
| 363 int64 dest_initial_usage = helper.GetDestUsage(); | 363 int64 dest_initial_usage = helper.GetDestUsage(); |
| 364 | 364 |
| 365 // Set up a source directory. | 365 // Set up a source directory. |
| 366 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.CreateDirectory(src)); | 366 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.CreateDirectory(src)); |
| 367 ASSERT_EQ(base::PLATFORM_FILE_OK, | 367 ASSERT_EQ(base::PLATFORM_FILE_OK, |
| (...skipping 13 matching lines...) Expand all Loading... |
| 381 test::kRegularTestCases, | 381 test::kRegularTestCases, |
| 382 test::kRegularTestCaseSize); | 382 test::kRegularTestCaseSize); |
| 383 | 383 |
| 384 int64 src_new_usage = helper.GetSourceUsage(); | 384 int64 src_new_usage = helper.GetSourceUsage(); |
| 385 ASSERT_EQ(src_initial_usage + src_increase, src_new_usage); | 385 ASSERT_EQ(src_initial_usage + src_increase, src_new_usage); |
| 386 | 386 |
| 387 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; | 387 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; |
| 388 ASSERT_EQ(src_increase, dest_increase); | 388 ASSERT_EQ(src_increase, dest_increase); |
| 389 } | 389 } |
| 390 | 390 |
| 391 TEST(LocalFileSystemCrossOperationTest, MoveDirectory) { | 391 TEST(LocalFileSystemCopyOrMoveOperationTest, MoveDirectory) { |
| 392 CrossOperationTestHelper helper(GURL("http://foo"), | 392 CopyOrMoveOperationTestHelper helper(GURL("http://foo"), |
| 393 kFileSystemTypeTemporary, | 393 kFileSystemTypeTemporary, |
| 394 kFileSystemTypePersistent); | 394 kFileSystemTypePersistent); |
| 395 helper.SetUp(); | 395 helper.SetUp(); |
| 396 | 396 |
| 397 FileSystemURL src = helper.SourceURL("a"); | 397 FileSystemURL src = helper.SourceURL("a"); |
| 398 FileSystemURL dest = helper.DestURL("b"); | 398 FileSystemURL dest = helper.DestURL("b"); |
| 399 int64 src_initial_usage = helper.GetSourceUsage(); | 399 int64 src_initial_usage = helper.GetSourceUsage(); |
| 400 int64 dest_initial_usage = helper.GetDestUsage(); | 400 int64 dest_initial_usage = helper.GetDestUsage(); |
| 401 | 401 |
| 402 // Set up a source directory. | 402 // Set up a source directory. |
| 403 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.CreateDirectory(src)); | 403 ASSERT_EQ(base::PLATFORM_FILE_OK, helper.CreateDirectory(src)); |
| 404 ASSERT_EQ(base::PLATFORM_FILE_OK, | 404 ASSERT_EQ(base::PLATFORM_FILE_OK, |
| (...skipping 14 matching lines...) Expand all Loading... |
| 419 test::kRegularTestCaseSize); | 419 test::kRegularTestCaseSize); |
| 420 | 420 |
| 421 int64 src_new_usage = helper.GetSourceUsage(); | 421 int64 src_new_usage = helper.GetSourceUsage(); |
| 422 ASSERT_EQ(src_initial_usage, src_new_usage); | 422 ASSERT_EQ(src_initial_usage, src_new_usage); |
| 423 | 423 |
| 424 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; | 424 int64 dest_increase = helper.GetDestUsage() - dest_initial_usage; |
| 425 ASSERT_EQ(src_increase, dest_increase); | 425 ASSERT_EQ(src_increase, dest_increase); |
| 426 } | 426 } |
| 427 | 427 |
| 428 } // namespace fileapi | 428 } // namespace fileapi |
| OLD | NEW |