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 <errno.h> | 5 #include <errno.h> |
6 #include <string> | 6 #include <string> |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
(...skipping 1291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1302 EXPECT_EQ(src_file, FindFileByResourceId(src_file_resource)); | 1302 EXPECT_EQ(src_file, FindFileByResourceId(src_file_resource)); |
1303 | 1303 |
1304 EXPECT_CALL(*mock_doc_service_, | 1304 EXPECT_CALL(*mock_doc_service_, |
1305 RenameResource(src_file->self_url(), | 1305 RenameResource(src_file->self_url(), |
1306 FILE_PATH_LITERAL("Test.log"), _)); | 1306 FILE_PATH_LITERAL("Test.log"), _)); |
1307 | 1307 |
1308 FileOperationCallback callback = | 1308 FileOperationCallback callback = |
1309 base::Bind(&CallbackHelper::FileOperationCallback, | 1309 base::Bind(&CallbackHelper::FileOperationCallback, |
1310 callback_helper_.get()); | 1310 callback_helper_.get()); |
1311 | 1311 |
| 1312 EXPECT_CALL(*mock_sync_client_, OnDirectoryChanged( |
| 1313 Eq(FilePath(FILE_PATH_LITERAL("gdata/Directory 1"))))).Times(1); |
| 1314 |
1312 file_system_->Move(src_file_path, dest_file_path, callback); | 1315 file_system_->Move(src_file_path, dest_file_path, callback); |
1313 message_loop_.RunAllPending(); | 1316 message_loop_.RunAllPending(); |
1314 EXPECT_EQ(base::PLATFORM_FILE_OK, callback_helper_->last_error_); | 1317 EXPECT_EQ(base::PLATFORM_FILE_OK, callback_helper_->last_error_); |
1315 | 1318 |
1316 EXPECT_TRUE(FindFile(src_file_path) == NULL); | 1319 EXPECT_TRUE(FindFile(src_file_path) == NULL); |
1317 | 1320 |
1318 GDataFileBase* dest_file = NULL; | 1321 GDataFileBase* dest_file = NULL; |
1319 EXPECT_TRUE((dest_file = FindFile(dest_file_path)) != NULL); | 1322 EXPECT_TRUE((dest_file = FindFile(dest_file_path)) != NULL); |
1320 EXPECT_EQ(dest_file, FindFileByResourceId(src_file_resource)); | 1323 EXPECT_EQ(dest_file, FindFileByResourceId(src_file_resource)); |
1321 EXPECT_EQ(src_file, dest_file); | 1324 EXPECT_EQ(src_file, dest_file); |
(...skipping 22 matching lines...) Expand all Loading... |
1344 RenameResource(src_file->self_url(), | 1347 RenameResource(src_file->self_url(), |
1345 FILE_PATH_LITERAL("Test.log"), _)); | 1348 FILE_PATH_LITERAL("Test.log"), _)); |
1346 EXPECT_CALL(*mock_doc_service_, | 1349 EXPECT_CALL(*mock_doc_service_, |
1347 AddResourceToDirectory(dest_parent->content_url(), | 1350 AddResourceToDirectory(dest_parent->content_url(), |
1348 src_file->self_url(), _)); | 1351 src_file->self_url(), _)); |
1349 | 1352 |
1350 FileOperationCallback callback = | 1353 FileOperationCallback callback = |
1351 base::Bind(&CallbackHelper::FileOperationCallback, | 1354 base::Bind(&CallbackHelper::FileOperationCallback, |
1352 callback_helper_.get()); | 1355 callback_helper_.get()); |
1353 | 1356 |
| 1357 // Expect notification for both source and destination directories. |
| 1358 EXPECT_CALL(*mock_sync_client_, OnDirectoryChanged( |
| 1359 Eq(FilePath(FILE_PATH_LITERAL("gdata"))))).Times(1); |
| 1360 EXPECT_CALL(*mock_sync_client_, OnDirectoryChanged( |
| 1361 Eq(FilePath(FILE_PATH_LITERAL("gdata/Directory 1"))))).Times(1); |
| 1362 |
1354 file_system_->Move(src_file_path, dest_file_path, callback); | 1363 file_system_->Move(src_file_path, dest_file_path, callback); |
1355 message_loop_.RunAllPending(); | 1364 message_loop_.RunAllPending(); |
1356 EXPECT_EQ(base::PLATFORM_FILE_OK, callback_helper_->last_error_); | 1365 EXPECT_EQ(base::PLATFORM_FILE_OK, callback_helper_->last_error_); |
1357 | 1366 |
1358 EXPECT_TRUE(FindFile(src_file_path) == NULL); | 1367 EXPECT_TRUE(FindFile(src_file_path) == NULL); |
1359 | 1368 |
1360 GDataFileBase* dest_file = NULL; | 1369 GDataFileBase* dest_file = NULL; |
1361 EXPECT_TRUE((dest_file = FindFile(dest_file_path)) != NULL); | 1370 EXPECT_TRUE((dest_file = FindFile(dest_file_path)) != NULL); |
1362 EXPECT_EQ(dest_file, FindFileByResourceId(src_file_path_resource)); | 1371 EXPECT_EQ(dest_file, FindFileByResourceId(src_file_path_resource)); |
1363 EXPECT_EQ(src_file, dest_file); | 1372 EXPECT_EQ(src_file, dest_file); |
(...skipping 24 matching lines...) Expand all Loading... |
1388 FILE_PATH_LITERAL("Test.log"), _)); | 1397 FILE_PATH_LITERAL("Test.log"), _)); |
1389 EXPECT_CALL(*mock_doc_service_, | 1398 EXPECT_CALL(*mock_doc_service_, |
1390 RemoveResourceFromDirectory(src_parent->content_url(), | 1399 RemoveResourceFromDirectory(src_parent->content_url(), |
1391 src_file->self_url(), | 1400 src_file->self_url(), |
1392 src_file_path_resource, _)); | 1401 src_file_path_resource, _)); |
1393 | 1402 |
1394 FileOperationCallback callback = | 1403 FileOperationCallback callback = |
1395 base::Bind(&CallbackHelper::FileOperationCallback, | 1404 base::Bind(&CallbackHelper::FileOperationCallback, |
1396 callback_helper_.get()); | 1405 callback_helper_.get()); |
1397 | 1406 |
| 1407 // Expect notification for both source and destination directories. |
| 1408 EXPECT_CALL(*mock_sync_client_, OnDirectoryChanged( |
| 1409 Eq(FilePath(FILE_PATH_LITERAL("gdata"))))).Times(1); |
| 1410 EXPECT_CALL(*mock_sync_client_, OnDirectoryChanged( |
| 1411 Eq(FilePath(FILE_PATH_LITERAL("gdata/Directory 1"))))).Times(1); |
| 1412 |
1398 file_system_->Move(src_file_path, dest_file_path, callback); | 1413 file_system_->Move(src_file_path, dest_file_path, callback); |
1399 message_loop_.RunAllPending(); | 1414 message_loop_.RunAllPending(); |
1400 EXPECT_EQ(base::PLATFORM_FILE_OK, callback_helper_->last_error_); | 1415 EXPECT_EQ(base::PLATFORM_FILE_OK, callback_helper_->last_error_); |
1401 | 1416 |
1402 EXPECT_TRUE(FindFile(src_file_path) == NULL); | 1417 EXPECT_TRUE(FindFile(src_file_path) == NULL); |
1403 | 1418 |
1404 GDataFileBase* dest_file = NULL; | 1419 GDataFileBase* dest_file = NULL; |
1405 EXPECT_TRUE((dest_file = FindFile(dest_file_path)) != NULL); | 1420 EXPECT_TRUE((dest_file = FindFile(dest_file_path)) != NULL); |
1406 EXPECT_EQ(dest_file, FindFileByResourceId(src_file_path_resource)); | 1421 EXPECT_EQ(dest_file, FindFileByResourceId(src_file_path_resource)); |
1407 EXPECT_EQ(src_file, dest_file); | 1422 EXPECT_EQ(src_file, dest_file); |
1408 } | 1423 } |
1409 | 1424 |
1410 TEST_F(GDataFileSystemTest, MoveFileBetweenSubDirectories) { | 1425 TEST_F(GDataFileSystemTest, MoveFileBetweenSubDirectories) { |
1411 FilePath src_parent_path(FILE_PATH_LITERAL("gdata/Directory 1")); | 1426 FilePath src_parent_path(FILE_PATH_LITERAL("gdata/Directory 1")); |
1412 FilePath src_file_path( | 1427 FilePath src_file_path( |
1413 FILE_PATH_LITERAL("gdata/Directory 1/SubDirectory File 1.txt")); | 1428 FILE_PATH_LITERAL("gdata/Directory 1/SubDirectory File 1.txt")); |
1414 FilePath dest_parent_path(FILE_PATH_LITERAL("gdata/New Folder 1")); | 1429 FilePath dest_parent_path(FILE_PATH_LITERAL("gdata/New Folder 1")); |
1415 FilePath dest_file_path(FILE_PATH_LITERAL("gdata/New Folder 1/Test.log")); | 1430 FilePath dest_file_path(FILE_PATH_LITERAL("gdata/New Folder 1/Test.log")); |
1416 FilePath interim_file_path(FILE_PATH_LITERAL("gdata/Test.log")); | 1431 FilePath interim_file_path(FILE_PATH_LITERAL("gdata/Test.log")); |
1417 | 1432 |
1418 LoadRootFeedDocument("root_feed.json"); | 1433 LoadRootFeedDocument("root_feed.json"); |
1419 | 1434 |
| 1435 EXPECT_CALL(*mock_sync_client_, OnDirectoryChanged( |
| 1436 Eq(FilePath(FILE_PATH_LITERAL("gdata"))))).Times(1); |
| 1437 |
1420 AddDirectoryFromFile(dest_parent_path, "directory_entry_atom.json"); | 1438 AddDirectoryFromFile(dest_parent_path, "directory_entry_atom.json"); |
1421 | 1439 |
1422 GDataFileBase* src_file = NULL; | 1440 GDataFileBase* src_file = NULL; |
1423 EXPECT_TRUE((src_file = FindFile(src_file_path)) != NULL); | 1441 EXPECT_TRUE((src_file = FindFile(src_file_path)) != NULL); |
1424 EXPECT_TRUE(src_file->AsGDataFile() != NULL); | 1442 EXPECT_TRUE(src_file->AsGDataFile() != NULL); |
1425 std::string src_file_path_resource = src_file->AsGDataFile()->resource_id(); | 1443 std::string src_file_path_resource = src_file->AsGDataFile()->resource_id(); |
1426 EXPECT_EQ(src_file, FindFileByResourceId(src_file_path_resource)); | 1444 EXPECT_EQ(src_file, FindFileByResourceId(src_file_path_resource)); |
1427 EXPECT_FALSE(src_file->self_url().is_empty()); | 1445 EXPECT_FALSE(src_file->self_url().is_empty()); |
1428 | 1446 |
1429 GDataFileBase* src_parent = NULL; | 1447 GDataFileBase* src_parent = NULL; |
(...skipping 16 matching lines...) Expand all Loading... |
1446 src_file->self_url(), | 1464 src_file->self_url(), |
1447 src_file_path_resource, _)); | 1465 src_file_path_resource, _)); |
1448 EXPECT_CALL(*mock_doc_service_, | 1466 EXPECT_CALL(*mock_doc_service_, |
1449 AddResourceToDirectory(dest_parent->content_url(), | 1467 AddResourceToDirectory(dest_parent->content_url(), |
1450 src_file->self_url(), _)); | 1468 src_file->self_url(), _)); |
1451 | 1469 |
1452 FileOperationCallback callback = | 1470 FileOperationCallback callback = |
1453 base::Bind(&CallbackHelper::FileOperationCallback, | 1471 base::Bind(&CallbackHelper::FileOperationCallback, |
1454 callback_helper_.get()); | 1472 callback_helper_.get()); |
1455 | 1473 |
| 1474 // Expect notification for both source and destination directories plus |
| 1475 // interim file path. |
| 1476 EXPECT_CALL(*mock_sync_client_, OnDirectoryChanged( |
| 1477 Eq(FilePath(FILE_PATH_LITERAL("gdata/Directory 1"))))).Times(1); |
| 1478 EXPECT_CALL(*mock_sync_client_, OnDirectoryChanged( |
| 1479 Eq(FilePath(FILE_PATH_LITERAL("gdata"))))).Times(1); |
| 1480 EXPECT_CALL(*mock_sync_client_, OnDirectoryChanged( |
| 1481 Eq(FilePath(FILE_PATH_LITERAL("gdata/New Folder 1"))))).Times(1); |
| 1482 |
1456 file_system_->Move(src_file_path, dest_file_path, callback); | 1483 file_system_->Move(src_file_path, dest_file_path, callback); |
1457 message_loop_.RunAllPending(); | 1484 message_loop_.RunAllPending(); |
1458 EXPECT_EQ(base::PLATFORM_FILE_OK, callback_helper_->last_error_); | 1485 EXPECT_EQ(base::PLATFORM_FILE_OK, callback_helper_->last_error_); |
1459 | 1486 |
1460 EXPECT_TRUE(FindFile(src_file_path) == NULL); | 1487 EXPECT_TRUE(FindFile(src_file_path) == NULL); |
1461 EXPECT_TRUE(FindFile(interim_file_path) == NULL); | 1488 EXPECT_TRUE(FindFile(interim_file_path) == NULL); |
1462 | 1489 |
1463 GDataFileBase* dest_file = NULL; | 1490 GDataFileBase* dest_file = NULL; |
1464 EXPECT_TRUE((dest_file = FindFile(dest_file_path)) != NULL); | 1491 EXPECT_TRUE((dest_file = FindFile(dest_file_path)) != NULL); |
1465 EXPECT_EQ(dest_file, FindFileByResourceId(src_file_path_resource)); | 1492 EXPECT_EQ(dest_file, FindFileByResourceId(src_file_path_resource)); |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1572 std::string file_in_root_resource = file->AsGDataFile()->resource_id(); | 1599 std::string file_in_root_resource = file->AsGDataFile()->resource_id(); |
1573 EXPECT_EQ(file, FindFileByResourceId(file_in_root_resource)); | 1600 EXPECT_EQ(file, FindFileByResourceId(file_in_root_resource)); |
1574 | 1601 |
1575 EXPECT_TRUE(FindFile(dir_in_root) != NULL); | 1602 EXPECT_TRUE(FindFile(dir_in_root) != NULL); |
1576 | 1603 |
1577 EXPECT_TRUE((file = FindFile(file_in_subdir)) != NULL); | 1604 EXPECT_TRUE((file = FindFile(file_in_subdir)) != NULL); |
1578 EXPECT_TRUE(file->AsGDataFile() != NULL); | 1605 EXPECT_TRUE(file->AsGDataFile() != NULL); |
1579 std::string file_in_subdir_resource = file->AsGDataFile()->resource_id(); | 1606 std::string file_in_subdir_resource = file->AsGDataFile()->resource_id(); |
1580 EXPECT_EQ(file, FindFileByResourceId(file_in_subdir_resource)); | 1607 EXPECT_EQ(file, FindFileByResourceId(file_in_subdir_resource)); |
1581 | 1608 |
| 1609 // Once for file in root and once for file... |
| 1610 EXPECT_CALL(*mock_sync_client_, OnDirectoryChanged( |
| 1611 Eq(FilePath(FILE_PATH_LITERAL("gdata"))))).Times(2); |
| 1612 |
1582 // Remove first file in root. | 1613 // Remove first file in root. |
1583 EXPECT_TRUE(RemoveFile(file_in_root)); | 1614 EXPECT_TRUE(RemoveFile(file_in_root)); |
1584 EXPECT_TRUE(FindFile(file_in_root) == NULL); | 1615 EXPECT_TRUE(FindFile(file_in_root) == NULL); |
1585 EXPECT_EQ(NULL, FindFileByResourceId(file_in_root_resource)); | 1616 EXPECT_EQ(NULL, FindFileByResourceId(file_in_root_resource)); |
1586 EXPECT_TRUE(FindFile(dir_in_root) != NULL); | 1617 EXPECT_TRUE(FindFile(dir_in_root) != NULL); |
1587 EXPECT_TRUE((file = FindFile(file_in_subdir)) != NULL); | 1618 EXPECT_TRUE((file = FindFile(file_in_subdir)) != NULL); |
1588 EXPECT_EQ(file, FindFileByResourceId(file_in_subdir_resource)); | 1619 EXPECT_EQ(file, FindFileByResourceId(file_in_subdir_resource)); |
1589 | 1620 |
1590 // Remove directory. | 1621 // Remove directory. |
1591 EXPECT_TRUE(RemoveFile(dir_in_root)); | 1622 EXPECT_TRUE(RemoveFile(dir_in_root)); |
(...skipping 12 matching lines...) Expand all Loading... |
1604 // Try removing root file element. | 1635 // Try removing root file element. |
1605 EXPECT_FALSE(RemoveFile(FilePath(FILE_PATH_LITERAL("gdata")))); | 1636 EXPECT_FALSE(RemoveFile(FilePath(FILE_PATH_LITERAL("gdata")))); |
1606 | 1637 |
1607 // Need this to ensure OnDirectoryChanged() is run. | 1638 // Need this to ensure OnDirectoryChanged() is run. |
1608 RunAllPendingForIO(); | 1639 RunAllPendingForIO(); |
1609 } | 1640 } |
1610 | 1641 |
1611 TEST_F(GDataFileSystemTest, CreateDirectory) { | 1642 TEST_F(GDataFileSystemTest, CreateDirectory) { |
1612 LoadRootFeedDocument("root_feed.json"); | 1643 LoadRootFeedDocument("root_feed.json"); |
1613 | 1644 |
| 1645 EXPECT_CALL(*mock_sync_client_, OnDirectoryChanged( |
| 1646 Eq(FilePath(FILE_PATH_LITERAL("gdata"))))).Times(1); |
| 1647 |
1614 // Create directory in root. | 1648 // Create directory in root. |
1615 FilePath dir_path(FILE_PATH_LITERAL("gdata/New Folder 1")); | 1649 FilePath dir_path(FILE_PATH_LITERAL("gdata/New Folder 1")); |
1616 EXPECT_TRUE(FindFile(dir_path) == NULL); | 1650 EXPECT_TRUE(FindFile(dir_path) == NULL); |
1617 AddDirectoryFromFile(dir_path, "directory_entry_atom.json"); | 1651 AddDirectoryFromFile(dir_path, "directory_entry_atom.json"); |
1618 EXPECT_TRUE(FindFile(dir_path) != NULL); | 1652 EXPECT_TRUE(FindFile(dir_path) != NULL); |
1619 | 1653 |
| 1654 EXPECT_CALL(*mock_sync_client_, OnDirectoryChanged( |
| 1655 Eq(FilePath(FILE_PATH_LITERAL("gdata/New Folder 1"))))).Times(1); |
| 1656 |
1620 // Create directory in a sub dirrectory. | 1657 // Create directory in a sub dirrectory. |
1621 FilePath subdir_path(FILE_PATH_LITERAL("gdata/New Folder 1/New Folder 2")); | 1658 FilePath subdir_path(FILE_PATH_LITERAL("gdata/New Folder 1/New Folder 2")); |
1622 EXPECT_TRUE(FindFile(subdir_path) == NULL); | 1659 EXPECT_TRUE(FindFile(subdir_path) == NULL); |
1623 AddDirectoryFromFile(subdir_path, "directory_entry_atom.json"); | 1660 AddDirectoryFromFile(subdir_path, "directory_entry_atom.json"); |
1624 EXPECT_TRUE(FindFile(subdir_path) != NULL); | 1661 EXPECT_TRUE(FindFile(subdir_path) != NULL); |
1625 } | 1662 } |
1626 | 1663 |
1627 TEST_F(GDataFileSystemTest, FindFirstMissingParentDirectory) { | 1664 TEST_F(GDataFileSystemTest, FindFirstMissingParentDirectory) { |
1628 LoadRootFeedDocument("root_feed.json"); | 1665 LoadRootFeedDocument("root_feed.json"); |
1629 | 1666 |
(...skipping 1181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2811 | 2848 |
2812 // Verify account meta feed is saved to cache. | 2849 // Verify account meta feed is saved to cache. |
2813 RunAllPendingForIO(); | 2850 RunAllPendingForIO(); |
2814 FilePath path = file_system_->cache_paths_[ | 2851 FilePath path = file_system_->cache_paths_[ |
2815 GDataRootDirectory::CACHE_TYPE_META].Append( | 2852 GDataRootDirectory::CACHE_TYPE_META].Append( |
2816 FILE_PATH_LITERAL("account_metadata.json")); | 2853 FILE_PATH_LITERAL("account_metadata.json")); |
2817 EXPECT_TRUE(file_util::PathExists(path)); | 2854 EXPECT_TRUE(file_util::PathExists(path)); |
2818 } | 2855 } |
2819 | 2856 |
2820 } // namespace gdata | 2857 } // namespace gdata |
OLD | NEW |