| 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/ntp_snippets/ntp_snippets_service.h" | 5 #include "components/ntp_snippets/ntp_snippets_service.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <utility> | 8 #include <utility> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 622 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 633 | 633 |
| 634 std::string json_str(GetTestJson({GetSnippet()})); | 634 std::string json_str(GetTestJson({GetSnippet()})); |
| 635 | 635 |
| 636 LoadFromJSONString(service.get(), json_str); | 636 LoadFromJSONString(service.get(), json_str); |
| 637 EXPECT_THAT(service->GetSnippetsForTesting(articles_category()), SizeIs(1)); | 637 EXPECT_THAT(service->GetSnippetsForTesting(articles_category()), SizeIs(1)); |
| 638 | 638 |
| 639 service->ClearCachedSuggestions(articles_category()); | 639 service->ClearCachedSuggestions(articles_category()); |
| 640 EXPECT_THAT(service->GetSnippetsForTesting(articles_category()), IsEmpty()); | 640 EXPECT_THAT(service->GetSnippetsForTesting(articles_category()), IsEmpty()); |
| 641 } | 641 } |
| 642 | 642 |
| 643 TEST_F(NTPSnippetsServiceTest, InsertAtFront) { | 643 TEST_F(NTPSnippetsServiceTest, ReplaceSnippets) { |
| 644 auto service = MakeSnippetsService(); | 644 auto service = MakeSnippetsService(); |
| 645 | 645 |
| 646 std::string first("http://first"); | 646 std::string first("http://first"); |
| 647 LoadFromJSONString(service.get(), GetTestJson({GetSnippetWithUrl(first)})); | 647 LoadFromJSONString(service.get(), GetTestJson({GetSnippetWithUrl(first)})); |
| 648 EXPECT_THAT(service->GetSnippetsForTesting(articles_category()), | 648 EXPECT_THAT(service->GetSnippetsForTesting(articles_category()), |
| 649 ElementsAre(IdEq(first))); | 649 ElementsAre(IdEq(first))); |
| 650 | 650 |
| 651 std::string second("http://second"); | 651 std::string second("http://second"); |
| 652 LoadFromJSONString(service.get(), GetTestJson({GetSnippetWithUrl(second)})); | 652 LoadFromJSONString(service.get(), GetTestJson({GetSnippetWithUrl(second)})); |
| 653 // The snippet loaded last should be at the first position in the list now. | 653 // The snippets loaded last replace all that was loaded previously. |
| 654 EXPECT_THAT(service->GetSnippetsForTesting(articles_category()), | 654 EXPECT_THAT(service->GetSnippetsForTesting(articles_category()), |
| 655 ElementsAre(IdEq(second), IdEq(first))); | 655 ElementsAre(IdEq(second))); |
| 656 } | |
| 657 | |
| 658 TEST_F(NTPSnippetsServiceTest, LimitNumSnippets) { | |
| 659 auto service = MakeSnippetsService(); | |
| 660 | |
| 661 int max_snippet_count = NTPSnippetsService::GetMaxSnippetCountForTesting(); | |
| 662 int snippets_per_load = max_snippet_count / 2 + 1; | |
| 663 char url_format[] = "http://localhost/%i"; | |
| 664 | |
| 665 std::vector<std::string> snippets1; | |
| 666 std::vector<std::string> snippets2; | |
| 667 for (int i = 0; i < snippets_per_load; i++) { | |
| 668 snippets1.push_back(GetSnippetWithUrl(base::StringPrintf(url_format, i))); | |
| 669 snippets2.push_back(GetSnippetWithUrl( | |
| 670 base::StringPrintf(url_format, snippets_per_load + i))); | |
| 671 } | |
| 672 | |
| 673 LoadFromJSONString(service.get(), GetTestJson(snippets1)); | |
| 674 ASSERT_THAT(service->GetSnippetsForTesting(articles_category()), | |
| 675 SizeIs(snippets1.size())); | |
| 676 | |
| 677 LoadFromJSONString(service.get(), GetTestJson(snippets2)); | |
| 678 EXPECT_THAT(service->GetSnippetsForTesting(articles_category()), | |
| 679 SizeIs(max_snippet_count)); | |
| 680 } | 656 } |
| 681 | 657 |
| 682 TEST_F(NTPSnippetsServiceTest, LoadInvalidJson) { | 658 TEST_F(NTPSnippetsServiceTest, LoadInvalidJson) { |
| 683 auto service = MakeSnippetsService(); | 659 auto service = MakeSnippetsService(); |
| 684 | 660 |
| 685 LoadFromJSONString(service.get(), GetTestJson({GetInvalidSnippet()})); | 661 LoadFromJSONString(service.get(), GetTestJson({GetInvalidSnippet()})); |
| 686 EXPECT_THAT(service->snippets_fetcher()->last_status(), | 662 EXPECT_THAT(service->snippets_fetcher()->last_status(), |
| 687 StartsWith("Received invalid JSON")); | 663 StartsWith("Received invalid JSON")); |
| 688 EXPECT_THAT(service->GetSnippetsForTesting(articles_category()), IsEmpty()); | 664 EXPECT_THAT(service->GetSnippetsForTesting(articles_category()), IsEmpty()); |
| 689 } | 665 } |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 798 std::string json = | 774 std::string json = |
| 799 GetSnippetWithTimes(GetDefaultCreationTime(), GetDefaultExpirationTime()); | 775 GetSnippetWithTimes(GetDefaultCreationTime(), GetDefaultExpirationTime()); |
| 800 base::ReplaceFirstSubstringAfterOffset( | 776 base::ReplaceFirstSubstringAfterOffset( |
| 801 &json, 0, FormatTime(GetDefaultCreationTime()), "aaa1448459205"); | 777 &json, 0, FormatTime(GetDefaultCreationTime()), "aaa1448459205"); |
| 802 std::string json_str(GetTestJson({json})); | 778 std::string json_str(GetTestJson({json})); |
| 803 | 779 |
| 804 LoadFromJSONString(service.get(), json_str); | 780 LoadFromJSONString(service.get(), json_str); |
| 805 EXPECT_THAT(service->GetSnippetsForTesting(articles_category()), IsEmpty()); | 781 EXPECT_THAT(service->GetSnippetsForTesting(articles_category()), IsEmpty()); |
| 806 } | 782 } |
| 807 | 783 |
| 808 TEST_F(NTPSnippetsServiceTest, RemoveExpiredContent) { | 784 TEST_F(NTPSnippetsServiceTest, RemoveExpiredDismissedContent) { |
| 785 auto service = MakeSnippetsService(); |
| 786 |
| 787 std::string json_str1(GetTestJson({GetExpiredSnippet()})); |
| 788 // Load it. |
| 789 LoadFromJSONString(service.get(), json_str1); |
| 790 // Dismiss the suggestion |
| 791 service->DismissSuggestion( |
| 792 service->MakeUniqueID(service->articles_category_, kSnippetUrl)); |
| 793 |
| 794 // Load a different snippet - this will clear the expired dismissed ones. |
| 795 std::string json_str2(GetTestJson({GetSnippetWithUrl(kSnippetUrl2)})); |
| 796 LoadFromJSONString(service.get(), json_str2); |
| 797 |
| 798 EXPECT_THAT(service->GetDismissedSnippetsForTesting(articles_category()), |
| 799 IsEmpty()); |
| 800 } |
| 801 |
| 802 TEST_F(NTPSnippetsServiceTest, ExpiredContentNotRemoved) { |
| 809 auto service = MakeSnippetsService(); | 803 auto service = MakeSnippetsService(); |
| 810 | 804 |
| 811 std::string json_str(GetTestJson({GetExpiredSnippet()})); | 805 std::string json_str(GetTestJson({GetExpiredSnippet()})); |
| 812 | 806 |
| 813 LoadFromJSONString(service.get(), json_str); | 807 LoadFromJSONString(service.get(), json_str); |
| 814 EXPECT_THAT(service->GetSnippetsForTesting(articles_category()), IsEmpty()); | 808 EXPECT_THAT(service->GetSnippetsForTesting(articles_category()), SizeIs(1)); |
| 815 } | 809 } |
| 816 | 810 |
| 817 TEST_F(NTPSnippetsServiceTest, TestSingleSource) { | 811 TEST_F(NTPSnippetsServiceTest, TestSingleSource) { |
| 818 auto service = MakeSnippetsService(); | 812 auto service = MakeSnippetsService(); |
| 819 | 813 |
| 820 std::string json_str(GetTestJson({GetSnippetWithSources( | 814 std::string json_str(GetTestJson({GetSnippetWithSources( |
| 821 "http://source1.com", "Source 1", "http://source1.amp.com")})); | 815 "http://source1.com", "Source 1", "http://source1.amp.com")})); |
| 822 | 816 |
| 823 LoadFromJSONString(service.get(), json_str); | 817 LoadFromJSONString(service.get(), json_str); |
| 824 ASSERT_THAT(service->GetSnippetsForTesting(articles_category()), SizeIs(1)); | 818 ASSERT_THAT(service->GetSnippetsForTesting(articles_category()), SizeIs(1)); |
| (...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1044 end = base::Time::FromTimeT(456); | 1038 end = base::Time::FromTimeT(456); |
| 1045 base::Callback<bool(const GURL& url)> filter; | 1039 base::Callback<bool(const GURL& url)> filter; |
| 1046 service->ClearHistory(begin, end, filter); | 1040 service->ClearHistory(begin, end, filter); |
| 1047 | 1041 |
| 1048 EXPECT_THAT(service->GetSnippetsForTesting(articles_category()), IsEmpty()); | 1042 EXPECT_THAT(service->GetSnippetsForTesting(articles_category()), IsEmpty()); |
| 1049 EXPECT_THAT(service->GetDismissedSnippetsForTesting(articles_category()), | 1043 EXPECT_THAT(service->GetDismissedSnippetsForTesting(articles_category()), |
| 1050 IsEmpty()); | 1044 IsEmpty()); |
| 1051 } | 1045 } |
| 1052 | 1046 |
| 1053 } // namespace ntp_snippets | 1047 } // namespace ntp_snippets |
| OLD | NEW |