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

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 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 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
499 510
500 // Remove the offline page. 511 // Remove the offline page.
501 std::vector<int64_t> ids_to_remove; 512 std::vector<int64_t> ids_to_remove;
502 ids_to_remove.push_back(offline_page.offline_id); 513 ids_to_remove.push_back(offline_page.offline_id);
503 store->RemoveOfflinePages( 514 store->RemoveOfflinePages(
504 ids_to_remove, base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback, 515 ids_to_remove, base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback,
505 base::Unretained(this), REMOVE)); 516 base::Unretained(this), REMOVE));
506 PumpLoop(); 517 PumpLoop();
507 EXPECT_EQ(REMOVE, last_called_callback_); 518 EXPECT_EQ(REMOVE, last_called_callback_);
508 EXPECT_EQ(STATUS_TRUE, last_status_); 519 EXPECT_EQ(STATUS_TRUE, last_status_);
520 ASSERT_TRUE(last_update_result() != nullptr);
521 EXPECT_EQ(1UL, last_update_result()->item_statuses.size());
522 EXPECT_EQ(ItemActionStatus::SUCCESS,
523 last_update_result()->item_statuses.begin()->second);
524 EXPECT_EQ(1UL, last_update_result()->updated_items.size());
525 EXPECT_EQ(offline_page.offline_id,
526 last_update_result()->updated_items.begin()->offline_id);
509 527
510 ClearResults(); 528 ClearResults();
511 529
512 // Load the store. 530 // Load the store.
513 store->GetOfflinePages( 531 store->GetOfflinePages(
514 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, 532 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
515 base::Unretained(this))); 533 base::Unretained(this)));
516 PumpLoop(); 534 PumpLoop();
517 EXPECT_EQ(LOAD, last_called_callback_); 535 EXPECT_EQ(LOAD, last_called_callback_);
518 EXPECT_EQ(0U, offline_pages_.size()); 536 EXPECT_EQ(0U, offline_pages_.size());
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 589
572 // Remove the offline page. 590 // Remove the offline page.
573 std::vector<int64_t> ids_to_remove; 591 std::vector<int64_t> ids_to_remove;
574 ids_to_remove.push_back(offline_page_1.offline_id); 592 ids_to_remove.push_back(offline_page_1.offline_id);
575 store->RemoveOfflinePages( 593 store->RemoveOfflinePages(
576 ids_to_remove, base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback, 594 ids_to_remove, base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback,
577 base::Unretained(this), REMOVE)); 595 base::Unretained(this), REMOVE));
578 PumpLoop(); 596 PumpLoop();
579 EXPECT_EQ(REMOVE, last_called_callback_); 597 EXPECT_EQ(REMOVE, last_called_callback_);
580 EXPECT_EQ(STATUS_TRUE, last_status_); 598 EXPECT_EQ(STATUS_TRUE, last_status_);
599 ASSERT_TRUE(last_update_result() != nullptr);
600 EXPECT_EQ(1UL, last_update_result()->item_statuses.size());
601 EXPECT_EQ(ItemActionStatus::SUCCESS,
602 last_update_result()->item_statuses.begin()->second);
603 EXPECT_EQ(1UL, last_update_result()->updated_items.size());
604 EXPECT_EQ(offline_page_1.offline_id,
605 last_update_result()->updated_items.begin()->offline_id);
581 606
582 ClearResults(); 607 ClearResults();
583 608
584 // Close and reload the store. 609 // Close and reload the store.
585 store.reset(); 610 store.reset();
586 store = BuildStore(); 611 store = BuildStore();
587 store->GetOfflinePages( 612 store->GetOfflinePages(
588 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, 613 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
589 base::Unretained(this))); 614 base::Unretained(this)));
590 PumpLoop(); 615 PumpLoop();
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
642 offline_page.access_count++; 667 offline_page.access_count++;
643 offline_page.expiration_time = base::Time::Now(); 668 offline_page.expiration_time = base::Time::Now();
644 std::vector<OfflinePageItem> items_to_update; 669 std::vector<OfflinePageItem> items_to_update;
645 items_to_update.push_back(offline_page); 670 items_to_update.push_back(offline_page);
646 store->UpdateOfflinePages( 671 store->UpdateOfflinePages(
647 items_to_update, base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback, 672 items_to_update, base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback,
648 base::Unretained(this), UPDATE)); 673 base::Unretained(this), UPDATE));
649 PumpLoop(); 674 PumpLoop();
650 EXPECT_EQ(UPDATE, last_called_callback_); 675 EXPECT_EQ(UPDATE, last_called_callback_);
651 EXPECT_EQ(STATUS_TRUE, last_status_); 676 EXPECT_EQ(STATUS_TRUE, last_status_);
677 ASSERT_TRUE(last_update_result() != nullptr);
678 EXPECT_EQ(1UL, last_update_result()->item_statuses.size());
679 EXPECT_EQ(ItemActionStatus::SUCCESS,
680 last_update_result()->item_statuses.begin()->second);
681 EXPECT_EQ(1UL, last_update_result()->updated_items.size());
682 EXPECT_EQ(offline_page.offline_id,
683 last_update_result()->updated_items.begin()->offline_id);
652 684
653 ClearResults(); 685 ClearResults();
654 store->GetOfflinePages( 686 store->GetOfflinePages(
655 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, 687 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
656 base::Unretained(this))); 688 base::Unretained(this)));
657 PumpLoop(); 689 PumpLoop();
658 690
659 EXPECT_EQ(LOAD, last_called_callback_); 691 EXPECT_EQ(LOAD, last_called_callback_);
660 EXPECT_EQ(STATUS_TRUE, last_status_); 692 EXPECT_EQ(STATUS_TRUE, last_status_);
661 ASSERT_EQ(1U, offline_pages_.size()); 693 ASSERT_EQ(1U, offline_pages_.size());
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
700 store->GetOfflinePages( 732 store->GetOfflinePages(
701 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, 733 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
702 base::Unretained(this))); 734 base::Unretained(this)));
703 PumpLoop(); 735 PumpLoop();
704 736
705 EXPECT_EQ(LOAD, last_called_callback_); 737 EXPECT_EQ(LOAD, last_called_callback_);
706 EXPECT_EQ(STATUS_TRUE, last_status_); 738 EXPECT_EQ(STATUS_TRUE, last_status_);
707 EXPECT_EQ(2U, offline_pages_.size()); 739 EXPECT_EQ(2U, offline_pages_.size());
708 740
709 // Clear all records from the store. 741 // Clear all records from the store.
710 store->Reset(base::Bind(&OfflinePageMetadataStoreTest::UpdateCallback, 742 store->Reset(base::Bind(&OfflinePageMetadataStoreTest::ResetCallback,
711 base::Unretained(this), RESET)); 743 base::Unretained(this)));
712 PumpLoop(); 744 PumpLoop();
713 EXPECT_EQ(RESET, last_called_callback_); 745 EXPECT_EQ(RESET, last_called_callback_);
714 EXPECT_EQ(STATUS_TRUE, last_status_); 746 EXPECT_EQ(STATUS_TRUE, last_status_);
715 747
716 // Load the store. 748 // Load the store.
717 store->GetOfflinePages( 749 store->GetOfflinePages(
718 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback, 750 base::Bind(&OfflinePageMetadataStoreTest::GetOfflinePagesCallback,
719 base::Unretained(this))); 751 base::Unretained(this)));
720 PumpLoop(); 752 PumpLoop();
721 753
722 EXPECT_EQ(LOAD, last_called_callback_); 754 EXPECT_EQ(LOAD, last_called_callback_);
723 EXPECT_EQ(STATUS_TRUE, last_status_); 755 EXPECT_EQ(STATUS_TRUE, last_status_);
724 ASSERT_EQ(0U, offline_pages_.size()); 756 ASSERT_EQ(0U, offline_pages_.size());
725 } 757 }
726 758
727 } // namespace 759 } // namespace
728 } // namespace offline_pages 760 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698