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