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