| 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_impl.h" | 5 #include "components/offline_pages/offline_page_model_impl.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 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 313 OfflinePageArchiver::ArchiverResult::SUCCESSFULLY_CREATED); | 313 OfflinePageArchiver::ArchiverResult::SUCCESSFULLY_CREATED); |
| 314 return std::make_pair(last_save_result_, last_save_offline_id_); | 314 return std::make_pair(last_save_result_, last_save_offline_id_); |
| 315 } | 315 } |
| 316 | 316 |
| 317 void OfflinePageModelImplTest::SavePageWithArchiverResult( | 317 void OfflinePageModelImplTest::SavePageWithArchiverResult( |
| 318 const GURL& url, | 318 const GURL& url, |
| 319 ClientId client_id, | 319 ClientId client_id, |
| 320 OfflinePageArchiver::ArchiverResult result) { | 320 OfflinePageArchiver::ArchiverResult result) { |
| 321 std::unique_ptr<OfflinePageTestArchiver> archiver(BuildArchiver(url, result)); | 321 std::unique_ptr<OfflinePageTestArchiver> archiver(BuildArchiver(url, result)); |
| 322 model()->SavePage( | 322 model()->SavePage( |
| 323 url, client_id, std::move(archiver), | 323 url, client_id, 0ul, std::move(archiver), |
| 324 base::Bind(&OfflinePageModelImplTest::OnSavePageDone, AsWeakPtr())); | 324 base::Bind(&OfflinePageModelImplTest::OnSavePageDone, AsWeakPtr())); |
| 325 PumpLoop(); | 325 PumpLoop(); |
| 326 } | 326 } |
| 327 | 327 |
| 328 MultipleOfflinePageItemResult OfflinePageModelImplTest::GetAllPages() { | 328 MultipleOfflinePageItemResult OfflinePageModelImplTest::GetAllPages() { |
| 329 MultipleOfflinePageItemResult result; | 329 MultipleOfflinePageItemResult result; |
| 330 model()->GetAllPages( | 330 model()->GetAllPages( |
| 331 base::Bind(&OfflinePageModelImplTest::OnGetMultipleOfflinePageItemsResult, | 331 base::Bind(&OfflinePageModelImplTest::OnGetMultipleOfflinePageItemsResult, |
| 332 AsWeakPtr(), base::Unretained(&result))); | 332 AsWeakPtr(), base::Unretained(&result))); |
| 333 PumpLoop(); | 333 PumpLoop(); |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 472 kTestUrl, kTestClientId1, | 472 kTestUrl, kTestClientId1, |
| 473 OfflinePageArchiver::ArchiverResult::ERROR_ARCHIVE_CREATION_FAILED); | 473 OfflinePageArchiver::ArchiverResult::ERROR_ARCHIVE_CREATION_FAILED); |
| 474 EXPECT_EQ(SavePageResult::ARCHIVE_CREATION_FAILED, last_save_result()); | 474 EXPECT_EQ(SavePageResult::ARCHIVE_CREATION_FAILED, last_save_result()); |
| 475 } | 475 } |
| 476 | 476 |
| 477 TEST_F(OfflinePageModelImplTest, SavePageOfflineArchiverReturnedWrongUrl) { | 477 TEST_F(OfflinePageModelImplTest, SavePageOfflineArchiverReturnedWrongUrl) { |
| 478 std::unique_ptr<OfflinePageTestArchiver> archiver( | 478 std::unique_ptr<OfflinePageTestArchiver> archiver( |
| 479 BuildArchiver(GURL("http://other.random.url.com"), | 479 BuildArchiver(GURL("http://other.random.url.com"), |
| 480 OfflinePageArchiver::ArchiverResult::SUCCESSFULLY_CREATED)); | 480 OfflinePageArchiver::ArchiverResult::SUCCESSFULLY_CREATED)); |
| 481 model()->SavePage( | 481 model()->SavePage( |
| 482 kTestUrl, kTestClientId1, std::move(archiver), | 482 kTestUrl, kTestClientId1, 0ul, std::move(archiver), |
| 483 base::Bind(&OfflinePageModelImplTest::OnSavePageDone, AsWeakPtr())); | 483 base::Bind(&OfflinePageModelImplTest::OnSavePageDone, AsWeakPtr())); |
| 484 PumpLoop(); | 484 PumpLoop(); |
| 485 EXPECT_EQ(SavePageResult::ARCHIVE_CREATION_FAILED, last_save_result()); | 485 EXPECT_EQ(SavePageResult::ARCHIVE_CREATION_FAILED, last_save_result()); |
| 486 } | 486 } |
| 487 | 487 |
| 488 TEST_F(OfflinePageModelImplTest, SavePageOfflineCreationStoreWriteFailure) { | 488 TEST_F(OfflinePageModelImplTest, SavePageOfflineCreationStoreWriteFailure) { |
| 489 GetStore()->set_test_scenario( | 489 GetStore()->set_test_scenario( |
| 490 OfflinePageTestStore::TestScenario::WRITE_FAILED); | 490 OfflinePageTestStore::TestScenario::WRITE_FAILED); |
| 491 SavePage(kTestUrl, kTestClientId1); | 491 SavePage(kTestUrl, kTestClientId1); |
| 492 EXPECT_EQ(SavePageResult::STORE_FAILURE, last_save_result()); | 492 EXPECT_EQ(SavePageResult::STORE_FAILURE, last_save_result()); |
| 493 } | 493 } |
| 494 | 494 |
| 495 TEST_F(OfflinePageModelImplTest, SavePageLocalFileFailed) { | 495 TEST_F(OfflinePageModelImplTest, SavePageLocalFileFailed) { |
| 496 // Don't create archiver since it will not be needed for pages that are not | 496 // Don't create archiver since it will not be needed for pages that are not |
| 497 // going to be saved. | 497 // going to be saved. |
| 498 model()->SavePage( | 498 model()->SavePage( |
| 499 kFileUrl, kTestClientId1, std::unique_ptr<OfflinePageTestArchiver>(), | 499 kFileUrl, kTestClientId1, 0ul, std::unique_ptr<OfflinePageTestArchiver>(), |
| 500 base::Bind(&OfflinePageModelImplTest::OnSavePageDone, AsWeakPtr())); | 500 base::Bind(&OfflinePageModelImplTest::OnSavePageDone, AsWeakPtr())); |
| 501 PumpLoop(); | 501 PumpLoop(); |
| 502 EXPECT_EQ(SavePageResult::SKIPPED, last_save_result()); | 502 EXPECT_EQ(SavePageResult::SKIPPED, last_save_result()); |
| 503 } | 503 } |
| 504 | 504 |
| 505 TEST_F(OfflinePageModelImplTest, SavePageOfflineArchiverTwoPages) { | 505 TEST_F(OfflinePageModelImplTest, SavePageOfflineArchiverTwoPages) { |
| 506 std::unique_ptr<OfflinePageTestArchiver> archiver(BuildArchiver( | 506 std::unique_ptr<OfflinePageTestArchiver> archiver(BuildArchiver( |
| 507 kTestUrl, OfflinePageArchiver::ArchiverResult::SUCCESSFULLY_CREATED)); | 507 kTestUrl, OfflinePageArchiver::ArchiverResult::SUCCESSFULLY_CREATED)); |
| 508 // archiver_ptr will be valid until after first PumpLoop() call after | 508 // archiver_ptr will be valid until after first PumpLoop() call after |
| 509 // CompleteCreateArchive() is called. | 509 // CompleteCreateArchive() is called. |
| 510 OfflinePageTestArchiver* archiver_ptr = archiver.get(); | 510 OfflinePageTestArchiver* archiver_ptr = archiver.get(); |
| 511 archiver_ptr->set_delayed(true); | 511 archiver_ptr->set_delayed(true); |
| 512 model()->SavePage( | 512 model()->SavePage( |
| 513 kTestUrl, kTestClientId1, std::move(archiver), | 513 kTestUrl, kTestClientId1, 0ul, std::move(archiver), |
| 514 base::Bind(&OfflinePageModelImplTest::OnSavePageDone, AsWeakPtr())); | 514 base::Bind(&OfflinePageModelImplTest::OnSavePageDone, AsWeakPtr())); |
| 515 EXPECT_TRUE(archiver_ptr->create_archive_called()); | 515 EXPECT_TRUE(archiver_ptr->create_archive_called()); |
| 516 | 516 |
| 517 // Request to save another page. | 517 // Request to save another page. |
| 518 SavePage(kTestUrl2, kTestClientId2); | 518 SavePage(kTestUrl2, kTestClientId2); |
| 519 | 519 |
| 520 OfflinePageTestStore* store = GetStore(); | 520 OfflinePageTestStore* store = GetStore(); |
| 521 | 521 |
| 522 EXPECT_EQ(kTestUrl2, store->last_saved_page().url); | 522 EXPECT_EQ(kTestUrl2, store->last_saved_page().url); |
| 523 EXPECT_EQ(kTestClientId2, store->last_saved_page().client_id); | 523 EXPECT_EQ(kTestClientId2, store->last_saved_page().client_id); |
| (...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 784 EXPECT_FALSE(base::PathExists(path)); | 784 EXPECT_FALSE(base::PathExists(path)); |
| 785 } | 785 } |
| 786 | 786 |
| 787 TEST_F(OfflinePageModelImplTest, DeleteMultiplePages) { | 787 TEST_F(OfflinePageModelImplTest, DeleteMultiplePages) { |
| 788 OfflinePageTestStore* store = GetStore(); | 788 OfflinePageTestStore* store = GetStore(); |
| 789 | 789 |
| 790 // Save 3 pages. | 790 // Save 3 pages. |
| 791 std::unique_ptr<OfflinePageTestArchiver> archiver(BuildArchiver( | 791 std::unique_ptr<OfflinePageTestArchiver> archiver(BuildArchiver( |
| 792 kTestUrl, OfflinePageArchiver::ArchiverResult::SUCCESSFULLY_CREATED)); | 792 kTestUrl, OfflinePageArchiver::ArchiverResult::SUCCESSFULLY_CREATED)); |
| 793 model()->SavePage( | 793 model()->SavePage( |
| 794 kTestUrl, kTestClientId1, std::move(archiver), | 794 kTestUrl, kTestClientId1, 0ul, std::move(archiver), |
| 795 base::Bind(&OfflinePageModelImplTest::OnSavePageDone, AsWeakPtr())); | 795 base::Bind(&OfflinePageModelImplTest::OnSavePageDone, AsWeakPtr())); |
| 796 PumpLoop(); | 796 PumpLoop(); |
| 797 int64_t offline1 = last_save_offline_id(); | 797 int64_t offline1 = last_save_offline_id(); |
| 798 | 798 |
| 799 std::unique_ptr<OfflinePageTestArchiver> archiver2(BuildArchiver( | 799 std::unique_ptr<OfflinePageTestArchiver> archiver2(BuildArchiver( |
| 800 kTestUrl2, OfflinePageArchiver::ArchiverResult::SUCCESSFULLY_CREATED)); | 800 kTestUrl2, OfflinePageArchiver::ArchiverResult::SUCCESSFULLY_CREATED)); |
| 801 model()->SavePage( | 801 model()->SavePage( |
| 802 kTestUrl2, kTestClientId2, std::move(archiver2), | 802 kTestUrl2, kTestClientId2, 0ul, std::move(archiver2), |
| 803 base::Bind(&OfflinePageModelImplTest::OnSavePageDone, AsWeakPtr())); | 803 base::Bind(&OfflinePageModelImplTest::OnSavePageDone, AsWeakPtr())); |
| 804 PumpLoop(); | 804 PumpLoop(); |
| 805 int64_t offline2 = last_save_offline_id(); | 805 int64_t offline2 = last_save_offline_id(); |
| 806 | 806 |
| 807 std::unique_ptr<OfflinePageTestArchiver> archiver3(BuildArchiver( | 807 std::unique_ptr<OfflinePageTestArchiver> archiver3(BuildArchiver( |
| 808 kTestUrl3, OfflinePageArchiver::ArchiverResult::SUCCESSFULLY_CREATED)); | 808 kTestUrl3, OfflinePageArchiver::ArchiverResult::SUCCESSFULLY_CREATED)); |
| 809 model()->SavePage( | 809 model()->SavePage( |
| 810 kTestUrl3, kTestClientId3, std::move(archiver3), | 810 kTestUrl3, kTestClientId3, 0ul, std::move(archiver3), |
| 811 base::Bind(&OfflinePageModelImplTest::OnSavePageDone, AsWeakPtr())); | 811 base::Bind(&OfflinePageModelImplTest::OnSavePageDone, AsWeakPtr())); |
| 812 PumpLoop(); | 812 PumpLoop(); |
| 813 | 813 |
| 814 EXPECT_EQ(3u, store->GetAllPages().size()); | 814 EXPECT_EQ(3u, store->GetAllPages().size()); |
| 815 | 815 |
| 816 // Delete multiple pages. | 816 // Delete multiple pages. |
| 817 std::vector<int64_t> ids_to_delete; | 817 std::vector<int64_t> ids_to_delete; |
| 818 ids_to_delete.push_back(offline2); | 818 ids_to_delete.push_back(offline2); |
| 819 ids_to_delete.push_back(offline1); | 819 ids_to_delete.push_back(offline1); |
| 820 ids_to_delete.push_back(23434LL); // Non-existent ID. | 820 ids_to_delete.push_back(23434LL); // Non-existent ID. |
| (...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1148 // Check if feature is correctly enabled by command-line flag. | 1148 // Check if feature is correctly enabled by command-line flag. |
| 1149 scoped_feature_list.reset(new base::test::ScopedFeatureList); | 1149 scoped_feature_list.reset(new base::test::ScopedFeatureList); |
| 1150 scoped_feature_list->InitFromCommandLine( | 1150 scoped_feature_list->InitFromCommandLine( |
| 1151 std::string(kOfflineBookmarksFeature.name) + "," + | 1151 std::string(kOfflineBookmarksFeature.name) + "," + |
| 1152 kOfflinePagesSharingFeature.name, | 1152 kOfflinePagesSharingFeature.name, |
| 1153 ""); | 1153 ""); |
| 1154 EXPECT_TRUE(offline_pages::IsOfflinePagesSharingEnabled()); | 1154 EXPECT_TRUE(offline_pages::IsOfflinePagesSharingEnabled()); |
| 1155 } | 1155 } |
| 1156 | 1156 |
| 1157 } // namespace offline_pages | 1157 } // namespace offline_pages |
| OLD | NEW |