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

Side by Side Diff: components/offline_pages/offline_page_model_impl_unittest.cc

Issue 2275833002: [Offline Pages] Don't remove user-requested pages when deleting cache. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Comments. 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_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 20 matching lines...) Expand all
31 #include "components/offline_pages/offline_page_test_archiver.h" 31 #include "components/offline_pages/offline_page_test_archiver.h"
32 #include "components/offline_pages/offline_page_test_store.h" 32 #include "components/offline_pages/offline_page_test_store.h"
33 #include "components/offline_pages/offline_page_types.h" 33 #include "components/offline_pages/offline_page_types.h"
34 #include "testing/gtest/include/gtest/gtest.h" 34 #include "testing/gtest/include/gtest/gtest.h"
35 #include "url/gurl.h" 35 #include "url/gurl.h"
36 36
37 namespace offline_pages { 37 namespace offline_pages {
38 38
39 namespace { 39 namespace {
40 const char kTestClientNamespace[] = "CLIENT_NAMESPACE"; 40 const char kTestClientNamespace[] = "CLIENT_NAMESPACE";
41 const char kUserRequestedNamespace[] = "download";
41 const GURL kTestUrl("http://example.com"); 42 const GURL kTestUrl("http://example.com");
42 const GURL kTestUrl2("http://other.page.com"); 43 const GURL kTestUrl2("http://other.page.com");
43 const GURL kTestUrl3("http://test.xyz"); 44 const GURL kTestUrl3("http://test.xyz");
44 const GURL kTestUrl4("http://page.net"); 45 const GURL kTestUrl4("http://page.net");
45 const GURL kFileUrl("file:///foo"); 46 const GURL kFileUrl("file:///foo");
46 const ClientId kTestClientId1(kTestClientNamespace, "1234"); 47 const ClientId kTestClientId1(kTestClientNamespace, "1234");
47 const ClientId kTestClientId2(kTestClientNamespace, "5678"); 48 const ClientId kTestClientId2(kTestClientNamespace, "5678");
48 const ClientId kTestClientId3(kTestClientNamespace, "42"); 49 const ClientId kTestClientId3(kTestClientNamespace, "42");
50 const ClientId kTestUserRequestedClientId(kUserRequestedNamespace, "714");
49 const int64_t kTestFileSize = 876543LL; 51 const int64_t kTestFileSize = 876543LL;
50 const base::string16 kTestTitle = base::UTF8ToUTF16("a title"); 52 const base::string16 kTestTitle = base::UTF8ToUTF16("a title");
51 53
52 bool URLSpecContains(std::string contains_value, const GURL& url) { 54 bool URLSpecContains(std::string contains_value, const GURL& url) {
53 std::string spec = url.spec(); 55 std::string spec = url.spec();
54 return spec.find(contains_value) != std::string::npos; 56 return spec.find(contains_value) != std::string::npos;
55 } 57 }
56 58
57 } // namespace 59 } // namespace
58 60
(...skipping 582 matching lines...) Expand 10 before | Expand all | Expand 10 after
641 ResetResults(); 643 ResetResults();
642 644
643 PumpLoop(); 645 PumpLoop();
644 646
645 EXPECT_EQ(last_deleted_offline_id(), offline2); 647 EXPECT_EQ(last_deleted_offline_id(), offline2);
646 EXPECT_EQ(last_deleted_client_id(), kTestClientId2); 648 EXPECT_EQ(last_deleted_client_id(), kTestClientId2);
647 EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_result()); 649 EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_result());
648 EXPECT_EQ(0u, store->GetAllPages().size()); 650 EXPECT_EQ(0u, store->GetAllPages().size());
649 } 651 }
650 652
651 TEST_F(OfflinePageModelImplTest, DeletePageByPredicate) { 653 TEST_F(OfflinePageModelImplTest, DeleteCachedPageByPredicateUserRequested) {
652 OfflinePageTestStore* store = GetStore(); 654 OfflinePageTestStore* store = GetStore();
653 655
654 // Save one page. 656 // Save one page.
657 SavePage(kTestUrl, kTestClientId1);
658 int64_t offline1 = last_save_offline_id();
659 EXPECT_EQ(SavePageResult::SUCCESS, last_save_result());
660 EXPECT_EQ(1u, store->GetAllPages().size());
661
662 ResetResults();
663
664 // Save an user-requested page in same domain.
665 SavePage(kTestUrl, kTestUserRequestedClientId);
666 int64_t offline2 = last_save_offline_id();
667 EXPECT_EQ(SavePageResult::SUCCESS, last_save_result());
668 EXPECT_EQ(2u, store->GetAllPages().size());
669
670 ResetResults();
671
672 // Delete the second page.
673 model()->DeleteCachedPagesByURLPredicate(
674 base::Bind(&URLSpecContains, "example.com"),
675 base::Bind(&OfflinePageModelImplTest::OnDeletePageDone, AsWeakPtr()));
676
677 PumpLoop();
678
679 EXPECT_EQ(last_deleted_offline_id(), offline1);
680 EXPECT_EQ(last_deleted_client_id(), kTestClientId1);
681 EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_result());
682 ASSERT_EQ(1u, store->GetAllPages().size());
683 EXPECT_EQ(kTestUrl, store->GetAllPages()[0].url);
684 EXPECT_EQ(offline2, store->GetAllPages()[0].offline_id);
685 }
686
687 TEST_F(OfflinePageModelImplTest, DeleteCachedPageByPredicate) {
688 OfflinePageTestStore* store = GetStore();
689
690 // Save one page.
655 SavePage(kTestUrl, kTestClientId1); 691 SavePage(kTestUrl, kTestClientId1);
656 int64_t offline1 = last_save_offline_id(); 692 int64_t offline1 = last_save_offline_id();
657 EXPECT_EQ(SavePageResult::SUCCESS, last_save_result()); 693 EXPECT_EQ(SavePageResult::SUCCESS, last_save_result());
658 EXPECT_EQ(1u, store->GetAllPages().size()); 694 EXPECT_EQ(1u, store->GetAllPages().size());
659 695
660 ResetResults(); 696 ResetResults();
661 697
662 // Save another page. 698 // Save another page.
663 SavePage(kTestUrl2, kTestClientId2); 699 SavePage(kTestUrl2, kTestClientId2);
664 int64_t offline2 = last_save_offline_id(); 700 int64_t offline2 = last_save_offline_id();
665 EXPECT_EQ(SavePageResult::SUCCESS, last_save_result()); 701 EXPECT_EQ(SavePageResult::SUCCESS, last_save_result());
666 EXPECT_EQ(2u, store->GetAllPages().size()); 702 EXPECT_EQ(2u, store->GetAllPages().size());
667 703
668 ResetResults(); 704 ResetResults();
669 705
670 // Delete the second page. 706 // Delete the second page.
671 model()->DeletePagesByURLPredicate( 707 model()->DeleteCachedPagesByURLPredicate(
672 base::Bind(&URLSpecContains, "page.com"), 708 base::Bind(&URLSpecContains, "page.com"),
673 base::Bind(&OfflinePageModelImplTest::OnDeletePageDone, AsWeakPtr())); 709 base::Bind(&OfflinePageModelImplTest::OnDeletePageDone, AsWeakPtr()));
674 710
675 PumpLoop(); 711 PumpLoop();
676 712
677 EXPECT_EQ(last_deleted_offline_id(), offline2); 713 EXPECT_EQ(last_deleted_offline_id(), offline2);
678 EXPECT_EQ(last_deleted_client_id(), kTestClientId2); 714 EXPECT_EQ(last_deleted_client_id(), kTestClientId2);
679 EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_result()); 715 EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_result());
680 ASSERT_EQ(1u, store->GetAllPages().size()); 716 ASSERT_EQ(1u, store->GetAllPages().size());
681 EXPECT_EQ(kTestUrl, store->GetAllPages()[0].url); 717 EXPECT_EQ(kTestUrl, store->GetAllPages()[0].url);
682 718
683 ResetResults(); 719 ResetResults();
684 720
685 // Delete the first page. 721 // Delete the first page.
686 model()->DeletePagesByURLPredicate( 722 model()->DeleteCachedPagesByURLPredicate(
687 base::Bind(&URLSpecContains, "example.com"), 723 base::Bind(&URLSpecContains, "example.com"),
688 base::Bind(&OfflinePageModelImplTest::OnDeletePageDone, AsWeakPtr())); 724 base::Bind(&OfflinePageModelImplTest::OnDeletePageDone, AsWeakPtr()));
689 725
690 PumpLoop(); 726 PumpLoop();
691 727
692 EXPECT_EQ(last_deleted_offline_id(), offline1); 728 EXPECT_EQ(last_deleted_offline_id(), offline1);
693 EXPECT_EQ(last_deleted_client_id(), kTestClientId1); 729 EXPECT_EQ(last_deleted_client_id(), kTestClientId1);
694 EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_result()); 730 EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_result());
695 EXPECT_EQ(0u, store->GetAllPages().size()); 731 EXPECT_EQ(0u, store->GetAllPages().size());
696 } 732 }
697 733
698 TEST_F(OfflinePageModelImplTest, DeletePageNotFound) { 734 TEST_F(OfflinePageModelImplTest, DeletePageNotFound) {
699 DeletePage(1234LL, base::Bind(&OfflinePageModelImplTest::OnDeletePageDone, 735 DeletePage(1234LL, base::Bind(&OfflinePageModelImplTest::OnDeletePageDone,
700 AsWeakPtr())); 736 AsWeakPtr()));
701 PumpLoop(); 737 PumpLoop();
702 738
703 EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_result()); 739 EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_result());
704 740
705 ResetResults(); 741 ResetResults();
706 742
707 model()->DeletePagesByURLPredicate( 743 model()->DeleteCachedPagesByURLPredicate(
708 base::Bind(&URLSpecContains, "page.com"), 744 base::Bind(&URLSpecContains, "page.com"),
709 base::Bind(&OfflinePageModelImplTest::OnDeletePageDone, AsWeakPtr())); 745 base::Bind(&OfflinePageModelImplTest::OnDeletePageDone, AsWeakPtr()));
710 PumpLoop(); 746 PumpLoop();
711 747
712 EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_result()); 748 EXPECT_EQ(DeletePageResult::SUCCESS, last_delete_result());
713 } 749 }
714 750
715 TEST_F(OfflinePageModelImplTest, DeletePageStoreFailureOnRemove) { 751 TEST_F(OfflinePageModelImplTest, DeletePageStoreFailureOnRemove) {
716 // Save a page. 752 // Save a page.
717 SavePage(kTestUrl, kTestClientId1); 753 SavePage(kTestUrl, kTestClientId1);
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after
1151 // Check if feature is correctly enabled by command-line flag. 1187 // Check if feature is correctly enabled by command-line flag.
1152 scoped_feature_list.reset(new base::test::ScopedFeatureList); 1188 scoped_feature_list.reset(new base::test::ScopedFeatureList);
1153 scoped_feature_list->InitFromCommandLine( 1189 scoped_feature_list->InitFromCommandLine(
1154 std::string(kOfflineBookmarksFeature.name) + "," + 1190 std::string(kOfflineBookmarksFeature.name) + "," +
1155 kOfflinePagesSharingFeature.name, 1191 kOfflinePagesSharingFeature.name,
1156 ""); 1192 "");
1157 EXPECT_TRUE(offline_pages::IsOfflinePagesSharingEnabled()); 1193 EXPECT_TRUE(offline_pages::IsOfflinePagesSharingEnabled());
1158 } 1194 }
1159 1195
1160 } // namespace offline_pages 1196 } // namespace offline_pages
OLDNEW
« no previous file with comments | « components/offline_pages/offline_page_model_impl.cc ('k') | components/offline_pages/stub_offline_page_model.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698