summaryrefslogtreecommitdiffstats
path: root/chrome/browser/sync_file_system
diff options
context:
space:
mode:
authornhiroki@chromium.org <nhiroki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-26 13:51:35 +0000
committernhiroki@chromium.org <nhiroki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-26 13:51:35 +0000
commitc6a8692c7b33a366d813884a0738da1ba7dc0550 (patch)
tree7ab4d4f85cb60b32f466056cdcc3f9a815853305 /chrome/browser/sync_file_system
parent1aa9e15d958b0aa731452ecd1207660a603aa9a0 (diff)
downloadchromium_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.cc5
-rw-r--r--chrome/browser/sync_file_system/drive_file_sync_service_mock_unittest.cc10
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) {