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

Side by Side Diff: chrome/browser/sync_file_system/drive_backend/register_app_task_unittest.cc

Issue 1873683002: Convert //chrome/browser/sync_file_system from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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
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/sync_file_system/drive_backend/register_app_task.h" 5 #include "chrome/browser/sync_file_system/drive_backend/register_app_task.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9
9 #include <utility> 10 #include <utility>
10 #include <vector> 11 #include <vector>
11 12
12 #include "base/files/scoped_temp_dir.h" 13 #include "base/files/scoped_temp_dir.h"
13 #include "base/format_macros.h" 14 #include "base/format_macros.h"
14 #include "base/macros.h" 15 #include "base/macros.h"
16 #include "base/memory/ptr_util.h"
15 #include "base/run_loop.h" 17 #include "base/run_loop.h"
16 #include "base/strings/string_number_conversions.h" 18 #include "base/strings/string_number_conversions.h"
17 #include "base/strings/stringprintf.h" 19 #include "base/strings/stringprintf.h"
18 #include "base/thread_task_runner_handle.h" 20 #include "base/thread_task_runner_handle.h"
19 #include "chrome/browser/sync_file_system/drive_backend/drive_backend_constants. h" 21 #include "chrome/browser/sync_file_system/drive_backend/drive_backend_constants. h"
20 #include "chrome/browser/sync_file_system/drive_backend/drive_backend_util.h" 22 #include "chrome/browser/sync_file_system/drive_backend/drive_backend_util.h"
21 #include "chrome/browser/sync_file_system/drive_backend/fake_drive_service_helpe r.h" 23 #include "chrome/browser/sync_file_system/drive_backend/fake_drive_service_helpe r.h"
22 #include "chrome/browser/sync_file_system/drive_backend/leveldb_wrapper.h" 24 #include "chrome/browser/sync_file_system/drive_backend/leveldb_wrapper.h"
23 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.h" 25 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.h"
24 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.pb.h" 26 #include "chrome/browser/sync_file_system/drive_backend/metadata_database.pb.h"
(...skipping 19 matching lines...) Expand all
44 public: 46 public:
45 RegisterAppTaskTest() 47 RegisterAppTaskTest()
46 : next_file_id_(1000), 48 : next_file_id_(1000),
47 next_tracker_id_(10000) {} 49 next_tracker_id_(10000) {}
48 ~RegisterAppTaskTest() override {} 50 ~RegisterAppTaskTest() override {}
49 51
50 void SetUp() override { 52 void SetUp() override {
51 ASSERT_TRUE(database_dir_.CreateUniqueTempDir()); 53 ASSERT_TRUE(database_dir_.CreateUniqueTempDir());
52 in_memory_env_.reset(leveldb::NewMemEnv(leveldb::Env::Default())); 54 in_memory_env_.reset(leveldb::NewMemEnv(leveldb::Env::Default()));
53 55
54 scoped_ptr<drive::FakeDriveService> 56 std::unique_ptr<drive::FakeDriveService> fake_drive_service(
55 fake_drive_service(new drive::FakeDriveService); 57 new drive::FakeDriveService);
56 scoped_ptr<drive::DriveUploaderInterface> 58 std::unique_ptr<drive::DriveUploaderInterface> drive_uploader(
57 drive_uploader(new drive::DriveUploader( 59 new drive::DriveUploader(fake_drive_service.get(),
58 fake_drive_service.get(), 60 base::ThreadTaskRunnerHandle::Get()));
59 base::ThreadTaskRunnerHandle::Get()));
60 61
61 fake_drive_service_helper_.reset(new FakeDriveServiceHelper( 62 fake_drive_service_helper_.reset(new FakeDriveServiceHelper(
62 fake_drive_service.get(), drive_uploader.get(), 63 fake_drive_service.get(), drive_uploader.get(),
63 kSyncRootFolderTitle)); 64 kSyncRootFolderTitle));
64 65
65 context_.reset(new SyncEngineContext( 66 context_.reset(new SyncEngineContext(
66 std::move(fake_drive_service), std::move(drive_uploader), 67 std::move(fake_drive_service), std::move(drive_uploader),
67 nullptr /* task_logger */, base::ThreadTaskRunnerHandle::Get(), 68 nullptr /* task_logger */, base::ThreadTaskRunnerHandle::Get(),
68 base::ThreadTaskRunnerHandle::Get(), nullptr /* worker_pool */)); 69 base::ThreadTaskRunnerHandle::Get(), nullptr /* worker_pool */));
69 70
70 ASSERT_EQ(google_apis::HTTP_CREATED, 71 ASSERT_EQ(google_apis::HTTP_CREATED,
71 fake_drive_service_helper_->AddOrphanedFolder( 72 fake_drive_service_helper_->AddOrphanedFolder(
72 kSyncRootFolderTitle, &sync_root_folder_id_)); 73 kSyncRootFolderTitle, &sync_root_folder_id_));
73 } 74 }
74 75
75 void TearDown() override { 76 void TearDown() override {
76 context_.reset(); 77 context_.reset();
77 base::RunLoop().RunUntilIdle(); 78 base::RunLoop().RunUntilIdle();
78 } 79 }
79 80
80 protected: 81 protected:
81 scoped_ptr<LevelDBWrapper> OpenLevelDB() { 82 std::unique_ptr<LevelDBWrapper> OpenLevelDB() {
82 leveldb::DB* db = nullptr; 83 leveldb::DB* db = nullptr;
83 leveldb::Options options; 84 leveldb::Options options;
84 options.create_if_missing = true; 85 options.create_if_missing = true;
85 options.env = in_memory_env_.get(); 86 options.env = in_memory_env_.get();
86 leveldb::Status status = 87 leveldb::Status status =
87 leveldb::DB::Open(options, database_dir_.path().AsUTF8Unsafe(), &db); 88 leveldb::DB::Open(options, database_dir_.path().AsUTF8Unsafe(), &db);
88 EXPECT_TRUE(status.ok()); 89 EXPECT_TRUE(status.ok());
89 return make_scoped_ptr(new LevelDBWrapper(make_scoped_ptr(db))); 90 return base::WrapUnique(new LevelDBWrapper(base::WrapUnique(db)));
90 } 91 }
91 92
92 void SetUpInitialData(LevelDBWrapper* db) { 93 void SetUpInitialData(LevelDBWrapper* db) {
93 ServiceMetadata service_metadata; 94 ServiceMetadata service_metadata;
94 service_metadata.set_largest_change_id(100); 95 service_metadata.set_largest_change_id(100);
95 service_metadata.set_sync_root_tracker_id(kSyncRootTrackerID); 96 service_metadata.set_sync_root_tracker_id(kSyncRootTrackerID);
96 service_metadata.set_next_tracker_id(next_tracker_id_); 97 service_metadata.set_next_tracker_id(next_tracker_id_);
97 98
98 FileDetails sync_root_details; 99 FileDetails sync_root_details;
99 sync_root_details.set_title(kSyncRootFolderTitle); 100 sync_root_details.set_title(kSyncRootFolderTitle);
(...skipping 13 matching lines...) Expand all
113 sync_root_tracker.set_active(true); 114 sync_root_tracker.set_active(true);
114 115
115 db->Put(kDatabaseVersionKey, 116 db->Put(kDatabaseVersionKey,
116 base::Int64ToString(kCurrentDatabaseVersion)); 117 base::Int64ToString(kCurrentDatabaseVersion));
117 PutServiceMetadataToDB(service_metadata, db); 118 PutServiceMetadataToDB(service_metadata, db);
118 PutFileMetadataToDB(sync_root_metadata, db); 119 PutFileMetadataToDB(sync_root_metadata, db);
119 PutFileTrackerToDB(sync_root_tracker, db); 120 PutFileTrackerToDB(sync_root_tracker, db);
120 EXPECT_TRUE(db->Commit().ok()); 121 EXPECT_TRUE(db->Commit().ok());
121 } 122 }
122 123
123 void CreateMetadataDatabase(scoped_ptr<LevelDBWrapper> db) { 124 void CreateMetadataDatabase(std::unique_ptr<LevelDBWrapper> db) {
124 ASSERT_TRUE(db); 125 ASSERT_TRUE(db);
125 ASSERT_FALSE(context_->GetMetadataDatabase()); 126 ASSERT_FALSE(context_->GetMetadataDatabase());
126 scoped_ptr<MetadataDatabase> metadata_db; 127 std::unique_ptr<MetadataDatabase> metadata_db;
127 ASSERT_EQ( 128 ASSERT_EQ(
128 SYNC_STATUS_OK, 129 SYNC_STATUS_OK,
129 MetadataDatabase::CreateForTesting( 130 MetadataDatabase::CreateForTesting(
130 std::move(db), true /* enable_on_disk_index */, &metadata_db)); 131 std::move(db), true /* enable_on_disk_index */, &metadata_db));
131 context_->SetMetadataDatabase(std::move(metadata_db)); 132 context_->SetMetadataDatabase(std::move(metadata_db));
132 } 133 }
133 134
134 SyncStatusCode RunRegisterAppTask(const std::string& app_id) { 135 SyncStatusCode RunRegisterAppTask(const std::string& app_id) {
135 RegisterAppTask task(context_.get(), app_id); 136 RegisterAppTask task(context_.get(), app_id);
136 SyncStatusCode status = SYNC_STATUS_UNKNOWN; 137 SyncStatusCode status = SYNC_STATUS_UNKNOWN;
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 files.active_tracker(), &app_root_tracker)); 225 files.active_tracker(), &app_root_tracker));
225 *app_root_folder_id = app_root_tracker.file_id(); 226 *app_root_folder_id = app_root_tracker.file_id();
226 return true; 227 return true;
227 } 228 }
228 229
229 bool HasRemoteAppRoot(const std::string& app_id) { 230 bool HasRemoteAppRoot(const std::string& app_id) {
230 std::string app_root_folder_id; 231 std::string app_root_folder_id;
231 if (!GetAppRootFolderID(app_id, &app_root_folder_id)) 232 if (!GetAppRootFolderID(app_id, &app_root_folder_id))
232 return false; 233 return false;
233 234
234 scoped_ptr<google_apis::FileResource> entry; 235 std::unique_ptr<google_apis::FileResource> entry;
235 if (google_apis::HTTP_SUCCESS != 236 if (google_apis::HTTP_SUCCESS !=
236 fake_drive_service_helper_->GetFileResource(app_root_folder_id, &entry)) 237 fake_drive_service_helper_->GetFileResource(app_root_folder_id, &entry))
237 return false; 238 return false;
238 239
239 return !entry->labels().is_trashed(); 240 return !entry->labels().is_trashed();
240 } 241 }
241 242
242 bool VerifyRemoteAppRootVisibility(const std::string& app_id) { 243 bool VerifyRemoteAppRootVisibility(const std::string& app_id) {
243 std::string app_root_folder_id; 244 std::string app_root_folder_id;
244 if (!GetAppRootFolderID(app_id, &app_root_folder_id)) 245 if (!GetAppRootFolderID(app_id, &app_root_folder_id))
245 return false; 246 return false;
246 247
247 google_apis::drive::FileVisibility visibility; 248 google_apis::drive::FileVisibility visibility;
248 if (google_apis::HTTP_SUCCESS != 249 if (google_apis::HTTP_SUCCESS !=
249 fake_drive_service_helper_->GetFileVisibility( 250 fake_drive_service_helper_->GetFileVisibility(
250 app_root_folder_id, &visibility)) 251 app_root_folder_id, &visibility))
251 return false; 252 return false;
252 if (visibility != google_apis::drive::FILE_VISIBILITY_PRIVATE) 253 if (visibility != google_apis::drive::FILE_VISIBILITY_PRIVATE)
253 return false; 254 return false;
254 255
255 return true; 256 return true;
256 } 257 }
257 258
258 private: 259 private:
259 std::string GenerateFileID() { 260 std::string GenerateFileID() {
260 return base::StringPrintf("file_id_%" PRId64, next_file_id_++); 261 return base::StringPrintf("file_id_%" PRId64, next_file_id_++);
261 } 262 }
262 263
263 scoped_ptr<leveldb::Env> in_memory_env_; 264 std::unique_ptr<leveldb::Env> in_memory_env_;
264 265
265 std::string sync_root_folder_id_; 266 std::string sync_root_folder_id_;
266 267
267 int64_t next_file_id_; 268 int64_t next_file_id_;
268 int64_t next_tracker_id_; 269 int64_t next_tracker_id_;
269 270
270 content::TestBrowserThreadBundle browser_threads_; 271 content::TestBrowserThreadBundle browser_threads_;
271 base::ScopedTempDir database_dir_; 272 base::ScopedTempDir database_dir_;
272 273
273 scoped_ptr<SyncEngineContext> context_; 274 std::unique_ptr<SyncEngineContext> context_;
274 scoped_ptr<FakeDriveServiceHelper> fake_drive_service_helper_; 275 std::unique_ptr<FakeDriveServiceHelper> fake_drive_service_helper_;
275 276
276 DISALLOW_COPY_AND_ASSIGN(RegisterAppTaskTest); 277 DISALLOW_COPY_AND_ASSIGN(RegisterAppTaskTest);
277 }; 278 };
278 279
279 TEST_F(RegisterAppTaskTest, AlreadyRegistered) { 280 TEST_F(RegisterAppTaskTest, AlreadyRegistered) {
280 scoped_ptr<LevelDBWrapper> db = OpenLevelDB(); 281 std::unique_ptr<LevelDBWrapper> db = OpenLevelDB();
281 ASSERT_TRUE(db); 282 ASSERT_TRUE(db);
282 SetUpInitialData(db.get()); 283 SetUpInitialData(db.get());
283 284
284 const std::string kAppID = "app_id"; 285 const std::string kAppID = "app_id";
285 SetUpRegisteredAppRoot(kAppID, db.get()); 286 SetUpRegisteredAppRoot(kAppID, db.get());
286 287
287 CreateMetadataDatabase(std::move(db)); 288 CreateMetadataDatabase(std::move(db));
288 EXPECT_EQ(SYNC_STATUS_OK, RunRegisterAppTask(kAppID)); 289 EXPECT_EQ(SYNC_STATUS_OK, RunRegisterAppTask(kAppID));
289 290
290 EXPECT_EQ(1u, CountRegisteredAppRoot()); 291 EXPECT_EQ(1u, CountRegisteredAppRoot());
291 EXPECT_TRUE(IsAppRegistered(kAppID)); 292 EXPECT_TRUE(IsAppRegistered(kAppID));
292 } 293 }
293 294
294 TEST_F(RegisterAppTaskTest, CreateAppFolder) { 295 TEST_F(RegisterAppTaskTest, CreateAppFolder) {
295 scoped_ptr<LevelDBWrapper> db = OpenLevelDB(); 296 std::unique_ptr<LevelDBWrapper> db = OpenLevelDB();
296 ASSERT_TRUE(db); 297 ASSERT_TRUE(db);
297 SetUpInitialData(db.get()); 298 SetUpInitialData(db.get());
298 299
299 const std::string kAppID = "app_id"; 300 const std::string kAppID = "app_id";
300 CreateMetadataDatabase(std::move(db)); 301 CreateMetadataDatabase(std::move(db));
301 RunRegisterAppTask(kAppID); 302 RunRegisterAppTask(kAppID);
302 303
303 EXPECT_EQ(1u, CountRegisteredAppRoot()); 304 EXPECT_EQ(1u, CountRegisteredAppRoot());
304 EXPECT_TRUE(IsAppRegistered(kAppID)); 305 EXPECT_TRUE(IsAppRegistered(kAppID));
305 306
306 EXPECT_EQ(1u, CountRemoteFileInSyncRoot()); 307 EXPECT_EQ(1u, CountRemoteFileInSyncRoot());
307 EXPECT_TRUE(HasRemoteAppRoot(kAppID)); 308 EXPECT_TRUE(HasRemoteAppRoot(kAppID));
308 EXPECT_TRUE(VerifyRemoteAppRootVisibility(kAppID)); 309 EXPECT_TRUE(VerifyRemoteAppRootVisibility(kAppID));
309 } 310 }
310 311
311 TEST_F(RegisterAppTaskTest, RegisterExistingFolder) { 312 TEST_F(RegisterAppTaskTest, RegisterExistingFolder) {
312 scoped_ptr<LevelDBWrapper> db = OpenLevelDB(); 313 std::unique_ptr<LevelDBWrapper> db = OpenLevelDB();
313 ASSERT_TRUE(db); 314 ASSERT_TRUE(db);
314 SetUpInitialData(db.get()); 315 SetUpInitialData(db.get());
315 316
316 const std::string kAppID = "app_id"; 317 const std::string kAppID = "app_id";
317 SetUpUnregisteredAppRoot(kAppID, db.get()); 318 SetUpUnregisteredAppRoot(kAppID, db.get());
318 319
319 CreateMetadataDatabase(std::move(db)); 320 CreateMetadataDatabase(std::move(db));
320 RunRegisterAppTask(kAppID); 321 RunRegisterAppTask(kAppID);
321 322
322 EXPECT_EQ(1u, CountRegisteredAppRoot()); 323 EXPECT_EQ(1u, CountRegisteredAppRoot());
323 EXPECT_TRUE(IsAppRegistered(kAppID)); 324 EXPECT_TRUE(IsAppRegistered(kAppID));
324 } 325 }
325 326
326 TEST_F(RegisterAppTaskTest, RegisterExistingFolder_MultipleCandidate) { 327 TEST_F(RegisterAppTaskTest, RegisterExistingFolder_MultipleCandidate) {
327 scoped_ptr<LevelDBWrapper> db = OpenLevelDB(); 328 std::unique_ptr<LevelDBWrapper> db = OpenLevelDB();
328 ASSERT_TRUE(db); 329 ASSERT_TRUE(db);
329 SetUpInitialData(db.get()); 330 SetUpInitialData(db.get());
330 331
331 const std::string kAppID = "app_id"; 332 const std::string kAppID = "app_id";
332 SetUpUnregisteredAppRoot(kAppID, db.get()); 333 SetUpUnregisteredAppRoot(kAppID, db.get());
333 SetUpUnregisteredAppRoot(kAppID, db.get()); 334 SetUpUnregisteredAppRoot(kAppID, db.get());
334 335
335 CreateMetadataDatabase(std::move(db)); 336 CreateMetadataDatabase(std::move(db));
336 RunRegisterAppTask(kAppID); 337 RunRegisterAppTask(kAppID);
337 338
338 EXPECT_EQ(1u, CountRegisteredAppRoot()); 339 EXPECT_EQ(1u, CountRegisteredAppRoot());
339 EXPECT_TRUE(IsAppRegistered(kAppID)); 340 EXPECT_TRUE(IsAppRegistered(kAppID));
340 } 341 }
341 342
342 } // namespace drive_backend 343 } // namespace drive_backend
343 } // namespace sync_file_system 344 } // namespace sync_file_system
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698