| OLD | NEW |
| 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 "base/files/file_path.h" | 7 #include "base/files/file_path.h" |
| 8 #include "base/files/file_util.h" | 8 #include "base/files/file_util.h" |
| 9 #include "base/files/scoped_temp_dir.h" | 9 #include "base/files/scoped_temp_dir.h" |
| 10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
| (...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 315 TEST_F(OnDiskAttachmentStoreSpecificTest, MismatchedCrc) { | 315 TEST_F(OnDiskAttachmentStoreSpecificTest, MismatchedCrc) { |
| 316 // Create attachment store. | 316 // Create attachment store. |
| 317 AttachmentStore::Result create_result = AttachmentStore::UNSPECIFIED_ERROR; | 317 AttachmentStore::Result create_result = AttachmentStore::UNSPECIFIED_ERROR; |
| 318 store_ = AttachmentStore::CreateOnDiskStore( | 318 store_ = AttachmentStore::CreateOnDiskStore( |
| 319 temp_dir_.path(), base::ThreadTaskRunnerHandle::Get(), | 319 temp_dir_.path(), base::ThreadTaskRunnerHandle::Get(), |
| 320 base::Bind(&AttachmentStoreCreated, &create_result)); | 320 base::Bind(&AttachmentStoreCreated, &create_result)); |
| 321 | 321 |
| 322 // Write attachment with incorrect crc32c. | 322 // Write attachment with incorrect crc32c. |
| 323 AttachmentStore::Result write_result = AttachmentStore::UNSPECIFIED_ERROR; | 323 AttachmentStore::Result write_result = AttachmentStore::UNSPECIFIED_ERROR; |
| 324 const uint32_t intentionally_wrong_crc32c = 0; | 324 const uint32_t intentionally_wrong_crc32c = 0; |
| 325 std::string some_data("data1"); | 325 |
| 326 scoped_refptr<base::RefCountedString> some_data(new base::RefCountedString()); |
| 327 some_data->data() = "data1"; |
| 326 Attachment attachment = Attachment::CreateFromParts( | 328 Attachment attachment = Attachment::CreateFromParts( |
| 327 AttachmentId::Create(), base::RefCountedString::TakeString(&some_data), | 329 AttachmentId::Create(some_data->size(), intentionally_wrong_crc32c), |
| 328 intentionally_wrong_crc32c); | 330 some_data); |
| 329 AttachmentList attachments; | 331 AttachmentList attachments; |
| 330 attachments.push_back(attachment); | 332 attachments.push_back(attachment); |
| 331 store_->Write(attachments, | 333 store_->Write(attachments, |
| 332 base::Bind(&OnDiskAttachmentStoreSpecificTest::CopyResult, | 334 base::Bind(&OnDiskAttachmentStoreSpecificTest::CopyResult, |
| 333 base::Unretained(this), &write_result)); | 335 base::Unretained(this), &write_result)); |
| 334 | 336 |
| 335 // Read attachment. | 337 // Read attachment. |
| 336 AttachmentStore::Result read_result = AttachmentStore::UNSPECIFIED_ERROR; | 338 AttachmentStore::Result read_result = AttachmentStore::UNSPECIFIED_ERROR; |
| 337 AttachmentIdList attachment_ids; | 339 AttachmentIdList attachment_ids; |
| 338 attachment_ids.push_back(attachment.GetId()); | 340 attachment_ids.push_back(attachment.GetId()); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 358 | 360 |
| 359 AttachmentStore::Result create_result = AttachmentStore::SUCCESS; | 361 AttachmentStore::Result create_result = AttachmentStore::SUCCESS; |
| 360 store_ = AttachmentStore::CreateOnDiskStore( | 362 store_ = AttachmentStore::CreateOnDiskStore( |
| 361 temp_dir_.path(), base::ThreadTaskRunnerHandle::Get(), | 363 temp_dir_.path(), base::ThreadTaskRunnerHandle::Get(), |
| 362 base::Bind(&AttachmentStoreCreated, &create_result)); | 364 base::Bind(&AttachmentStoreCreated, &create_result)); |
| 363 | 365 |
| 364 // Reading from uninitialized store should result in | 366 // Reading from uninitialized store should result in |
| 365 // STORE_INITIALIZATION_FAILED. | 367 // STORE_INITIALIZATION_FAILED. |
| 366 AttachmentStore::Result read_result = AttachmentStore::SUCCESS; | 368 AttachmentStore::Result read_result = AttachmentStore::SUCCESS; |
| 367 AttachmentIdList attachment_ids; | 369 AttachmentIdList attachment_ids; |
| 368 attachment_ids.push_back(AttachmentId::Create()); | 370 std::string some_data("data1"); |
| 371 Attachment attachment = |
| 372 Attachment::Create(base::RefCountedString::TakeString(&some_data)); |
| 373 attachment_ids.push_back(attachment.GetId()); |
| 369 AttachmentIdList failed_attachment_ids; | 374 AttachmentIdList failed_attachment_ids; |
| 370 store_->Read( | 375 store_->Read( |
| 371 attachment_ids, | 376 attachment_ids, |
| 372 base::Bind(&OnDiskAttachmentStoreSpecificTest::CopyResultAttachments, | 377 base::Bind(&OnDiskAttachmentStoreSpecificTest::CopyResultAttachments, |
| 373 base::Unretained(this), &read_result, &failed_attachment_ids)); | 378 base::Unretained(this), &read_result, &failed_attachment_ids)); |
| 374 | 379 |
| 375 // Dropping from uninitialized store should result in | 380 // Dropping from uninitialized store should result in |
| 376 // STORE_INITIALIZATION_FAILED. | 381 // STORE_INITIALIZATION_FAILED. |
| 377 AttachmentStore::Result drop_result = AttachmentStore::SUCCESS; | 382 AttachmentStore::Result drop_result = AttachmentStore::SUCCESS; |
| 378 store_->Drop(attachment_ids, | 383 store_->Drop(attachment_ids, |
| 379 base::Bind(&OnDiskAttachmentStoreSpecificTest::CopyResult, | 384 base::Bind(&OnDiskAttachmentStoreSpecificTest::CopyResult, |
| 380 base::Unretained(this), &drop_result)); | 385 base::Unretained(this), &drop_result)); |
| 381 | 386 |
| 382 // Writing to uninitialized store should result in | 387 // Writing to uninitialized store should result in |
| 383 // STORE_INITIALIZATION_FAILED. | 388 // STORE_INITIALIZATION_FAILED. |
| 384 AttachmentStore::Result write_result = AttachmentStore::SUCCESS; | 389 AttachmentStore::Result write_result = AttachmentStore::SUCCESS; |
| 385 std::string some_data; | |
| 386 AttachmentList attachments; | 390 AttachmentList attachments; |
| 387 some_data = "data1"; | 391 attachments.push_back(attachment); |
| 388 attachments.push_back( | |
| 389 Attachment::Create(base::RefCountedString::TakeString(&some_data))); | |
| 390 store_->Write(attachments, | 392 store_->Write(attachments, |
| 391 base::Bind(&OnDiskAttachmentStoreSpecificTest::CopyResult, | 393 base::Bind(&OnDiskAttachmentStoreSpecificTest::CopyResult, |
| 392 base::Unretained(this), &write_result)); | 394 base::Unretained(this), &write_result)); |
| 393 | 395 |
| 394 RunLoop(); | 396 RunLoop(); |
| 395 EXPECT_EQ(AttachmentStore::UNSPECIFIED_ERROR, create_result); | 397 EXPECT_EQ(AttachmentStore::UNSPECIFIED_ERROR, create_result); |
| 396 EXPECT_EQ(AttachmentStore::STORE_INITIALIZATION_FAILED, read_result); | 398 EXPECT_EQ(AttachmentStore::STORE_INITIALIZATION_FAILED, read_result); |
| 397 EXPECT_THAT(failed_attachment_ids, testing::ElementsAre(attachment_ids[0])); | 399 EXPECT_THAT(failed_attachment_ids, testing::ElementsAre(attachment_ids[0])); |
| 398 EXPECT_EQ(AttachmentStore::STORE_INITIALIZATION_FAILED, drop_result); | 400 EXPECT_EQ(AttachmentStore::STORE_INITIALIZATION_FAILED, drop_result); |
| 399 EXPECT_EQ(AttachmentStore::STORE_INITIALIZATION_FAILED, write_result); | 401 EXPECT_EQ(AttachmentStore::STORE_INITIALIZATION_FAILED, write_result); |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 468 store_->ReadAllMetadata( | 470 store_->ReadAllMetadata( |
| 469 base::Bind(&OnDiskAttachmentStoreSpecificTest::CopyResultMetadata, | 471 base::Bind(&OnDiskAttachmentStoreSpecificTest::CopyResultMetadata, |
| 470 base::Unretained(this), &metadata_result, &metadata_list)); | 472 base::Unretained(this), &metadata_result, &metadata_list)); |
| 471 RunLoop(); | 473 RunLoop(); |
| 472 EXPECT_EQ(AttachmentStore::SUCCESS, create_result); | 474 EXPECT_EQ(AttachmentStore::SUCCESS, create_result); |
| 473 EXPECT_EQ(AttachmentStore::UNSPECIFIED_ERROR, metadata_result); | 475 EXPECT_EQ(AttachmentStore::UNSPECIFIED_ERROR, metadata_result); |
| 474 EXPECT_EQ(2U, metadata_list->size()); | 476 EXPECT_EQ(2U, metadata_list->size()); |
| 475 } | 477 } |
| 476 | 478 |
| 477 } // namespace syncer | 479 } // namespace syncer |
| OLD | NEW |