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

Side by Side Diff: components/offline_pages/offline_page_metadata_store_impl_unittest.cc

Issue 2343743002: [Offline pages] Updating the UpdateCallback in OPMStoreSQL (Closed)
Patch Set: Addressing final feedback Created 4 years, 3 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "components/offline_pages/offline_page_metadata_store.h" 5 #include "components/offline_pages/offline_page_metadata_store.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <memory> 9 #include <memory>
10 10
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 std::unique_ptr<OfflinePageMetadataStore> BuildStore(); 226 std::unique_ptr<OfflinePageMetadataStore> BuildStore();
227 std::unique_ptr<OfflinePageMetadataStore> BuildStoreWithSchemaFromM52(); 227 std::unique_ptr<OfflinePageMetadataStore> BuildStoreWithSchemaFromM52();
228 std::unique_ptr<OfflinePageMetadataStore> BuildStoreWithSchemaFromM53(); 228 std::unique_ptr<OfflinePageMetadataStore> BuildStoreWithSchemaFromM53();
229 std::unique_ptr<OfflinePageMetadataStore> BuildStoreWithSchemaFromM54(); 229 std::unique_ptr<OfflinePageMetadataStore> BuildStoreWithSchemaFromM54();
230 230
231 void PumpLoop(); 231 void PumpLoop();
232 232
233 void GetOfflinePagesCallback( 233 void GetOfflinePagesCallback(
234 OfflinePageMetadataStore::LoadStatus load_status, 234 OfflinePageMetadataStore::LoadStatus load_status,
235 const std::vector<OfflinePageItem>& offline_pages); 235 const std::vector<OfflinePageItem>& offline_pages);
236 void AddCallback(OfflinePageMetadataStore::ItemActionStatus status); 236 void AddCallback(ItemActionStatus status);
237 void UpdateCallback(CalledCallback called_callback, bool success); 237 void UpdateCallback(CalledCallback called_callback,
238 std::unique_ptr<StoreUpdateResult> result);
239 void ResetCallback(bool status);
238 240
239 void ClearResults(); 241 void ClearResults();
240 242
241 OfflinePageItem CheckThatStoreHasOneItem(); 243 OfflinePageItem CheckThatStoreHasOneItem();
242 void CheckThatOfflinePageCanBeSaved( 244 void CheckThatOfflinePageCanBeSaved(
243 std::unique_ptr<OfflinePageMetadataStore> store); 245 std::unique_ptr<OfflinePageMetadataStore> store);
244 246
247 StoreUpdateResult* last_update_result() { return last_update_result_.get(); }
248
245 protected: 249 protected:
246 CalledCallback last_called_callback_; 250 CalledCallback last_called_callback_;
247 Status last_status_; 251 Status last_status_;
252 std::unique_ptr<StoreUpdateResult> last_update_result_;
248 std::vector<OfflinePageItem> offline_pages_; 253 std::vector<OfflinePageItem> offline_pages_;
249 OfflinePageMetadataStoreFactory factory_; 254 OfflinePageMetadataStoreFactory factory_;
250 255
251 base::ScopedTempDir temp_directory_; 256 base::ScopedTempDir temp_directory_;
252 scoped_refptr<base::TestSimpleTaskRunner> task_runner_; 257 scoped_refptr<base::TestSimpleTaskRunner> task_runner_;
253 base::ThreadTaskRunnerHandle task_runner_handle_; 258 base::ThreadTaskRunnerHandle task_runner_handle_;
254 }; 259 };
255 260
256 OfflinePageMetadataStoreTest::OfflinePageMetadataStoreTest() 261 OfflinePageMetadataStoreTest::OfflinePageMetadataStoreTest()
257 : last_called_callback_(NONE), 262 : last_called_callback_(NONE),
(...skipping 11 matching lines...) Expand all
269 274
270 void OfflinePageMetadataStoreTest::GetOfflinePagesCallback( 275 void OfflinePageMetadataStoreTest::GetOfflinePagesCallback(
271 OfflinePageMetadataStore::LoadStatus load_status, 276 OfflinePageMetadataStore::LoadStatus load_status,
272 const std::vector<OfflinePageItem>& offline_pages) { 277 const std::vector<OfflinePageItem>& offline_pages) {
273 last_called_callback_ = LOAD; 278 last_called_callback_ = LOAD;
274 last_status_ = load_status == OfflinePageMetadataStore::LOAD_SUCCEEDED ? 279 last_status_ = load_status == OfflinePageMetadataStore::LOAD_SUCCEEDED ?
275 STATUS_TRUE : STATUS_FALSE; 280 STATUS_TRUE : STATUS_FALSE;
276 offline_pages_.swap(const_cast<std::vector<OfflinePageItem>&>(offline_pages)); 281 offline_pages_.swap(const_cast<std::vector<OfflinePageItem>&>(offline_pages));
277 } 282 }
278 283
279 void OfflinePageMetadataStoreTest::AddCallback( 284 void OfflinePageMetadataStoreTest::AddCallback(ItemActionStatus status) {
280 OfflinePageMetadataStore::ItemActionStatus status) {
281 last_called_callback_ = ADD; 285 last_called_callback_ = ADD;
282 // TODO(fgorski): Add specific add status. 286 // TODO(fgorski): Add specific add status.
283 // last_item_status_ = status; 287 // last_item_status_ = status;
284 last_status_ = 288 last_status_ =
285 status == OfflinePageMetadataStore::SUCCESS ? STATUS_TRUE : STATUS_FALSE; 289 status == ItemActionStatus::SUCCESS ? STATUS_TRUE : STATUS_FALSE;
286 } 290 }
287 291
288 void OfflinePageMetadataStoreTest::UpdateCallback( 292 void OfflinePageMetadataStoreTest::UpdateCallback(
289 CalledCallback called_callback, 293 CalledCallback called_callback,
290 bool status) { 294 std::unique_ptr<StoreUpdateResult> result) {
291 last_called_callback_ = called_callback; 295 last_called_callback_ = called_callback;
296 last_status_ = result->updated_items.size() > 0 ? STATUS_TRUE : STATUS_FALSE;
297 last_update_result_ = std::move(result);
298 }
299
300 void OfflinePageMetadataStoreTest::ResetCallback(bool status) {
301 last_called_callback_ = RESET;
292 last_status_ = status ? STATUS_TRUE : STATUS_FALSE; 302 last_status_ = status ? STATUS_TRUE : STATUS_FALSE;
293 } 303 }
294 304
295 void OfflinePageMetadataStoreTest::ClearResults() { 305 void OfflinePageMetadataStoreTest::ClearResults() {
296 last_called_callback_ = NONE; 306 last_called_callback_ = NONE;
297 last_status_ = STATUS_NONE; 307 last_status_ = STATUS_NONE;
298 offline_pages_.clear(); 308 offline_pages_.clear();
309 last_update_result_.reset(nullptr);
299 } 310 }
300 311
301 OfflinePageItem OfflinePageMetadataStoreTest::CheckThatStoreHasOneItem() { 312 OfflinePageItem OfflinePageMetadataStoreTest::CheckThatStoreHasOneItem() {
302 EXPECT_EQ(LOAD, last_called_callback_); 313 EXPECT_EQ(LOAD, last_called_callback_);
303 EXPECT_EQ(STATUS_TRUE, last_status_); 314 EXPECT_EQ(STATUS_TRUE, last_status_);
304 EXPECT_EQ(1U, offline_pages_.size()); 315 EXPECT_EQ(1U, offline_pages_.size());
305 316
306 return offline_pages_[0]; 317 return offline_pages_[0];
307 } 318 }
308 319
(...skipping 19 matching lines...) Expand all
328 store = BuildStore(); 339 store = BuildStore();
329 PumpLoop(); 340 PumpLoop();
330 341
331 EXPECT_EQ(LOAD, last_called_callback_); 342 EXPECT_EQ(LOAD, last_called_callback_);
332 EXPECT_EQ(STATUS_TRUE, last_status_); 343 EXPECT_EQ(STATUS_TRUE, last_status_);
333 ASSERT_EQ(store_size + 1, offline_pages_.size()); 344 ASSERT_EQ(store_size + 1, offline_pages_.size());
334 if (store_size > 0 && 345 if (store_size > 0 &&
335 offline_pages_[0].offline_id != offline_page.offline_id) { 346 offline_pages_[0].offline_id != offline_page.offline_id) {
336 std::swap(offline_pages_[0], offline_pages_[1]); 347 std::swap(offline_pages_[0], offline_pages_[1]);
337 } 348 }
338 EXPECT_EQ(offline_page.url, offline_pages_[0].url); 349 EXPECT_EQ(offline_page, offline_pages_[0]);
339 EXPECT_EQ(offline_page.offline_id, offline_pages_[0].offline_id);
340 EXPECT_EQ(offline_page.file_path, offline_pages_[0].file_path);
341 EXPECT_EQ(offline_page.last_access_time, offline_pages_[0].last_access_time);
342 EXPECT_EQ(offline_page.expiration_time, offline_pages_[0].expiration_time);
343 EXPECT_EQ(offline_page.title, offline_pages_[0].title);
344 EXPECT_EQ(offline_page.client_id, offline_pages_[0].client_id);
345 EXPECT_EQ(1234LL, offline_pages_[0].offline_id);
346 EXPECT_EQ(kFileSize, offline_pages_[0].file_size);
347 EXPECT_EQ(kTestClientId1, offline_pages_[0].client_id);
348 } 350 }
349 351
350 std::unique_ptr<OfflinePageMetadataStore> 352 std::unique_ptr<OfflinePageMetadataStore>
351 OfflinePageMetadataStoreTest::BuildStore() { 353 OfflinePageMetadataStoreTest::BuildStore() {
352 std::unique_ptr<OfflinePageMetadataStore> store( 354 std::unique_ptr<OfflinePageMetadataStore> store(
353 factory_.BuildStore(temp_directory_.GetPath())); 355 factory_.BuildStore(temp_directory_.GetPath()));
354 PumpLoop(); 356 PumpLoop();
355 store->GetOfflinePages( 357 store->GetOfflinePages(
356 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, 358 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
357 base::Unretained(this))); 359 base::Unretained(this)));
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
402 EXPECT_EQ(LOAD, last_called_callback_); 404 EXPECT_EQ(LOAD, last_called_callback_);
403 EXPECT_EQ(STATUS_TRUE, last_status_); 405 EXPECT_EQ(STATUS_TRUE, last_status_);
404 EXPECT_EQ(0U, offline_pages_.size()); 406 EXPECT_EQ(0U, offline_pages_.size());
405 } 407 }
406 408
407 TEST_F(OfflinePageMetadataStoreTest, GetOfflinePagesFromInvalidStore) { 409 TEST_F(OfflinePageMetadataStoreTest, GetOfflinePagesFromInvalidStore) {
408 std::unique_ptr<OfflinePageMetadataStore> store(BuildStore()); 410 std::unique_ptr<OfflinePageMetadataStore> store(BuildStore());
409 OfflinePageMetadataStoreSQL* sql_store = 411 OfflinePageMetadataStoreSQL* sql_store =
410 static_cast<OfflinePageMetadataStoreSQL*>(store.get()); 412 static_cast<OfflinePageMetadataStoreSQL*>(store.get());
411 413
412 sql_store->SetStateForTesting(OfflinePageMetadataStore::NOT_LOADED, false); 414 sql_store->SetStateForTesting(StoreState::NOT_LOADED, false);
413 store->GetOfflinePages( 415 store->GetOfflinePages(
414 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, 416 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
415 base::Unretained(this))); 417 base::Unretained(this)));
416 PumpLoop(); 418 PumpLoop();
417 EXPECT_EQ(LOAD, last_called_callback_); 419 EXPECT_EQ(LOAD, last_called_callback_);
418 EXPECT_EQ(0UL, offline_pages_.size()); 420 EXPECT_EQ(0UL, offline_pages_.size());
419 EXPECT_EQ(STATUS_FALSE, last_status_); 421 EXPECT_EQ(STATUS_FALSE, last_status_);
420 422
421 sql_store->SetStateForTesting( 423 sql_store->SetStateForTesting(StoreState::FAILED_LOADING, false);
422 OfflinePageMetadataStore::FAILED_INITIALIZATION, false);
423 store->GetOfflinePages( 424 store->GetOfflinePages(
424 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, 425 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
425 base::Unretained(this))); 426 base::Unretained(this)));
426 PumpLoop(); 427 PumpLoop();
427 EXPECT_EQ(LOAD, last_called_callback_); 428 EXPECT_EQ(LOAD, last_called_callback_);
428 EXPECT_EQ(0UL, offline_pages_.size()); 429 EXPECT_EQ(0UL, offline_pages_.size());
429 EXPECT_EQ(STATUS_FALSE, last_status_); 430 EXPECT_EQ(STATUS_FALSE, last_status_);
430 431
431 sql_store->SetStateForTesting( 432 sql_store->SetStateForTesting(StoreState::FAILED_RESET, false);
432 OfflinePageMetadataStore::FAILED_RESET, false);
433 store->GetOfflinePages( 433 store->GetOfflinePages(
434 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, 434 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
435 base::Unretained(this))); 435 base::Unretained(this)));
436 PumpLoop(); 436 PumpLoop();
437 EXPECT_EQ(LOAD, last_called_callback_); 437 EXPECT_EQ(LOAD, last_called_callback_);
438 EXPECT_EQ(0UL, offline_pages_.size()); 438 EXPECT_EQ(0UL, offline_pages_.size());
439 EXPECT_EQ(STATUS_FALSE, last_status_); 439 EXPECT_EQ(STATUS_FALSE, last_status_);
440 440
441 sql_store->SetStateForTesting( 441 sql_store->SetStateForTesting(StoreState::LOADED, true);
442 OfflinePageMetadataStore::LOADED, true);
443 store->GetOfflinePages( 442 store->GetOfflinePages(
444 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, 443 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
445 base::Unretained(this))); 444 base::Unretained(this)));
446 PumpLoop(); 445 PumpLoop();
447 EXPECT_EQ(LOAD, last_called_callback_); 446 EXPECT_EQ(LOAD, last_called_callback_);
448 EXPECT_EQ(0UL, offline_pages_.size()); 447 EXPECT_EQ(0UL, offline_pages_.size());
449 EXPECT_EQ(STATUS_FALSE, last_status_); 448 EXPECT_EQ(STATUS_FALSE, last_status_);
450 449
451 sql_store->SetStateForTesting( 450 sql_store->SetStateForTesting(StoreState::NOT_LOADED, true);
452 OfflinePageMetadataStore::NOT_LOADED, true);
453 store->GetOfflinePages( 451 store->GetOfflinePages(
454 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, 452 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
455 base::Unretained(this))); 453 base::Unretained(this)));
456 PumpLoop(); 454 PumpLoop();
457 EXPECT_EQ(LOAD, last_called_callback_); 455 EXPECT_EQ(LOAD, last_called_callback_);
458 EXPECT_EQ(0UL, offline_pages_.size()); 456 EXPECT_EQ(0UL, offline_pages_.size());
459 EXPECT_EQ(STATUS_FALSE, last_status_); 457 EXPECT_EQ(STATUS_FALSE, last_status_);
460 458
461 sql_store->SetStateForTesting( 459 sql_store->SetStateForTesting(StoreState::FAILED_LOADING, false);
462 OfflinePageMetadataStore::FAILED_INITIALIZATION, false);
463 store->GetOfflinePages( 460 store->GetOfflinePages(
464 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, 461 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
465 base::Unretained(this))); 462 base::Unretained(this)));
466 PumpLoop(); 463 PumpLoop();
467 EXPECT_EQ(LOAD, last_called_callback_); 464 EXPECT_EQ(LOAD, last_called_callback_);
468 EXPECT_EQ(0UL, offline_pages_.size()); 465 EXPECT_EQ(0UL, offline_pages_.size());
469 EXPECT_EQ(STATUS_FALSE, last_status_); 466 EXPECT_EQ(STATUS_FALSE, last_status_);
470 467
471 sql_store->SetStateForTesting( 468 sql_store->SetStateForTesting(StoreState::FAILED_RESET, false);
472 OfflinePageMetadataStore::FAILED_RESET, false);
473 store->GetOfflinePages( 469 store->GetOfflinePages(
474 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, 470 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
475 base::Unretained(this))); 471 base::Unretained(this)));
476 PumpLoop(); 472 PumpLoop();
477 EXPECT_EQ(LOAD, last_called_callback_); 473 EXPECT_EQ(LOAD, last_called_callback_);
478 EXPECT_EQ(0UL, offline_pages_.size()); 474 EXPECT_EQ(0UL, offline_pages_.size());
479 EXPECT_EQ(STATUS_FALSE, last_status_); 475 EXPECT_EQ(STATUS_FALSE, last_status_);
480 476
481 } 477 }
482 478
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
579 575
580 // Remove the offline page. 576 // Remove the offline page.
581 std::vector<int64_t> ids_to_remove; 577 std::vector<int64_t> ids_to_remove;
582 ids_to_remove.push_back(offline_page.offline_id); 578 ids_to_remove.push_back(offline_page.offline_id);
583 store->RemoveOfflinePages( 579 store->RemoveOfflinePages(
584 ids_to_remove, base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback, 580 ids_to_remove, base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback,
585 base::Unretained(this), REMOVE)); 581 base::Unretained(this), REMOVE));
586 PumpLoop(); 582 PumpLoop();
587 EXPECT_EQ(REMOVE, last_called_callback_); 583 EXPECT_EQ(REMOVE, last_called_callback_);
588 EXPECT_EQ(STATUS_TRUE, last_status_); 584 EXPECT_EQ(STATUS_TRUE, last_status_);
585 ASSERT_TRUE(last_update_result() != nullptr);
586 EXPECT_EQ(1UL, last_update_result()->item_statuses.size());
587 EXPECT_EQ(ItemActionStatus::SUCCESS,
588 last_update_result()->item_statuses.begin()->second);
589 EXPECT_EQ(1UL, last_update_result()->updated_items.size());
590 EXPECT_EQ(offline_page, *(last_update_result()->updated_items.begin()));
589 591
590 ClearResults(); 592 ClearResults();
591 593
592 // Load the store. 594 // Load the store.
593 store->GetOfflinePages( 595 store->GetOfflinePages(
594 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, 596 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
595 base::Unretained(this))); 597 base::Unretained(this)));
596 PumpLoop(); 598 PumpLoop();
597 EXPECT_EQ(LOAD, last_called_callback_); 599 EXPECT_EQ(LOAD, last_called_callback_);
598 EXPECT_EQ(0U, offline_pages_.size()); 600 EXPECT_EQ(0U, offline_pages_.size());
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
651 653
652 // Remove the offline page. 654 // Remove the offline page.
653 std::vector<int64_t> ids_to_remove; 655 std::vector<int64_t> ids_to_remove;
654 ids_to_remove.push_back(offline_page_1.offline_id); 656 ids_to_remove.push_back(offline_page_1.offline_id);
655 store->RemoveOfflinePages( 657 store->RemoveOfflinePages(
656 ids_to_remove, base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback, 658 ids_to_remove, base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback,
657 base::Unretained(this), REMOVE)); 659 base::Unretained(this), REMOVE));
658 PumpLoop(); 660 PumpLoop();
659 EXPECT_EQ(REMOVE, last_called_callback_); 661 EXPECT_EQ(REMOVE, last_called_callback_);
660 EXPECT_EQ(STATUS_TRUE, last_status_); 662 EXPECT_EQ(STATUS_TRUE, last_status_);
663 ASSERT_TRUE(last_update_result() != nullptr);
664 EXPECT_EQ(1UL, last_update_result()->item_statuses.size());
665 EXPECT_EQ(ItemActionStatus::SUCCESS,
666 last_update_result()->item_statuses.begin()->second);
667 EXPECT_EQ(1UL, last_update_result()->updated_items.size());
668 EXPECT_EQ(offline_page_1, *(last_update_result()->updated_items.begin()));
661 669
662 ClearResults(); 670 ClearResults();
663 671
664 // Close and reload the store. 672 // Close and reload the store.
665 store.reset(); 673 store.reset();
666 store = BuildStore(); 674 store = BuildStore();
667 store->GetOfflinePages( 675 store->GetOfflinePages(
668 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, 676 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
669 base::Unretained(this))); 677 base::Unretained(this)));
670 PumpLoop(); 678 PumpLoop();
(...skipping 29 matching lines...) Expand all
700 708
701 ClearResults(); 709 ClearResults();
702 store->GetOfflinePages( 710 store->GetOfflinePages(
703 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, 711 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
704 base::Unretained(this))); 712 base::Unretained(this)));
705 PumpLoop(); 713 PumpLoop();
706 714
707 EXPECT_EQ(LOAD, last_called_callback_); 715 EXPECT_EQ(LOAD, last_called_callback_);
708 EXPECT_EQ(STATUS_TRUE, last_status_); 716 EXPECT_EQ(STATUS_TRUE, last_status_);
709 ASSERT_EQ(1U, offline_pages_.size()); 717 ASSERT_EQ(1U, offline_pages_.size());
710 EXPECT_EQ(offline_page.url, offline_pages_[0].url); 718 EXPECT_EQ(offline_page, offline_pages_[0]);
711 EXPECT_EQ(offline_page.offline_id, offline_pages_[0].offline_id);
712 EXPECT_EQ(offline_page.file_path, offline_pages_[0].file_path);
713 EXPECT_EQ(offline_page.file_size, offline_pages_[0].file_size);
714 EXPECT_EQ(offline_page.creation_time, offline_pages_[0].creation_time);
715 EXPECT_EQ(offline_page.last_access_time, offline_pages_[0].last_access_time);
716 EXPECT_EQ(offline_page.expiration_time, offline_pages_[0].expiration_time);
717 EXPECT_EQ(offline_page.access_count, offline_pages_[0].access_count);
718 EXPECT_EQ(offline_page.client_id, offline_pages_[0].client_id);
719 719
720 // Then update some data. 720 // Then update some data.
721 offline_page.file_size = kFileSize + 1; 721 offline_page.file_size = kFileSize + 1;
722 offline_page.access_count++; 722 offline_page.access_count++;
723 offline_page.expiration_time = base::Time::Now(); 723 offline_page.expiration_time = base::Time::Now();
724 std::vector<OfflinePageItem> items_to_update; 724 std::vector<OfflinePageItem> items_to_update;
725 items_to_update.push_back(offline_page); 725 items_to_update.push_back(offline_page);
726 store->UpdateOfflinePages( 726 store->UpdateOfflinePages(
727 items_to_update, base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback, 727 items_to_update, base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback,
728 base::Unretained(this), UPDATE)); 728 base::Unretained(this), UPDATE));
729 PumpLoop(); 729 PumpLoop();
730 EXPECT_EQ(UPDATE, last_called_callback_); 730 EXPECT_EQ(UPDATE, last_called_callback_);
731 EXPECT_EQ(STATUS_TRUE, last_status_); 731 EXPECT_EQ(STATUS_TRUE, last_status_);
732 ASSERT_TRUE(last_update_result() != nullptr);
733 EXPECT_EQ(1UL, last_update_result()->item_statuses.size());
734 EXPECT_EQ(ItemActionStatus::SUCCESS,
735 last_update_result()->item_statuses.begin()->second);
736 EXPECT_EQ(1UL, last_update_result()->updated_items.size());
737 EXPECT_EQ(offline_page, *(last_update_result()->updated_items.begin()));
732 738
733 ClearResults(); 739 ClearResults();
734 store->GetOfflinePages( 740 store->GetOfflinePages(
735 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, 741 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
736 base::Unretained(this))); 742 base::Unretained(this)));
737 PumpLoop(); 743 PumpLoop();
738 744
739 EXPECT_EQ(LOAD, last_called_callback_); 745 EXPECT_EQ(LOAD, last_called_callback_);
740 EXPECT_EQ(STATUS_TRUE, last_status_); 746 EXPECT_EQ(STATUS_TRUE, last_status_);
741 ASSERT_EQ(1U, offline_pages_.size()); 747 ASSERT_EQ(1U, offline_pages_.size());
742 EXPECT_EQ(offline_page.url, offline_pages_[0].url); 748 EXPECT_EQ(offline_page, offline_pages_[0]);
743 EXPECT_EQ(offline_page.offline_id, offline_pages_[0].offline_id);
744 EXPECT_EQ(offline_page.file_path, offline_pages_[0].file_path);
745 EXPECT_EQ(offline_page.file_size, offline_pages_[0].file_size);
746 EXPECT_EQ(offline_page.creation_time, offline_pages_[0].creation_time);
747 EXPECT_EQ(offline_page.last_access_time, offline_pages_[0].last_access_time);
748 EXPECT_EQ(offline_page.expiration_time, offline_pages_[0].expiration_time);
749 EXPECT_EQ(offline_page.access_count, offline_pages_[0].access_count);
750 EXPECT_EQ(offline_page.client_id, offline_pages_[0].client_id);
751 } 749 }
752 750
753 TEST_F(OfflinePageMetadataStoreTest, ClearAllOfflinePages) { 751 TEST_F(OfflinePageMetadataStoreTest, ClearAllOfflinePages) {
754 std::unique_ptr<OfflinePageMetadataStore> store(BuildStore()); 752 std::unique_ptr<OfflinePageMetadataStore> store(BuildStore());
755 753
756 // Add 2 offline pages. 754 // Add 2 offline pages.
757 OfflinePageItem offline_page(GURL(kTestURL), 1234LL, kTestClientId1, 755 OfflinePageItem offline_page(GURL(kTestURL), 1234LL, kTestClientId1,
758 base::FilePath(kFilePath), kFileSize); 756 base::FilePath(kFilePath), kFileSize);
759 store->AddOfflinePage(offline_page, 757 store->AddOfflinePage(offline_page,
760 base::Bind(&OfflinePageMetadataStoreTest::AddCallback, 758 base::Bind(&OfflinePageMetadataStoreTest::AddCallback,
(...skipping 19 matching lines...) Expand all
780 store->GetOfflinePages( 778 store->GetOfflinePages(
781 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, 779 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
782 base::Unretained(this))); 780 base::Unretained(this)));
783 PumpLoop(); 781 PumpLoop();
784 782
785 EXPECT_EQ(LOAD, last_called_callback_); 783 EXPECT_EQ(LOAD, last_called_callback_);
786 EXPECT_EQ(STATUS_TRUE, last_status_); 784 EXPECT_EQ(STATUS_TRUE, last_status_);
787 EXPECT_EQ(2U, offline_pages_.size()); 785 EXPECT_EQ(2U, offline_pages_.size());
788 786
789 // Clear all records from the store. 787 // Clear all records from the store.
790 store->Reset(base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback, 788 store->Reset(base::Bind(&OfflinePageMetadataStoreTest::ResetCallback,
791 base::Unretained(this), RESET)); 789 base::Unretained(this)));
792 PumpLoop(); 790 PumpLoop();
793 EXPECT_EQ(RESET, last_called_callback_); 791 EXPECT_EQ(RESET, last_called_callback_);
794 EXPECT_EQ(STATUS_TRUE, last_status_); 792 EXPECT_EQ(STATUS_TRUE, last_status_);
795 793
796 // Load the store. 794 // Load the store.
797 store->GetOfflinePages( 795 store->GetOfflinePages(
798 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, 796 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
799 base::Unretained(this))); 797 base::Unretained(this)));
800 PumpLoop(); 798 PumpLoop();
801 799
802 EXPECT_EQ(LOAD, last_called_callback_); 800 EXPECT_EQ(LOAD, last_called_callback_);
803 EXPECT_EQ(STATUS_TRUE, last_status_); 801 EXPECT_EQ(STATUS_TRUE, last_status_);
804 ASSERT_EQ(0U, offline_pages_.size()); 802 ASSERT_EQ(0U, offline_pages_.size());
805 } 803 }
806 804
807 } // namespace 805 } // namespace
808 } // namespace offline_pages 806 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698