diff options
author | nhiroki@chromium.org <nhiroki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-26 13:51:35 +0000 |
---|---|---|
committer | nhiroki@chromium.org <nhiroki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-26 13:51:35 +0000 |
commit | c6a8692c7b33a366d813884a0738da1ba7dc0550 (patch) | |
tree | 7ab4d4f85cb60b32f466056cdcc3f9a815853305 /chrome/browser/sync_file_system | |
parent | 1aa9e15d958b0aa731452ecd1207660a603aa9a0 (diff) | |
download | chromium_src-c6a8692c7b33a366d813884a0738da1ba7dc0550.zip chromium_src-c6a8692c7b33a366d813884a0738da1ba7dc0550.tar.gz chromium_src-c6a8692c7b33a366d813884a0738da1ba7dc0550.tar.bz2 |
SyncFS: Drop a remote delete change when it has unknown resource ID.
This is prerequisite patch for https://codereview.chromium.org/13986011/
BUG=none
TEST=unit_tests --gtest_filter=\*DriveFileSyncService\*
Review URL: https://chromiumcodereview.appspot.com/14334007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@196723 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/sync_file_system')
-rw-r--r-- | chrome/browser/sync_file_system/drive_file_sync_service.cc | 5 | ||||
-rw-r--r-- | chrome/browser/sync_file_system/drive_file_sync_service_mock_unittest.cc | 10 |
2 files changed, 12 insertions, 3 deletions
diff --git a/chrome/browser/sync_file_system/drive_file_sync_service.cc b/chrome/browser/sync_file_system/drive_file_sync_service.cc index 750ad5b..6a68d87 100644 --- a/chrome/browser/sync_file_system/drive_file_sync_service.cc +++ b/chrome/browser/sync_file_system/drive_file_sync_service.cc @@ -1889,6 +1889,11 @@ bool DriveFileSyncService::AppendRemoteChangeInternal( remote_resource_id != local_resource_id) return false; + // Drop any change if the change is for deletion and local resource id is + // empty. + if (is_deleted && local_resource_id.empty()) + return false; + FileChange file_change(CreateFileChange(is_deleted)); if (is_deleted) { diff --git a/chrome/browser/sync_file_system/drive_file_sync_service_mock_unittest.cc b/chrome/browser/sync_file_system/drive_file_sync_service_mock_unittest.cc index 55fe287..c3bcd28 100644 --- a/chrome/browser/sync_file_system/drive_file_sync_service_mock_unittest.cc +++ b/chrome/browser/sync_file_system/drive_file_sync_service_mock_unittest.cc @@ -1263,13 +1263,17 @@ TEST_F(DriveFileSyncServiceMockTest, RemoteChange_Override) { kOrigin, kFilePath, true /* is_deleted */, kFileResourceId, 6, "deleted_file_md5")); - // Expect not to drop these changes even if they have different resource IDs. - EXPECT_TRUE(AppendIncrementalRemoteChange( + // Expect to drop this delete change since it has a different resource ID with + // the previous one. + EXPECT_FALSE(AppendIncrementalRemoteChange( kOrigin, kFilePath, true /* is_deleted */, kFileResourceId2, 7, "deleted_file_md5")); + + // Expect not to drop this change even if it has a different resource ID with + // the previous one. EXPECT_TRUE(AppendIncrementalRemoteChange( kOrigin, kFilePath, false /* is_deleted */, - kFileResourceId, 8, "updated_file_md5")); + kFileResourceId2, 8, "updated_file_md5")); } TEST_F(DriveFileSyncServiceMockTest, RemoteChange_Folder) { |