| OLD | NEW |
| 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_model.h" | 5 #include "components/offline_pages/offline_page_model.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 #include <algorithm> | 8 #include <algorithm> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 99 void FastForwardBy(base::TimeDelta delta); | 99 void FastForwardBy(base::TimeDelta delta); |
| 100 void ResetResults(); | 100 void ResetResults(); |
| 101 | 101 |
| 102 OfflinePageTestStore* GetStore(); | 102 OfflinePageTestStore* GetStore(); |
| 103 | 103 |
| 104 void SavePage(const GURL& url, ClientId client_id); | 104 void SavePage(const GURL& url, ClientId client_id); |
| 105 void SavePageWithArchiverResult(const GURL& url, | 105 void SavePageWithArchiverResult(const GURL& url, |
| 106 ClientId client_id, | 106 ClientId client_id, |
| 107 OfflinePageArchiver::ArchiverResult result); | 107 OfflinePageArchiver::ArchiverResult result); |
| 108 | 108 |
| 109 void DeletePage(int64_t offline_id, |
| 110 const OfflinePageModel::DeletePageCallback& callback) { |
| 111 std::vector<int64_t> offline_ids; |
| 112 offline_ids.push_back(offline_id); |
| 113 model()->DeletePagesByOfflineId(offline_ids, callback); |
| 114 } |
| 115 |
| 109 OfflinePageModel* model() { return model_.get(); } | 116 OfflinePageModel* model() { return model_.get(); } |
| 110 | 117 |
| 111 int64_t last_save_offline_id() const { return last_save_offline_id_; } | 118 int64_t last_save_offline_id() const { return last_save_offline_id_; } |
| 112 | 119 |
| 113 SavePageResult last_save_result() const { | 120 SavePageResult last_save_result() const { |
| 114 return last_save_result_; | 121 return last_save_result_; |
| 115 } | 122 } |
| 116 | 123 |
| 117 DeletePageResult last_delete_result() const { | 124 DeletePageResult last_delete_result() const { |
| 118 return last_delete_result_; | 125 return last_delete_result_; |
| (...skipping 431 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 550 | 557 |
| 551 // Save another page. | 558 // Save another page. |
| 552 SavePage(kTestUrl2, kTestPageBookmarkId2); | 559 SavePage(kTestUrl2, kTestPageBookmarkId2); |
| 553 int64_t offline2 = last_save_offline_id(); | 560 int64_t offline2 = last_save_offline_id(); |
| 554 EXPECT_EQ(SavePageResult::SUCCESS, last_save_result()); | 561 EXPECT_EQ(SavePageResult::SUCCESS, last_save_result()); |
| 555 EXPECT_EQ(2u, store->GetAllPages().size()); | 562 EXPECT_EQ(2u, store->GetAllPages().size()); |
| 556 | 563 |
| 557 ResetResults(); | 564 ResetResults(); |
| 558 | 565 |
| 559 // Delete one page. | 566 // Delete one page. |
| 560 model()->DeletePageByOfflineId( | 567 DeletePage(offline1, |
| 561 offline1, | 568 base::Bind(&OfflinePageModelTest::OnDeletePageDone, AsWeakPtr())); |
| 562 base::Bind(&OfflinePageModelTest::OnDeletePageDone, AsWeakPtr())); | |
| 563 | 569 |
| 564 PumpLoop(); | 570 PumpLoop(); |
| 565 | 571 |
| 566 EXPECT_EQ(last_deleted_offline_id(), offline1); | 572 EXPECT_EQ(last_deleted_offline_id(), offline1); |
| 567 EXPECT_EQ(last_deleted_client_id(), kTestPageBookmarkId1); | 573 EXPECT_EQ(last_deleted_client_id(), kTestPageBookmarkId1); |
| 568 EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_result()); | 574 EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_result()); |
| 569 ASSERT_EQ(1u, store->GetAllPages().size()); | 575 ASSERT_EQ(1u, store->GetAllPages().size()); |
| 570 EXPECT_EQ(kTestUrl2, store->GetAllPages()[0].url); | 576 EXPECT_EQ(kTestUrl2, store->GetAllPages()[0].url); |
| 571 | 577 |
| 572 // Delete another page. | 578 // Delete another page. |
| 573 model()->DeletePageByOfflineId( | 579 DeletePage(offline2, |
| 574 offline2, | 580 base::Bind(&OfflinePageModelTest::OnDeletePageDone, AsWeakPtr())); |
| 575 base::Bind(&OfflinePageModelTest::OnDeletePageDone, AsWeakPtr())); | |
| 576 | 581 |
| 577 ResetResults(); | 582 ResetResults(); |
| 578 | 583 |
| 579 PumpLoop(); | 584 PumpLoop(); |
| 580 | 585 |
| 581 EXPECT_EQ(last_deleted_offline_id(), offline2); | 586 EXPECT_EQ(last_deleted_offline_id(), offline2); |
| 582 EXPECT_EQ(last_deleted_client_id(), kTestPageBookmarkId2); | 587 EXPECT_EQ(last_deleted_client_id(), kTestPageBookmarkId2); |
| 583 EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_result()); | 588 EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_result()); |
| 584 EXPECT_EQ(0u, store->GetAllPages().size()); | 589 EXPECT_EQ(0u, store->GetAllPages().size()); |
| 585 } | 590 } |
| 586 | 591 |
| 587 TEST_F(OfflinePageModelTest, DeletePageNotFound) { | 592 TEST_F(OfflinePageModelTest, DeletePageNotFound) { |
| 588 model()->DeletePageByOfflineId( | 593 DeletePage(1234LL, |
| 589 1234LL, base::Bind(&OfflinePageModelTest::OnDeletePageDone, AsWeakPtr())); | 594 base::Bind(&OfflinePageModelTest::OnDeletePageDone, AsWeakPtr())); |
| 590 EXPECT_EQ(DeletePageResult::NOT_FOUND, last_delete_result()); | 595 EXPECT_EQ(DeletePageResult::NOT_FOUND, last_delete_result()); |
| 591 } | 596 } |
| 592 | 597 |
| 593 TEST_F(OfflinePageModelTest, DeletePageStoreFailureOnRemove) { | 598 TEST_F(OfflinePageModelTest, DeletePageStoreFailureOnRemove) { |
| 594 // Save a page. | 599 // Save a page. |
| 595 SavePage(kTestUrl, kTestPageBookmarkId1); | 600 SavePage(kTestUrl, kTestPageBookmarkId1); |
| 596 int64_t offline_id = last_save_offline_id(); | 601 int64_t offline_id = last_save_offline_id(); |
| 597 ResetResults(); | 602 ResetResults(); |
| 598 | 603 |
| 599 // Try to delete this page. | 604 // Try to delete this page. |
| 600 GetStore()->set_test_scenario( | 605 GetStore()->set_test_scenario( |
| 601 OfflinePageTestStore::TestScenario::REMOVE_FAILED); | 606 OfflinePageTestStore::TestScenario::REMOVE_FAILED); |
| 602 model()->DeletePageByOfflineId( | 607 DeletePage(offline_id, |
| 603 offline_id, | 608 base::Bind(&OfflinePageModelTest::OnDeletePageDone, AsWeakPtr())); |
| 604 base::Bind(&OfflinePageModelTest::OnDeletePageDone, AsWeakPtr())); | |
| 605 PumpLoop(); | 609 PumpLoop(); |
| 606 EXPECT_EQ(DeletePageResult::STORE_FAILURE, last_delete_result()); | 610 EXPECT_EQ(DeletePageResult::STORE_FAILURE, last_delete_result()); |
| 607 } | 611 } |
| 608 | 612 |
| 609 TEST_F(OfflinePageModelTest, DetectThatOfflineCopyIsMissing) { | 613 TEST_F(OfflinePageModelTest, DetectThatOfflineCopyIsMissing) { |
| 610 // Save a page. | 614 // Save a page. |
| 611 SavePage(kTestUrl, kTestPageBookmarkId1); | 615 SavePage(kTestUrl, kTestPageBookmarkId1); |
| 612 int64_t offline_id = last_save_offline_id(); | 616 int64_t offline_id = last_save_offline_id(); |
| 613 | 617 |
| 614 ResetResults(); | 618 ResetResults(); |
| (...skipping 452 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1067 // Check if feature is correctly enabled by command-line flag. | 1071 // Check if feature is correctly enabled by command-line flag. |
| 1068 base::FeatureList::ClearInstanceForTesting(); | 1072 base::FeatureList::ClearInstanceForTesting(); |
| 1069 scoped_ptr<base::FeatureList> feature_list(new base::FeatureList); | 1073 scoped_ptr<base::FeatureList> feature_list(new base::FeatureList); |
| 1070 feature_list->InitializeFromCommandLine( | 1074 feature_list->InitializeFromCommandLine( |
| 1071 offline_pages::kOfflinePagesBackgroundLoadingFeature.name, ""); | 1075 offline_pages::kOfflinePagesBackgroundLoadingFeature.name, ""); |
| 1072 base::FeatureList::SetInstance(std::move(feature_list)); | 1076 base::FeatureList::SetInstance(std::move(feature_list)); |
| 1073 EXPECT_TRUE(offline_pages::IsOfflinePagesBackgroundLoadingEnabled()); | 1077 EXPECT_TRUE(offline_pages::IsOfflinePagesBackgroundLoadingEnabled()); |
| 1074 } | 1078 } |
| 1075 | 1079 |
| 1076 } // namespace offline_pages | 1080 } // namespace offline_pages |
| OLD | NEW |