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

Side by Side Diff: chrome/browser/chromeos/drive/drive_resource_metadata_storage_unittest.cc

Issue 14167009: chromeos: Check validity of loaded data in DriveResourceMetadataStorageDB::Initialize (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/chromeos/drive/drive_resource_metadata_storage.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/drive_resource_metadata_storage.h" 5 #include "chrome/browser/chromeos/drive/drive_resource_metadata_storage.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/file_util.h" 10 #include "base/file_util.h"
(...skipping 26 matching lines...) Expand all
37 } 37 }
38 38
39 // Overwrites |storage_|'s version. 39 // Overwrites |storage_|'s version.
40 void SetDBVersion(int version) { 40 void SetDBVersion(int version) {
41 scoped_ptr<DriveResourceMetadataHeader> header = storage_->GetHeader(); 41 scoped_ptr<DriveResourceMetadataHeader> header = storage_->GetHeader();
42 ASSERT_TRUE(header); 42 ASSERT_TRUE(header);
43 header->set_version(version); 43 header->set_version(version);
44 storage_->PutHeader(*header); 44 storage_->PutHeader(*header);
45 } 45 }
46 46
47 bool CheckValidity() {
48 return storage_->CheckValidity();
49 }
50
47 base::ScopedTempDir temp_dir_; 51 base::ScopedTempDir temp_dir_;
48 scoped_ptr<DriveResourceMetadataStorageDB> storage_; 52 scoped_ptr<DriveResourceMetadataStorageDB> storage_;
49 }; 53 };
50 54
51 TEST_F(DriveResourceMetadataStorageTest, LargestChangestamp) { 55 TEST_F(DriveResourceMetadataStorageTest, LargestChangestamp) {
52 const int64 kLargestChangestamp = 1234567890; 56 const int64 kLargestChangestamp = 1234567890;
53 storage_->SetLargestChangestamp(kLargestChangestamp); 57 storage_->SetLargestChangestamp(kLargestChangestamp);
54 EXPECT_EQ(kLargestChangestamp, storage_->GetLargestChangestamp()); 58 EXPECT_EQ(kLargestChangestamp, storage_->GetLargestChangestamp());
55 } 59 }
56 60
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 } 196 }
193 } 197 }
194 198
195 TEST_F(DriveResourceMetadataStorageTest, OpenExistingDB) { 199 TEST_F(DriveResourceMetadataStorageTest, OpenExistingDB) {
196 const std::string parent_id1 = "abcdefg"; 200 const std::string parent_id1 = "abcdefg";
197 const std::string child_name1 = "WXYZABC"; 201 const std::string child_name1 = "WXYZABC";
198 const std::string child_id1 = "qwerty"; 202 const std::string child_id1 = "qwerty";
199 203
200 DriveEntryProto entry1; 204 DriveEntryProto entry1;
201 entry1.set_resource_id(parent_id1); 205 entry1.set_resource_id(parent_id1);
206 DriveEntryProto entry2;
207 entry2.set_resource_id(child_id1);
208 entry2.set_parent_resource_id(parent_id1);
209 entry2.set_base_name(child_name1);
202 210
203 // Put some data. 211 // Put some data.
204 storage_->PutEntry(entry1); 212 storage_->PutEntry(entry1);
213 storage_->PutEntry(entry2);
205 storage_->PutChild(parent_id1, child_name1, child_id1); 214 storage_->PutChild(parent_id1, child_name1, child_id1);
206 scoped_ptr<DriveEntryProto> result = storage_->GetEntry(parent_id1);
207 ASSERT_TRUE(result);
208 EXPECT_EQ(parent_id1, result->resource_id());
209 EXPECT_EQ(child_id1, storage_->GetChild(parent_id1, child_name1));
210 215
211 // Close DB and reopen. 216 // Close DB and reopen.
212 storage_.reset(new DriveResourceMetadataStorageDB(temp_dir_.path())); 217 storage_.reset(new DriveResourceMetadataStorageDB(temp_dir_.path()));
213 ASSERT_TRUE(storage_->Initialize()); 218 ASSERT_TRUE(storage_->Initialize());
214 219
215 // Can read data. 220 // Can read data.
221 scoped_ptr<DriveEntryProto> result;
216 result = storage_->GetEntry(parent_id1); 222 result = storage_->GetEntry(parent_id1);
217 ASSERT_TRUE(result); 223 ASSERT_TRUE(result);
218 EXPECT_EQ(parent_id1, result->resource_id()); 224 EXPECT_EQ(parent_id1, result->resource_id());
225
226 result = storage_->GetEntry(child_id1);
227 ASSERT_TRUE(result);
228 EXPECT_EQ(child_id1, result->resource_id());
229 EXPECT_EQ(parent_id1, result->parent_resource_id());
230 EXPECT_EQ(child_name1, result->base_name());
231
219 EXPECT_EQ(child_id1, storage_->GetChild(parent_id1, child_name1)); 232 EXPECT_EQ(child_id1, storage_->GetChild(parent_id1, child_name1));
220 } 233 }
221 234
222 TEST_F(DriveResourceMetadataStorageTest, IncompatibleDB) { 235 TEST_F(DriveResourceMetadataStorageTest, IncompatibleDB) {
223 const int64 kLargestChangestamp = 1234567890; 236 const int64 kLargestChangestamp = 1234567890;
224 const std::string key1 = "abcd"; 237 const std::string key1 = "abcd";
225 238
226 DriveEntryProto entry; 239 DriveEntryProto entry;
227 entry.set_resource_id(key1); 240 entry.set_resource_id(key1);
228 241
(...skipping 15 matching lines...) Expand all
244 TEST_F(DriveResourceMetadataStorageTest, WrongPath) { 257 TEST_F(DriveResourceMetadataStorageTest, WrongPath) {
245 // Create a file. 258 // Create a file.
246 base::FilePath path; 259 base::FilePath path;
247 ASSERT_TRUE(file_util::CreateTemporaryFileInDir(temp_dir_.path(), &path)); 260 ASSERT_TRUE(file_util::CreateTemporaryFileInDir(temp_dir_.path(), &path));
248 261
249 storage_.reset(new DriveResourceMetadataStorageDB(path)); 262 storage_.reset(new DriveResourceMetadataStorageDB(path));
250 // Cannot initialize DB beacause the path does not point a directory. 263 // Cannot initialize DB beacause the path does not point a directory.
251 ASSERT_FALSE(storage_->Initialize()); 264 ASSERT_FALSE(storage_->Initialize());
252 } 265 }
253 266
267 TEST_F(DriveResourceMetadataStorageTest, CheckValidity) {
268 const std::string key1 = "foo";
269 const std::string name1 = "hoge";
270 const std::string key2 = "bar";
271 const std::string name2 = "fuga";
272 const std::string key3 = "boo";
273 const std::string name3 = "piyo";
274
275 // Put entry with key1.
276 DriveEntryProto entry;
277 entry.set_resource_id(key1);
278 entry.set_base_name(name1);
279 storage_->PutEntry(entry);
280 EXPECT_TRUE(CheckValidity());
281
282 // Put entry with key2 under key1.
283 entry.set_resource_id(key2);
284 entry.set_parent_resource_id(key1);
285 entry.set_base_name(name2);
286 storage_->PutEntry(entry);
287 EXPECT_FALSE(CheckValidity()); // Missing parent-child relationship.
288
289 // Add missing parent-child relationship between key1 and key2.
290 storage_->PutChild(key1, name2, key2);
291 EXPECT_TRUE(CheckValidity());
292
293 // Add parent-child relationship between key1 and key3.
294 storage_->PutChild(key1, name3, key3);
295 EXPECT_FALSE(CheckValidity()); // key3 is not stored in the storage.
296
297 // Put entry with key3 under key1.
298 entry.set_resource_id(key3);
299 entry.set_parent_resource_id(key1);
300 entry.set_base_name(name3);
301 storage_->PutEntry(entry);
302 EXPECT_TRUE(CheckValidity());
303
304 // Parent-child relationship with wrong name.
305 storage_->PutChild(key1, name2, key3);
306 EXPECT_FALSE(CheckValidity());
307 }
308
254 } // namespace drive 309 } // namespace drive
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/drive/drive_resource_metadata_storage.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698