Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(996)

Side by Side Diff: chrome/browser/chromeos/drive/sync/remove_performer_unittest.cc

Issue 380993002: Upstream RunBlockingPoolTask(). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed. Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "chrome/browser/chromeos/drive/sync/remove_performer.h" 5 #include "chrome/browser/chromeos/drive/sync/remove_performer.h"
6 6
7 #include "base/task_runner_util.h" 7 #include "base/task_runner_util.h"
8 #include "chrome/browser/chromeos/drive/file_system/operation_test_base.h" 8 #include "chrome/browser/chromeos/drive/file_system/operation_test_base.h"
9 #include "chrome/browser/chromeos/drive/file_system_util.h" 9 #include "chrome/browser/chromeos/drive/file_system_util.h"
10 #include "chrome/browser/chromeos/drive/job_scheduler.h" 10 #include "chrome/browser/chromeos/drive/job_scheduler.h"
11 #include "chrome/browser/chromeos/drive/resource_metadata.h" 11 #include "chrome/browser/chromeos/drive/resource_metadata.h"
12 #include "chrome/browser/drive/fake_drive_service.h" 12 #include "chrome/browser/drive/fake_drive_service.h"
13 #include "content/public/test/test_utils.h"
13 #include "google_apis/drive/drive_api_parser.h" 14 #include "google_apis/drive/drive_api_parser.h"
14 #include "google_apis/drive/test_util.h" 15 #include "google_apis/drive/test_util.h"
15 16
16 namespace drive { 17 namespace drive {
17 namespace internal { 18 namespace internal {
18 19
19 typedef file_system::OperationTestBase RemovePerformerTest; 20 typedef file_system::OperationTestBase RemovePerformerTest;
20 21
21 TEST_F(RemovePerformerTest, RemoveFile) { 22 TEST_F(RemovePerformerTest, RemoveFile) {
22 RemovePerformer performer(blocking_task_runner(), observer(), scheduler(), 23 RemovePerformer performer(blocking_task_runner(), observer(), scheduler(),
23 metadata()); 24 metadata());
24 25
25 base::FilePath file_in_root(FILE_PATH_LITERAL("drive/root/File 1.txt")); 26 base::FilePath file_in_root(FILE_PATH_LITERAL("drive/root/File 1.txt"));
26 base::FilePath file_in_subdir( 27 base::FilePath file_in_subdir(
27 FILE_PATH_LITERAL("drive/root/Directory 1/SubDirectory File 1.txt")); 28 FILE_PATH_LITERAL("drive/root/Directory 1/SubDirectory File 1.txt"));
28 29
29 // Remove a file in root. 30 // Remove a file in root.
30 ResourceEntry entry; 31 ResourceEntry entry;
31 FileError error = FILE_ERROR_FAILED; 32 FileError error = FILE_ERROR_FAILED;
32 ASSERT_EQ(FILE_ERROR_OK, GetLocalResourceEntry(file_in_root, &entry)); 33 ASSERT_EQ(FILE_ERROR_OK, GetLocalResourceEntry(file_in_root, &entry));
33 performer.Remove(entry.local_id(), 34 performer.Remove(entry.local_id(),
34 ClientContext(USER_INITIATED), 35 ClientContext(USER_INITIATED),
35 google_apis::test_util::CreateCopyResultCallback(&error)); 36 google_apis::test_util::CreateCopyResultCallback(&error));
36 test_util::RunBlockingPoolTask(); 37 content::RunAllBlockingPoolTasksUntilIdle();
37 EXPECT_EQ(FILE_ERROR_OK, error); 38 EXPECT_EQ(FILE_ERROR_OK, error);
38 39
39 // Remove a file in subdirectory. 40 // Remove a file in subdirectory.
40 error = FILE_ERROR_FAILED; 41 error = FILE_ERROR_FAILED;
41 ASSERT_EQ(FILE_ERROR_OK, GetLocalResourceEntry(file_in_subdir, &entry)); 42 ASSERT_EQ(FILE_ERROR_OK, GetLocalResourceEntry(file_in_subdir, &entry));
42 const std::string resource_id = entry.resource_id(); 43 const std::string resource_id = entry.resource_id();
43 44
44 performer.Remove(entry.local_id(), 45 performer.Remove(entry.local_id(),
45 ClientContext(USER_INITIATED), 46 ClientContext(USER_INITIATED),
46 google_apis::test_util::CreateCopyResultCallback(&error)); 47 google_apis::test_util::CreateCopyResultCallback(&error));
47 test_util::RunBlockingPoolTask(); 48 content::RunAllBlockingPoolTasksUntilIdle();
48 EXPECT_EQ(FILE_ERROR_OK, error); 49 EXPECT_EQ(FILE_ERROR_OK, error);
49 50
50 // Verify the file is indeed removed in the server. 51 // Verify the file is indeed removed in the server.
51 google_apis::GDataErrorCode gdata_error = google_apis::GDATA_OTHER_ERROR; 52 google_apis::GDataErrorCode gdata_error = google_apis::GDATA_OTHER_ERROR;
52 scoped_ptr<google_apis::FileResource> gdata_entry; 53 scoped_ptr<google_apis::FileResource> gdata_entry;
53 fake_service()->GetFileResource( 54 fake_service()->GetFileResource(
54 resource_id, 55 resource_id,
55 google_apis::test_util::CreateCopyResultCallback(&gdata_error, 56 google_apis::test_util::CreateCopyResultCallback(&gdata_error,
56 &gdata_entry)); 57 &gdata_entry));
57 test_util::RunBlockingPoolTask(); 58 content::RunAllBlockingPoolTasksUntilIdle();
58 ASSERT_EQ(google_apis::HTTP_SUCCESS, gdata_error); 59 ASSERT_EQ(google_apis::HTTP_SUCCESS, gdata_error);
59 EXPECT_TRUE(gdata_entry->labels().is_trashed()); 60 EXPECT_TRUE(gdata_entry->labels().is_trashed());
60 61
61 // Try removing non-existing file. 62 // Try removing non-existing file.
62 error = FILE_ERROR_FAILED; 63 error = FILE_ERROR_FAILED;
63 performer.Remove("non-existing-id", 64 performer.Remove("non-existing-id",
64 ClientContext(USER_INITIATED), 65 ClientContext(USER_INITIATED),
65 google_apis::test_util::CreateCopyResultCallback(&error)); 66 google_apis::test_util::CreateCopyResultCallback(&error));
66 test_util::RunBlockingPoolTask(); 67 content::RunAllBlockingPoolTasksUntilIdle();
67 EXPECT_EQ(FILE_ERROR_NOT_FOUND, error); 68 EXPECT_EQ(FILE_ERROR_NOT_FOUND, error);
68 } 69 }
69 70
70 TEST_F(RemovePerformerTest, RemoveShared) { 71 TEST_F(RemovePerformerTest, RemoveShared) {
71 RemovePerformer performer(blocking_task_runner(), observer(), scheduler(), 72 RemovePerformer performer(blocking_task_runner(), observer(), scheduler(),
72 metadata()); 73 metadata());
73 74
74 const base::FilePath kPathInMyDrive(FILE_PATH_LITERAL( 75 const base::FilePath kPathInMyDrive(FILE_PATH_LITERAL(
75 "drive/root/shared.txt")); 76 "drive/root/shared.txt"));
76 const base::FilePath kPathInOther(FILE_PATH_LITERAL( 77 const base::FilePath kPathInOther(FILE_PATH_LITERAL(
77 "drive/other/shared.txt")); 78 "drive/other/shared.txt"));
78 79
79 // Prepare a shared file to the root folder. 80 // Prepare a shared file to the root folder.
80 google_apis::GDataErrorCode gdata_error = google_apis::GDATA_OTHER_ERROR; 81 google_apis::GDataErrorCode gdata_error = google_apis::GDATA_OTHER_ERROR;
81 scoped_ptr<google_apis::FileResource> gdata_entry; 82 scoped_ptr<google_apis::FileResource> gdata_entry;
82 fake_service()->AddNewFile( 83 fake_service()->AddNewFile(
83 "text/plain", 84 "text/plain",
84 "dummy content", 85 "dummy content",
85 fake_service()->GetRootResourceId(), 86 fake_service()->GetRootResourceId(),
86 kPathInMyDrive.BaseName().AsUTF8Unsafe(), 87 kPathInMyDrive.BaseName().AsUTF8Unsafe(),
87 true, // shared_with_me, 88 true, // shared_with_me,
88 google_apis::test_util::CreateCopyResultCallback(&gdata_error, 89 google_apis::test_util::CreateCopyResultCallback(&gdata_error,
89 &gdata_entry)); 90 &gdata_entry));
90 test_util::RunBlockingPoolTask(); 91 content::RunAllBlockingPoolTasksUntilIdle();
91 ASSERT_EQ(google_apis::HTTP_CREATED, gdata_error); 92 ASSERT_EQ(google_apis::HTTP_CREATED, gdata_error);
92 CheckForUpdates(); 93 CheckForUpdates();
93 94
94 // Remove it. Locally, the file should be moved to drive/other. 95 // Remove it. Locally, the file should be moved to drive/other.
95 ResourceEntry entry; 96 ResourceEntry entry;
96 ASSERT_EQ(FILE_ERROR_OK, GetLocalResourceEntry(kPathInMyDrive, &entry)); 97 ASSERT_EQ(FILE_ERROR_OK, GetLocalResourceEntry(kPathInMyDrive, &entry));
97 FileError error = FILE_ERROR_FAILED; 98 FileError error = FILE_ERROR_FAILED;
98 performer.Remove(entry.local_id(), 99 performer.Remove(entry.local_id(),
99 ClientContext(USER_INITIATED), 100 ClientContext(USER_INITIATED),
100 google_apis::test_util::CreateCopyResultCallback(&error)); 101 google_apis::test_util::CreateCopyResultCallback(&error));
101 test_util::RunBlockingPoolTask(); 102 content::RunAllBlockingPoolTasksUntilIdle();
102 EXPECT_EQ(FILE_ERROR_OK, error); 103 EXPECT_EQ(FILE_ERROR_OK, error);
103 EXPECT_EQ(FILE_ERROR_NOT_FOUND, 104 EXPECT_EQ(FILE_ERROR_NOT_FOUND,
104 GetLocalResourceEntry(kPathInMyDrive, &entry)); 105 GetLocalResourceEntry(kPathInMyDrive, &entry));
105 EXPECT_EQ(FILE_ERROR_OK, GetLocalResourceEntry(kPathInOther, &entry)); 106 EXPECT_EQ(FILE_ERROR_OK, GetLocalResourceEntry(kPathInOther, &entry));
106 107
107 // Remotely, the entry should have lost its parent. 108 // Remotely, the entry should have lost its parent.
108 gdata_error = google_apis::GDATA_OTHER_ERROR; 109 gdata_error = google_apis::GDATA_OTHER_ERROR;
109 const std::string resource_id = gdata_entry->file_id(); 110 const std::string resource_id = gdata_entry->file_id();
110 fake_service()->GetFileResource( 111 fake_service()->GetFileResource(
111 resource_id, 112 resource_id,
112 google_apis::test_util::CreateCopyResultCallback(&gdata_error, 113 google_apis::test_util::CreateCopyResultCallback(&gdata_error,
113 &gdata_entry)); 114 &gdata_entry));
114 test_util::RunBlockingPoolTask(); 115 content::RunAllBlockingPoolTasksUntilIdle();
115 ASSERT_EQ(google_apis::HTTP_SUCCESS, gdata_error); 116 ASSERT_EQ(google_apis::HTTP_SUCCESS, gdata_error);
116 EXPECT_FALSE(gdata_entry->labels().is_trashed()); // It's not deleted. 117 EXPECT_FALSE(gdata_entry->labels().is_trashed()); // It's not deleted.
117 EXPECT_TRUE(gdata_entry->parents().empty()); 118 EXPECT_TRUE(gdata_entry->parents().empty());
118 } 119 }
119 120
120 TEST_F(RemovePerformerTest, RemoveLocallyCreatedFile) { 121 TEST_F(RemovePerformerTest, RemoveLocallyCreatedFile) {
121 RemovePerformer performer(blocking_task_runner(), observer(), scheduler(), 122 RemovePerformer performer(blocking_task_runner(), observer(), scheduler(),
122 metadata()); 123 metadata());
123 124
124 // Add an entry without resource ID. 125 // Add an entry without resource ID.
125 ResourceEntry entry; 126 ResourceEntry entry;
126 entry.set_title("New File.txt"); 127 entry.set_title("New File.txt");
127 entry.set_parent_local_id(util::kDriveTrashDirLocalId); 128 entry.set_parent_local_id(util::kDriveTrashDirLocalId);
128 129
129 FileError error = FILE_ERROR_FAILED; 130 FileError error = FILE_ERROR_FAILED;
130 std::string local_id; 131 std::string local_id;
131 base::PostTaskAndReplyWithResult( 132 base::PostTaskAndReplyWithResult(
132 blocking_task_runner(), 133 blocking_task_runner(),
133 FROM_HERE, 134 FROM_HERE,
134 base::Bind(&ResourceMetadata::AddEntry, 135 base::Bind(&ResourceMetadata::AddEntry,
135 base::Unretained(metadata()), 136 base::Unretained(metadata()),
136 entry, 137 entry,
137 &local_id), 138 &local_id),
138 google_apis::test_util::CreateCopyResultCallback(&error)); 139 google_apis::test_util::CreateCopyResultCallback(&error));
139 test_util::RunBlockingPoolTask(); 140 content::RunAllBlockingPoolTasksUntilIdle();
140 EXPECT_EQ(FILE_ERROR_OK, error); 141 EXPECT_EQ(FILE_ERROR_OK, error);
141 142
142 // Remove the entry. 143 // Remove the entry.
143 performer.Remove(local_id, ClientContext(USER_INITIATED), 144 performer.Remove(local_id, ClientContext(USER_INITIATED),
144 google_apis::test_util::CreateCopyResultCallback(&error)); 145 google_apis::test_util::CreateCopyResultCallback(&error));
145 test_util::RunBlockingPoolTask(); 146 content::RunAllBlockingPoolTasksUntilIdle();
146 EXPECT_EQ(FILE_ERROR_OK, error); 147 EXPECT_EQ(FILE_ERROR_OK, error);
147 EXPECT_EQ(FILE_ERROR_NOT_FOUND, GetLocalResourceEntryById(local_id, &entry)); 148 EXPECT_EQ(FILE_ERROR_NOT_FOUND, GetLocalResourceEntryById(local_id, &entry));
148 } 149 }
149 150
150 } // namespace internal 151 } // namespace internal
151 } // namespace drive 152 } // namespace drive
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/drive/sync/entry_update_performer_unittest.cc ('k') | chrome/browser/chromeos/drive/test_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698