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

Side by Side Diff: sync/internal_api/attachments/on_disk_attachment_store_unittest.cc

Issue 1866243002: Convert //sync 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "sync/internal_api/public/attachments/on_disk_attachment_store.h" 5 #include "sync/internal_api/public/attachments/on_disk_attachment_store.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8
8 #include <string> 9 #include <string>
9 #include <utility> 10 #include <utility>
10 11
11 #include "base/files/file_path.h" 12 #include "base/files/file_path.h"
12 #include "base/files/file_util.h" 13 #include "base/files/file_util.h"
13 #include "base/files/scoped_temp_dir.h" 14 #include "base/files/scoped_temp_dir.h"
15 #include "base/memory/ptr_util.h"
14 #include "base/message_loop/message_loop.h" 16 #include "base/message_loop/message_loop.h"
15 #include "base/run_loop.h" 17 #include "base/run_loop.h"
16 #include "base/thread_task_runner_handle.h" 18 #include "base/thread_task_runner_handle.h"
17 #include "base/time/time.h" 19 #include "base/time/time.h"
18 #include "sync/internal_api/attachments/attachment_store_test_template.h" 20 #include "sync/internal_api/attachments/attachment_store_test_template.h"
19 #include "sync/internal_api/attachments/proto/attachment_store.pb.h" 21 #include "sync/internal_api/attachments/proto/attachment_store.pb.h"
20 #include "testing/gmock/include/gmock/gmock.h" 22 #include "testing/gmock/include/gmock/gmock.h"
21 #include "testing/gtest/include/gtest/gtest.h" 23 #include "testing/gtest/include/gtest/gtest.h"
22 #include "third_party/leveldatabase/src/include/leveldb/db.h" 24 #include "third_party/leveldatabase/src/include/leveldb/db.h"
23 #include "third_party/leveldatabase/src/include/leveldb/options.h" 25 #include "third_party/leveldatabase/src/include/leveldb/options.h"
(...skipping 10 matching lines...) Expand all
34 } 36 }
35 37
36 } // namespace 38 } // namespace
37 39
38 // Instantiation of common attachment store tests. 40 // Instantiation of common attachment store tests.
39 class OnDiskAttachmentStoreFactory { 41 class OnDiskAttachmentStoreFactory {
40 public: 42 public:
41 OnDiskAttachmentStoreFactory() {} 43 OnDiskAttachmentStoreFactory() {}
42 ~OnDiskAttachmentStoreFactory() {} 44 ~OnDiskAttachmentStoreFactory() {}
43 45
44 scoped_ptr<AttachmentStore> CreateAttachmentStore() { 46 std::unique_ptr<AttachmentStore> CreateAttachmentStore() {
45 EXPECT_TRUE(temp_dir_.CreateUniqueTempDir()); 47 EXPECT_TRUE(temp_dir_.CreateUniqueTempDir());
46 scoped_ptr<AttachmentStore> store; 48 std::unique_ptr<AttachmentStore> store;
47 AttachmentStore::Result result = AttachmentStore::UNSPECIFIED_ERROR; 49 AttachmentStore::Result result = AttachmentStore::UNSPECIFIED_ERROR;
48 store = AttachmentStore::CreateOnDiskStore( 50 store = AttachmentStore::CreateOnDiskStore(
49 temp_dir_.path(), base::ThreadTaskRunnerHandle::Get(), 51 temp_dir_.path(), base::ThreadTaskRunnerHandle::Get(),
50 base::Bind(&AttachmentStoreCreated, &result)); 52 base::Bind(&AttachmentStoreCreated, &result));
51 base::RunLoop run_loop; 53 base::RunLoop run_loop;
52 run_loop.RunUntilIdle(); 54 run_loop.RunUntilIdle();
53 EXPECT_EQ(AttachmentStore::SUCCESS, result); 55 EXPECT_EQ(AttachmentStore::SUCCESS, result);
54 return store; 56 return store;
55 } 57 }
56 58
57 private: 59 private:
58 base::ScopedTempDir temp_dir_; 60 base::ScopedTempDir temp_dir_;
59 }; 61 };
60 62
61 INSTANTIATE_TYPED_TEST_CASE_P(OnDisk, 63 INSTANTIATE_TYPED_TEST_CASE_P(OnDisk,
62 AttachmentStoreTest, 64 AttachmentStoreTest,
63 OnDiskAttachmentStoreFactory); 65 OnDiskAttachmentStoreFactory);
64 66
65 // Tests specific to OnDiskAttachmentStore. 67 // Tests specific to OnDiskAttachmentStore.
66 class OnDiskAttachmentStoreSpecificTest : public testing::Test { 68 class OnDiskAttachmentStoreSpecificTest : public testing::Test {
67 public: 69 public:
68 base::ScopedTempDir temp_dir_; 70 base::ScopedTempDir temp_dir_;
69 base::FilePath db_path_; 71 base::FilePath db_path_;
70 base::MessageLoop message_loop_; 72 base::MessageLoop message_loop_;
71 scoped_ptr<AttachmentStore> store_; 73 std::unique_ptr<AttachmentStore> store_;
72 74
73 OnDiskAttachmentStoreSpecificTest() {} 75 OnDiskAttachmentStoreSpecificTest() {}
74 76
75 void SetUp() override { 77 void SetUp() override {
76 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); 78 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
77 db_path_ = temp_dir_.path().Append(FILE_PATH_LITERAL("leveldb")); 79 db_path_ = temp_dir_.path().Append(FILE_PATH_LITERAL("leveldb"));
78 base::CreateDirectory(db_path_); 80 base::CreateDirectory(db_path_);
79 } 81 }
80 82
81 void CopyResult(AttachmentStore::Result* destination_result, 83 void CopyResult(AttachmentStore::Result* destination_result,
82 const AttachmentStore::Result& source_result) { 84 const AttachmentStore::Result& source_result) {
83 *destination_result = source_result; 85 *destination_result = source_result;
84 } 86 }
85 87
86 void CopyResultAttachments( 88 void CopyResultAttachments(
87 AttachmentStore::Result* destination_result, 89 AttachmentStore::Result* destination_result,
88 AttachmentIdList* destination_failed_attachment_ids, 90 AttachmentIdList* destination_failed_attachment_ids,
89 const AttachmentStore::Result& source_result, 91 const AttachmentStore::Result& source_result,
90 scoped_ptr<AttachmentMap> source_attachments, 92 std::unique_ptr<AttachmentMap> source_attachments,
91 scoped_ptr<AttachmentIdList> source_failed_attachment_ids) { 93 std::unique_ptr<AttachmentIdList> source_failed_attachment_ids) {
92 CopyResult(destination_result, source_result); 94 CopyResult(destination_result, source_result);
93 *destination_failed_attachment_ids = *source_failed_attachment_ids; 95 *destination_failed_attachment_ids = *source_failed_attachment_ids;
94 } 96 }
95 97
96 void CopyResultMetadata( 98 void CopyResultMetadata(
97 AttachmentStore::Result* destination_result, 99 AttachmentStore::Result* destination_result,
98 scoped_ptr<AttachmentMetadataList>* destination_metadata, 100 std::unique_ptr<AttachmentMetadataList>* destination_metadata,
99 const AttachmentStore::Result& source_result, 101 const AttachmentStore::Result& source_result,
100 scoped_ptr<AttachmentMetadataList> source_metadata) { 102 std::unique_ptr<AttachmentMetadataList> source_metadata) {
101 CopyResult(destination_result, source_result); 103 CopyResult(destination_result, source_result);
102 *destination_metadata = std::move(source_metadata); 104 *destination_metadata = std::move(source_metadata);
103 } 105 }
104 106
105 scoped_ptr<leveldb::DB> OpenLevelDB() { 107 std::unique_ptr<leveldb::DB> OpenLevelDB() {
106 leveldb::DB* db; 108 leveldb::DB* db;
107 leveldb::Options options; 109 leveldb::Options options;
108 options.create_if_missing = true; 110 options.create_if_missing = true;
109 leveldb::Status s = 111 leveldb::Status s =
110 leveldb::DB::Open(options, db_path_.AsUTF8Unsafe(), &db); 112 leveldb::DB::Open(options, db_path_.AsUTF8Unsafe(), &db);
111 EXPECT_TRUE(s.ok()); 113 EXPECT_TRUE(s.ok());
112 return make_scoped_ptr(db); 114 return base::WrapUnique(db);
113 } 115 }
114 116
115 void UpdateRecord(const std::string& key, const std::string& content) { 117 void UpdateRecord(const std::string& key, const std::string& content) {
116 scoped_ptr<leveldb::DB> db = OpenLevelDB(); 118 std::unique_ptr<leveldb::DB> db = OpenLevelDB();
117 leveldb::Status s = db->Put(leveldb::WriteOptions(), key, content); 119 leveldb::Status s = db->Put(leveldb::WriteOptions(), key, content);
118 EXPECT_TRUE(s.ok()); 120 EXPECT_TRUE(s.ok());
119 } 121 }
120 122
121 void UpdateStoreMetadataRecord(const std::string& content) { 123 void UpdateStoreMetadataRecord(const std::string& content) {
122 UpdateRecord("database-metadata", content); 124 UpdateRecord("database-metadata", content);
123 } 125 }
124 126
125 void UpdateAttachmentMetadataRecord(const AttachmentId& attachment_id, 127 void UpdateAttachmentMetadataRecord(const AttachmentId& attachment_id,
126 const std::string& content) { 128 const std::string& content) {
127 std::string metadata_key = 129 std::string metadata_key =
128 OnDiskAttachmentStore::MakeMetadataKeyFromAttachmentId(attachment_id); 130 OnDiskAttachmentStore::MakeMetadataKeyFromAttachmentId(attachment_id);
129 UpdateRecord(metadata_key, content); 131 UpdateRecord(metadata_key, content);
130 } 132 }
131 133
132 std::string ReadStoreMetadataRecord() { 134 std::string ReadStoreMetadataRecord() {
133 scoped_ptr<leveldb::DB> db = OpenLevelDB(); 135 std::unique_ptr<leveldb::DB> db = OpenLevelDB();
134 std::string content; 136 std::string content;
135 leveldb::Status s = 137 leveldb::Status s =
136 db->Get(leveldb::ReadOptions(), "database-metadata", &content); 138 db->Get(leveldb::ReadOptions(), "database-metadata", &content);
137 EXPECT_TRUE(s.ok()); 139 EXPECT_TRUE(s.ok());
138 return content; 140 return content;
139 } 141 }
140 142
141 void VerifyAttachmentRecordsPresent(const AttachmentId& attachment_id, 143 void VerifyAttachmentRecordsPresent(const AttachmentId& attachment_id,
142 bool expect_records_present) { 144 bool expect_records_present) {
143 scoped_ptr<leveldb::DB> db = OpenLevelDB(); 145 std::unique_ptr<leveldb::DB> db = OpenLevelDB();
144 146
145 std::string metadata_key = 147 std::string metadata_key =
146 OnDiskAttachmentStore::MakeMetadataKeyFromAttachmentId(attachment_id); 148 OnDiskAttachmentStore::MakeMetadataKeyFromAttachmentId(attachment_id);
147 std::string data_key = 149 std::string data_key =
148 OnDiskAttachmentStore::MakeDataKeyFromAttachmentId(attachment_id); 150 OnDiskAttachmentStore::MakeDataKeyFromAttachmentId(attachment_id);
149 std::string data; 151 std::string data;
150 leveldb::Status s = db->Get(leveldb::ReadOptions(), data_key, &data); 152 leveldb::Status s = db->Get(leveldb::ReadOptions(), data_key, &data);
151 if (expect_records_present) 153 if (expect_records_present)
152 EXPECT_TRUE(s.ok()); 154 EXPECT_TRUE(s.ok());
153 else 155 else
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 UpdateRecord("zzz", "foobar"); 453 UpdateRecord("zzz", "foobar");
452 454
453 // Create attachment store. 455 // Create attachment store.
454 AttachmentStore::Result create_result = AttachmentStore::UNSPECIFIED_ERROR; 456 AttachmentStore::Result create_result = AttachmentStore::UNSPECIFIED_ERROR;
455 store_ = AttachmentStore::CreateOnDiskStore( 457 store_ = AttachmentStore::CreateOnDiskStore(
456 temp_dir_.path(), base::ThreadTaskRunnerHandle::Get(), 458 temp_dir_.path(), base::ThreadTaskRunnerHandle::Get(),
457 base::Bind(&AttachmentStoreCreated, &create_result)); 459 base::Bind(&AttachmentStoreCreated, &create_result));
458 460
459 // Read all metadata. Should be getting no error and zero entries. 461 // Read all metadata. Should be getting no error and zero entries.
460 AttachmentStore::Result metadata_result = AttachmentStore::UNSPECIFIED_ERROR; 462 AttachmentStore::Result metadata_result = AttachmentStore::UNSPECIFIED_ERROR;
461 scoped_ptr<AttachmentMetadataList> metadata_list; 463 std::unique_ptr<AttachmentMetadataList> metadata_list;
462 store_->ReadMetadata( 464 store_->ReadMetadata(
463 base::Bind(&OnDiskAttachmentStoreSpecificTest::CopyResultMetadata, 465 base::Bind(&OnDiskAttachmentStoreSpecificTest::CopyResultMetadata,
464 base::Unretained(this), &metadata_result, &metadata_list)); 466 base::Unretained(this), &metadata_result, &metadata_list));
465 RunLoop(); 467 RunLoop();
466 EXPECT_EQ(AttachmentStore::SUCCESS, create_result); 468 EXPECT_EQ(AttachmentStore::SUCCESS, create_result);
467 EXPECT_EQ(AttachmentStore::SUCCESS, metadata_result); 469 EXPECT_EQ(AttachmentStore::SUCCESS, metadata_result);
468 EXPECT_EQ(0U, metadata_list->size()); 470 EXPECT_EQ(0U, metadata_list->size());
469 metadata_list.reset(); 471 metadata_list.reset();
470 472
471 // Write 3 attachments to the store 473 // Write 3 attachments to the store
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
513 store_->ReadMetadata( 515 store_->ReadMetadata(
514 base::Bind(&OnDiskAttachmentStoreSpecificTest::CopyResultMetadata, 516 base::Bind(&OnDiskAttachmentStoreSpecificTest::CopyResultMetadata,
515 base::Unretained(this), &metadata_result, &metadata_list)); 517 base::Unretained(this), &metadata_result, &metadata_list));
516 RunLoop(); 518 RunLoop();
517 EXPECT_EQ(AttachmentStore::SUCCESS, create_result); 519 EXPECT_EQ(AttachmentStore::SUCCESS, create_result);
518 EXPECT_EQ(AttachmentStore::UNSPECIFIED_ERROR, metadata_result); 520 EXPECT_EQ(AttachmentStore::UNSPECIFIED_ERROR, metadata_result);
519 EXPECT_EQ(2U, metadata_list->size()); 521 EXPECT_EQ(2U, metadata_list->size());
520 } 522 }
521 523
522 } // namespace syncer 524 } // namespace syncer
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698