OLD | NEW |
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 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
265 } | 265 } |
266 | 266 |
267 TEST_F(DriveResourceMetadataStorageTest, CheckValidity) { | 267 TEST_F(DriveResourceMetadataStorageTest, CheckValidity) { |
268 const std::string key1 = "foo"; | 268 const std::string key1 = "foo"; |
269 const std::string name1 = "hoge"; | 269 const std::string name1 = "hoge"; |
270 const std::string key2 = "bar"; | 270 const std::string key2 = "bar"; |
271 const std::string name2 = "fuga"; | 271 const std::string name2 = "fuga"; |
272 const std::string key3 = "boo"; | 272 const std::string key3 = "boo"; |
273 const std::string name3 = "piyo"; | 273 const std::string name3 = "piyo"; |
274 | 274 |
| 275 // Empty storage is valid. |
| 276 EXPECT_TRUE(CheckValidity()); |
| 277 |
275 // Put entry with key1. | 278 // Put entry with key1. |
276 DriveEntryProto entry; | 279 DriveEntryProto entry; |
277 entry.set_resource_id(key1); | 280 entry.set_resource_id(key1); |
278 entry.set_base_name(name1); | 281 entry.set_base_name(name1); |
279 storage_->PutEntry(entry); | 282 storage_->PutEntry(entry); |
280 EXPECT_TRUE(CheckValidity()); | 283 EXPECT_TRUE(CheckValidity()); |
281 | 284 |
282 // Put entry with key2 under key1. | 285 // Put entry with key2 under key1. |
283 entry.set_resource_id(key2); | 286 entry.set_resource_id(key2); |
284 entry.set_parent_resource_id(key1); | 287 entry.set_parent_resource_id(key1); |
285 entry.set_base_name(name2); | 288 entry.set_base_name(name2); |
286 storage_->PutEntry(entry); | 289 storage_->PutEntry(entry); |
287 EXPECT_FALSE(CheckValidity()); // Missing parent-child relationship. | 290 EXPECT_FALSE(CheckValidity()); // Missing parent-child relationship. |
288 | 291 |
289 // Add missing parent-child relationship between key1 and key2. | 292 // Add missing parent-child relationship between key1 and key2. |
290 storage_->PutChild(key1, name2, key2); | 293 storage_->PutChild(key1, name2, key2); |
291 EXPECT_TRUE(CheckValidity()); | 294 EXPECT_TRUE(CheckValidity()); |
292 | 295 |
293 // Add parent-child relationship between key1 and key3. | 296 // Add parent-child relationship between key2 and key3. |
294 storage_->PutChild(key1, name3, key3); | 297 storage_->PutChild(key2, name3, key3); |
295 EXPECT_FALSE(CheckValidity()); // key3 is not stored in the storage. | 298 EXPECT_FALSE(CheckValidity()); // key3 is not stored in the storage. |
296 | 299 |
297 // Put entry with key3 under key1. | 300 // Put entry with key3 under key2. |
298 entry.set_resource_id(key3); | 301 entry.set_resource_id(key3); |
299 entry.set_parent_resource_id(key1); | 302 entry.set_parent_resource_id(key2); |
300 entry.set_base_name(name3); | 303 entry.set_base_name(name3); |
301 storage_->PutEntry(entry); | 304 storage_->PutEntry(entry); |
302 EXPECT_TRUE(CheckValidity()); | 305 EXPECT_TRUE(CheckValidity()); |
303 | 306 |
304 // Parent-child relationship with wrong name. | 307 // Parent-child relationship with wrong name. |
305 storage_->PutChild(key1, name2, key3); | 308 storage_->RemoveChild(key2, name3); |
306 EXPECT_FALSE(CheckValidity()); | 309 EXPECT_FALSE(CheckValidity()); |
| 310 storage_->PutChild(key2, name2, key3); |
| 311 EXPECT_FALSE(CheckValidity()); |
| 312 |
| 313 // Fix up the relationship between key2 and key3. |
| 314 storage_->RemoveChild(key2, name2); |
| 315 EXPECT_FALSE(CheckValidity()); |
| 316 storage_->PutChild(key2, name3, key3); |
| 317 EXPECT_TRUE(CheckValidity()); |
| 318 |
| 319 // Remove key2. |
| 320 storage_->RemoveChild(key1, name2); |
| 321 EXPECT_FALSE(CheckValidity()); |
| 322 storage_->RemoveEntry(key2); |
| 323 EXPECT_FALSE(CheckValidity()); |
| 324 |
| 325 // Remove key3. |
| 326 storage_->RemoveChild(key2, name3); |
| 327 EXPECT_FALSE(CheckValidity()); |
| 328 storage_->RemoveEntry(key3); |
| 329 EXPECT_TRUE(CheckValidity()); |
| 330 |
| 331 // Remove key1. |
| 332 storage_->RemoveEntry(key1); |
| 333 EXPECT_TRUE(CheckValidity()); |
307 } | 334 } |
308 | 335 |
309 } // namespace drive | 336 } // namespace drive |
OLD | NEW |