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 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
44 namespace { | 44 namespace { |
45 const GURL kTestUrl("http://example.com"); | 45 const GURL kTestUrl("http://example.com"); |
46 const ClientId kTestPageBookmarkId1(BOOKMARK_NAMESPACE, "1234"); | 46 const ClientId kTestPageBookmarkId1(BOOKMARK_NAMESPACE, "1234"); |
47 const GURL kTestUrl2("http://other.page.com"); | 47 const GURL kTestUrl2("http://other.page.com"); |
48 const GURL kTestUrl3("http://test.xyz"); | 48 const GURL kTestUrl3("http://test.xyz"); |
49 const GURL kFileUrl("file:///foo"); | 49 const GURL kFileUrl("file:///foo"); |
50 const ClientId kTestPageBookmarkId2(BOOKMARK_NAMESPACE, "5678"); | 50 const ClientId kTestPageBookmarkId2(BOOKMARK_NAMESPACE, "5678"); |
51 const ClientId kTestPageBookmarkId3(BOOKMARK_NAMESPACE, "42"); | 51 const ClientId kTestPageBookmarkId3(BOOKMARK_NAMESPACE, "42"); |
52 const int64_t kTestFileSize = 876543LL; | 52 const int64_t kTestFileSize = 876543LL; |
53 | 53 |
| 54 bool URLSpecContains(std::string contains_value, const GURL& url) { |
| 55 std::string spec = url.spec(); |
| 56 return spec.find(contains_value) != std::string::npos; |
| 57 } |
| 58 |
54 } // namespace | 59 } // namespace |
55 | 60 |
56 class OfflinePageModelTest | 61 class OfflinePageModelTest |
57 : public testing::Test, | 62 : public testing::Test, |
58 public OfflinePageModel::Observer, | 63 public OfflinePageModel::Observer, |
59 public OfflinePageTestArchiver::Observer, | 64 public OfflinePageTestArchiver::Observer, |
60 public base::SupportsWeakPtr<OfflinePageModelTest> { | 65 public base::SupportsWeakPtr<OfflinePageModelTest> { |
61 public: | 66 public: |
62 OfflinePageModelTest(); | 67 OfflinePageModelTest(); |
63 ~OfflinePageModelTest() override; | 68 ~OfflinePageModelTest() override; |
(...skipping 513 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 |
| 592 TEST_F(OfflinePageModelTest, DeletePageByPredicate) { |
| 593 OfflinePageTestStore* store = GetStore(); |
| 594 |
| 595 // Save one page. |
| 596 SavePage(kTestUrl, kTestPageBookmarkId1); |
| 597 int64_t offline1 = last_save_offline_id(); |
| 598 EXPECT_EQ(SavePageResult::SUCCESS, last_save_result()); |
| 599 EXPECT_EQ(1u, store->GetAllPages().size()); |
| 600 |
| 601 ResetResults(); |
| 602 |
| 603 // Save another page. |
| 604 SavePage(kTestUrl2, kTestPageBookmarkId2); |
| 605 int64_t offline2 = last_save_offline_id(); |
| 606 EXPECT_EQ(SavePageResult::SUCCESS, last_save_result()); |
| 607 EXPECT_EQ(2u, store->GetAllPages().size()); |
| 608 |
| 609 ResetResults(); |
| 610 |
| 611 // Delete the second page. |
| 612 model()->DeletePagesByURLPredicate( |
| 613 base::Bind(&URLSpecContains, "page.com"), |
| 614 base::Bind(&OfflinePageModelTest::OnDeletePageDone, AsWeakPtr())); |
| 615 |
| 616 PumpLoop(); |
| 617 |
| 618 EXPECT_EQ(last_deleted_offline_id(), offline2); |
| 619 EXPECT_EQ(last_deleted_client_id(), kTestPageBookmarkId2); |
| 620 EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_result()); |
| 621 ASSERT_EQ(1u, store->GetAllPages().size()); |
| 622 EXPECT_EQ(kTestUrl, store->GetAllPages()[0].url); |
| 623 |
| 624 ResetResults(); |
| 625 |
| 626 // Delete the first page. |
| 627 model()->DeletePagesByURLPredicate( |
| 628 base::Bind(&URLSpecContains, "example.com"), |
| 629 base::Bind(&OfflinePageModelTest::OnDeletePageDone, AsWeakPtr())); |
| 630 |
| 631 PumpLoop(); |
| 632 |
| 633 EXPECT_EQ(last_deleted_offline_id(), offline1); |
| 634 EXPECT_EQ(last_deleted_client_id(), kTestPageBookmarkId1); |
| 635 EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_result()); |
| 636 EXPECT_EQ(0u, store->GetAllPages().size()); |
| 637 } |
| 638 |
587 TEST_F(OfflinePageModelTest, DeletePageNotFound) { | 639 TEST_F(OfflinePageModelTest, DeletePageNotFound) { |
588 model()->DeletePageByOfflineId( | 640 model()->DeletePageByOfflineId( |
589 1234LL, base::Bind(&OfflinePageModelTest::OnDeletePageDone, AsWeakPtr())); | 641 1234LL, base::Bind(&OfflinePageModelTest::OnDeletePageDone, AsWeakPtr())); |
590 EXPECT_EQ(DeletePageResult::NOT_FOUND, last_delete_result()); | 642 EXPECT_EQ(DeletePageResult::NOT_FOUND, last_delete_result()); |
| 643 |
| 644 ResetResults(); |
| 645 |
| 646 model()->DeletePagesByURLPredicate( |
| 647 base::Bind(&URLSpecContains, "page.com"), |
| 648 base::Bind(&OfflinePageModelTest::OnDeletePageDone, AsWeakPtr())); |
| 649 EXPECT_EQ(DeletePageResult::NOT_FOUND, last_delete_result()); |
591 } | 650 } |
592 | 651 |
593 TEST_F(OfflinePageModelTest, DeletePageStoreFailureOnRemove) { | 652 TEST_F(OfflinePageModelTest, DeletePageStoreFailureOnRemove) { |
594 // Save a page. | 653 // Save a page. |
595 SavePage(kTestUrl, kTestPageBookmarkId1); | 654 SavePage(kTestUrl, kTestPageBookmarkId1); |
596 int64_t offline_id = last_save_offline_id(); | 655 int64_t offline_id = last_save_offline_id(); |
597 ResetResults(); | 656 ResetResults(); |
598 | 657 |
599 // Try to delete this page. | 658 // Try to delete this page. |
600 GetStore()->set_test_scenario( | 659 GetStore()->set_test_scenario( |
(...skipping 466 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1067 // Check if feature is correctly enabled by command-line flag. | 1126 // Check if feature is correctly enabled by command-line flag. |
1068 base::FeatureList::ClearInstanceForTesting(); | 1127 base::FeatureList::ClearInstanceForTesting(); |
1069 scoped_ptr<base::FeatureList> feature_list(new base::FeatureList); | 1128 scoped_ptr<base::FeatureList> feature_list(new base::FeatureList); |
1070 feature_list->InitializeFromCommandLine( | 1129 feature_list->InitializeFromCommandLine( |
1071 offline_pages::kOfflinePagesBackgroundLoadingFeature.name, ""); | 1130 offline_pages::kOfflinePagesBackgroundLoadingFeature.name, ""); |
1072 base::FeatureList::SetInstance(std::move(feature_list)); | 1131 base::FeatureList::SetInstance(std::move(feature_list)); |
1073 EXPECT_TRUE(offline_pages::IsOfflinePagesBackgroundLoadingEnabled()); | 1132 EXPECT_TRUE(offline_pages::IsOfflinePagesBackgroundLoadingEnabled()); |
1074 } | 1133 } |
1075 | 1134 |
1076 } // namespace offline_pages | 1135 } // namespace offline_pages |
OLD | NEW |