| Index: chrome/browser/chromeos/drive/sync/remove_performer_unittest.cc
|
| diff --git a/chrome/browser/chromeos/drive/sync/remove_performer_unittest.cc b/chrome/browser/chromeos/drive/sync/remove_performer_unittest.cc
|
| index 1d6ed00938f3303a6bc9ea5cf06179632434e1f2..dc98b11d69936dbb658e72d90afd0770b4f69e0a 100644
|
| --- a/chrome/browser/chromeos/drive/sync/remove_performer_unittest.cc
|
| +++ b/chrome/browser/chromeos/drive/sync/remove_performer_unittest.cc
|
| @@ -148,5 +148,52 @@ TEST_F(RemovePerformerTest, RemoveLocallyCreatedFile) {
|
| EXPECT_EQ(FILE_ERROR_NOT_FOUND, GetLocalResourceEntryById(local_id, &entry));
|
| }
|
|
|
| +TEST_F(RemovePerformerTest, Remove_InsufficientPermission) {
|
| + RemovePerformer performer(blocking_task_runner(), delegate(), scheduler(),
|
| + metadata());
|
| +
|
| + base::FilePath file_in_root(FILE_PATH_LITERAL("drive/root/File 1.txt"));
|
| +
|
| + ResourceEntry src_entry;
|
| + ASSERT_EQ(FILE_ERROR_OK, GetLocalResourceEntry(file_in_root, &src_entry));
|
| +
|
| + // Remove locally.
|
| + ResourceEntry updated_entry(src_entry);
|
| + updated_entry.set_parent_local_id(util::kDriveTrashDirLocalId);
|
| +
|
| + FileError error = FILE_ERROR_FAILED;
|
| + base::PostTaskAndReplyWithResult(
|
| + blocking_task_runner(),
|
| + FROM_HERE,
|
| + base::Bind(&ResourceMetadata::RefreshEntry,
|
| + base::Unretained(metadata()),
|
| + updated_entry),
|
| + google_apis::test_util::CreateCopyResultCallback(&error));
|
| + content::RunAllBlockingPoolTasksUntilIdle();
|
| + EXPECT_EQ(FILE_ERROR_OK, error);
|
| +
|
| + // Set user permission to forbid server side update.
|
| + EXPECT_EQ(google_apis::HTTP_SUCCESS, fake_service()->SetUserPermission(
|
| + src_entry.resource_id(), google_apis::drive::PERMISSION_ROLE_READER));
|
| +
|
| + // Try to perform remove.
|
| + error = FILE_ERROR_FAILED;
|
| + performer.Remove(src_entry.local_id(),
|
| + ClientContext(USER_INITIATED),
|
| + google_apis::test_util::CreateCopyResultCallback(&error));
|
| + content::RunAllBlockingPoolTasksUntilIdle();
|
| + EXPECT_EQ(FILE_ERROR_OK, error);
|
| +
|
| + // This should result in reverting the local change.
|
| + ResourceEntry result_entry;
|
| + EXPECT_EQ(FILE_ERROR_OK,
|
| + GetLocalResourceEntryById(src_entry.local_id(), &result_entry));
|
| + EXPECT_EQ(src_entry.parent_local_id(), result_entry.parent_local_id());
|
| +
|
| + ASSERT_EQ(1U, delegate()->drive_sync_errors().size());
|
| + EXPECT_EQ(file_system::DRIVE_SYNC_ERROR_DELETE_WITHOUT_PERMISSION,
|
| + delegate()->drive_sync_errors()[0]);
|
| +}
|
| +
|
| } // namespace internal
|
| } // namespace drive
|
|
|