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

Side by Side Diff: chrome/browser/ntp_snippets/download_suggestions_provider_unittest.cc

Issue 2870223003: Avoid base::Time::FromJavaTime() when not dealing with Java. (Closed)
Patch Set: Created 3 years, 7 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
« base/time/time.h ('K') | « base/time/time.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "chrome/browser/ntp_snippets/download_suggestions_provider.h" 5 #include "chrome/browser/ntp_snippets/download_suggestions_provider.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 return os; 83 return os;
84 } 84 }
85 85
86 } // namespace ntp_snippets 86 } // namespace ntp_snippets
87 87
88 namespace { 88 namespace {
89 89
90 const int kDefaultMaxDownloadAgeHours = 6 * 7 * 24; 90 const int kDefaultMaxDownloadAgeHours = 6 * 7 * 24;
91 91
92 // Tue, 31 Jan 2017 13:00:00 UTC 92 // Tue, 31 Jan 2017 13:00:00 UTC
93 const base::Time now = base::Time::FromJavaTime(1485867600000); 93 const base::Time kDummyNow = base::Time::FromInternalValue(13130341200000000);
miu 2017/05/10 21:43:02 nit: Rather than FromInternalValue, how about some
94
95 base::Time GetDummyNotOutdatedTime() {
96 return kDummyNow - base::TimeDelta::FromHours(kDefaultMaxDownloadAgeHours) +
97 base::TimeDelta::FromSeconds(1);
98 }
99
100 base::Time GetDummyOutdatedTime() {
101 return kDummyNow - base::TimeDelta::FromHours(kDefaultMaxDownloadAgeHours) -
102 base::TimeDelta::FromSeconds(1);
103 }
94 104
95 // TODO(vitaliii): Move this and outputting functions above to common file and 105 // TODO(vitaliii): Move this and outputting functions above to common file and
96 // replace remaining |Property(&ContentSuggestion::url, GURL("some_url"))|. 106 // replace remaining |Property(&ContentSuggestion::url, GURL("some_url"))|.
97 // See crbug.com/655513. 107 // See crbug.com/655513.
98 MATCHER_P(HasUrl, url, "") { 108 MATCHER_P(HasUrl, url, "") {
99 *result_listener << "expected URL: " << url 109 *result_listener << "expected URL: " << url
100 << "has URL: " << arg.url().spec(); 110 << "has URL: " << arg.url().spec();
101 return arg.url().spec() == url; 111 return arg.url().spec() == url;
102 } 112 }
103 113
(...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after
464 FireDownloadCreated(asset_downloads[1].get()); 474 FireDownloadCreated(asset_downloads[1].get());
465 } 475 }
466 476
467 TEST_F(DownloadSuggestionsProviderTest, ShouldSortSuggestions) { 477 TEST_F(DownloadSuggestionsProviderTest, ShouldSortSuggestions) {
468 IgnoreOnCategoryStatusChangedToAvailable(); 478 IgnoreOnCategoryStatusChangedToAvailable();
469 IgnoreOnSuggestionInvalidated(); 479 IgnoreOnSuggestionInvalidated();
470 480
471 std::vector<OfflinePageItem> offline_pages = CreateDummyOfflinePages({0, 1}); 481 std::vector<OfflinePageItem> offline_pages = CreateDummyOfflinePages({0, 1});
472 482
473 offline_pages[0].url = GURL("http://dummy.com/0"); 483 offline_pages[0].url = GURL("http://dummy.com/0");
474 offline_pages[0].creation_time = now - base::TimeDelta::FromMinutes(10); 484 offline_pages[0].creation_time = kDummyNow - base::TimeDelta::FromMinutes(10);
475 offline_pages[0].last_access_time = offline_pages[0].creation_time; 485 offline_pages[0].last_access_time = offline_pages[0].creation_time;
476 486
477 offline_pages[1].url = GURL("http://dummy.com/1"); 487 offline_pages[1].url = GURL("http://dummy.com/1");
478 offline_pages[1].creation_time = now - base::TimeDelta::FromMinutes(5); 488 offline_pages[1].creation_time = kDummyNow - base::TimeDelta::FromMinutes(5);
479 offline_pages[1].last_access_time = offline_pages[1].creation_time; 489 offline_pages[1].last_access_time = offline_pages[1].creation_time;
480 490
481 *(offline_pages_model()->mutable_items()) = offline_pages; 491 *(offline_pages_model()->mutable_items()) = offline_pages;
482 492
483 auto test_clock = base::MakeUnique<base::SimpleTestClock>(); 493 auto test_clock = base::MakeUnique<base::SimpleTestClock>();
484 test_clock->SetNow(now); 494 test_clock->SetNow(kDummyNow);
485 EXPECT_CALL(*observer(), 495 EXPECT_CALL(*observer(),
486 OnNewSuggestions(_, downloads_category(), 496 OnNewSuggestions(_, downloads_category(),
487 ElementsAre(HasUrl("http://dummy.com/1"), 497 ElementsAre(HasUrl("http://dummy.com/1"),
488 HasUrl("http://dummy.com/0")))); 498 HasUrl("http://dummy.com/0"))));
489 CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/true, 499 CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/true,
490 std::move(test_clock)); 500 std::move(test_clock));
491 501
492 std::vector<std::unique_ptr<FakeDownloadItem>> asset_downloads = 502 std::vector<std::unique_ptr<FakeDownloadItem>> asset_downloads =
493 CreateDummyAssetDownloads({2, 3}); 503 CreateDummyAssetDownloads({2, 3});
494 504
495 asset_downloads[0]->SetURL(GURL("http://download.com/2")); 505 asset_downloads[0]->SetURL(GURL("http://download.com/2"));
496 asset_downloads[0]->SetStartTime(now - base::TimeDelta::FromMinutes(3)); 506 asset_downloads[0]->SetStartTime(kDummyNow - base::TimeDelta::FromMinutes(3));
497 507
498 asset_downloads[1]->SetURL(GURL("http://download.com/3")); 508 asset_downloads[1]->SetURL(GURL("http://download.com/3"));
499 asset_downloads[1]->SetStartTime(now - base::TimeDelta::FromMinutes(7)); 509 asset_downloads[1]->SetStartTime(kDummyNow - base::TimeDelta::FromMinutes(7));
500 510
501 EXPECT_CALL(*observer(), 511 EXPECT_CALL(*observer(),
502 OnNewSuggestions(_, downloads_category(), 512 OnNewSuggestions(_, downloads_category(),
503 ElementsAre(HasUrl("http://download.com/2"), 513 ElementsAre(HasUrl("http://download.com/2"),
504 HasUrl("http://dummy.com/1"), 514 HasUrl("http://dummy.com/1"),
505 HasUrl("http://dummy.com/0")))); 515 HasUrl("http://dummy.com/0"))));
506 FireDownloadCreated(asset_downloads[0].get()); 516 FireDownloadCreated(asset_downloads[0].get());
507 517
508 EXPECT_CALL(*observer(), 518 EXPECT_CALL(*observer(),
509 OnNewSuggestions(_, downloads_category(), 519 OnNewSuggestions(_, downloads_category(),
(...skipping 518 matching lines...) Expand 10 before | Expand all | Expand 10 after
1028 1038
1029 *(downloads_manager()->mutable_items()) = CreateDummyAssetDownloads({1}); 1039 *(downloads_manager()->mutable_items()) = CreateDummyAssetDownloads({1});
1030 // Once the manager has been loaded, the ids should be pruned. 1040 // Once the manager has been loaded, the ids should be pruned.
1031 EXPECT_THAT(GetDismissedSuggestions(), IsEmpty()); 1041 EXPECT_THAT(GetDismissedSuggestions(), IsEmpty());
1032 } 1042 }
1033 1043
1034 TEST_F(DownloadSuggestionsProviderTest, ShouldNotShowOutdatedDownloads) { 1044 TEST_F(DownloadSuggestionsProviderTest, ShouldNotShowOutdatedDownloads) {
1035 IgnoreOnCategoryStatusChangedToAvailable(); 1045 IgnoreOnCategoryStatusChangedToAvailable();
1036 IgnoreOnSuggestionInvalidated(); 1046 IgnoreOnSuggestionInvalidated();
1037 1047
1038 const base::Time not_outdated = 1048 const base::Time not_outdated = GetDummyNotOutdatedTime();
1039 now - base::TimeDelta::FromHours(kDefaultMaxDownloadAgeHours) + 1049 const base::Time outdated = GetDummyOutdatedTime();
1040 base::TimeDelta::FromSeconds(1);
1041 const base::Time outdated =
1042 now - base::TimeDelta::FromHours(kDefaultMaxDownloadAgeHours) -
1043 base::TimeDelta::FromSeconds(1);
1044 1050
1045 *(offline_pages_model()->mutable_items()) = CreateDummyOfflinePages({0, 1}); 1051 *(offline_pages_model()->mutable_items()) = CreateDummyOfflinePages({0, 1});
1046 1052
1047 offline_pages_model()->mutable_items()->at(0).url = 1053 offline_pages_model()->mutable_items()->at(0).url =
1048 GURL("http://dummy.com/0"); 1054 GURL("http://dummy.com/0");
1049 offline_pages_model()->mutable_items()->at(0).creation_time = not_outdated; 1055 offline_pages_model()->mutable_items()->at(0).creation_time = not_outdated;
1050 offline_pages_model()->mutable_items()->at(0).last_access_time = not_outdated; 1056 offline_pages_model()->mutable_items()->at(0).last_access_time = not_outdated;
1051 1057
1052 offline_pages_model()->mutable_items()->at(1).url = 1058 offline_pages_model()->mutable_items()->at(1).url =
1053 GURL("http://dummy.com/1"); 1059 GURL("http://dummy.com/1");
1054 offline_pages_model()->mutable_items()->at(1).creation_time = outdated; 1060 offline_pages_model()->mutable_items()->at(1).creation_time = outdated;
1055 offline_pages_model()->mutable_items()->at(1).last_access_time = outdated; 1061 offline_pages_model()->mutable_items()->at(1).last_access_time = outdated;
1056 1062
1057 *(downloads_manager()->mutable_items()) = CreateDummyAssetDownloads({0, 1}); 1063 *(downloads_manager()->mutable_items()) = CreateDummyAssetDownloads({0, 1});
1058 1064
1059 downloads_manager()->mutable_items()->at(0)->SetURL( 1065 downloads_manager()->mutable_items()->at(0)->SetURL(
1060 GURL("http://download.com/0")); 1066 GURL("http://download.com/0"));
1061 downloads_manager()->mutable_items()->at(0)->SetStartTime(not_outdated); 1067 downloads_manager()->mutable_items()->at(0)->SetStartTime(not_outdated);
1062 1068
1063 downloads_manager()->mutable_items()->at(1)->SetURL( 1069 downloads_manager()->mutable_items()->at(1)->SetURL(
1064 GURL("http://download.com/1")); 1070 GURL("http://download.com/1"));
1065 downloads_manager()->mutable_items()->at(1)->SetStartTime(outdated); 1071 downloads_manager()->mutable_items()->at(1)->SetStartTime(outdated);
1066 1072
1067 EXPECT_CALL( 1073 EXPECT_CALL(
1068 *observer(), 1074 *observer(),
1069 OnNewSuggestions(_, downloads_category(), 1075 OnNewSuggestions(_, downloads_category(),
1070 UnorderedElementsAre(HasUrl("http://dummy.com/0"), 1076 UnorderedElementsAre(HasUrl("http://dummy.com/0"),
1071 HasUrl("http://download.com/0")))); 1077 HasUrl("http://download.com/0"))));
1072 auto test_clock = base::MakeUnique<base::SimpleTestClock>(); 1078 auto test_clock = base::MakeUnique<base::SimpleTestClock>();
1073 test_clock->SetNow(now); 1079 test_clock->SetNow(kDummyNow);
1074 CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/true, 1080 CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/true,
1075 std::move(test_clock)); 1081 std::move(test_clock));
1076 } 1082 }
1077 1083
1078 TEST_F(DownloadSuggestionsProviderTest, 1084 TEST_F(DownloadSuggestionsProviderTest,
1079 ShouldShowRecentlyVisitedOfflinePageDownloads) { 1085 ShouldShowRecentlyVisitedOfflinePageDownloads) {
1080 IgnoreOnCategoryStatusChangedToAvailable(); 1086 IgnoreOnCategoryStatusChangedToAvailable();
1081 IgnoreOnSuggestionInvalidated(); 1087 IgnoreOnSuggestionInvalidated();
1082 1088
1083 const base::Time not_outdated = 1089 const base::Time not_outdated = GetDummyNotOutdatedTime();
1084 now - base::TimeDelta::FromHours(kDefaultMaxDownloadAgeHours) + 1090 const base::Time outdated = GetDummyOutdatedTime();
1085 base::TimeDelta::FromSeconds(1);
1086 const base::Time outdated =
1087 now - base::TimeDelta::FromHours(kDefaultMaxDownloadAgeHours) -
1088 base::TimeDelta::FromSeconds(1);
1089 1091
1090 std::vector<OfflinePageItem> offline_pages = CreateDummyOfflinePages({0, 1}); 1092 std::vector<OfflinePageItem> offline_pages = CreateDummyOfflinePages({0, 1});
1091 1093
1092 offline_pages[0].url = GURL("http://dummy.com/0"); 1094 offline_pages[0].url = GURL("http://dummy.com/0");
1093 offline_pages[0].creation_time = outdated; 1095 offline_pages[0].creation_time = outdated;
1094 offline_pages[0].last_access_time = not_outdated; 1096 offline_pages[0].last_access_time = not_outdated;
1095 1097
1096 offline_pages[1].url = GURL("http://dummy.com/1"); 1098 offline_pages[1].url = GURL("http://dummy.com/1");
1097 offline_pages[1].creation_time = outdated; 1099 offline_pages[1].creation_time = outdated;
1098 offline_pages[1].last_access_time = offline_pages[1].creation_time; 1100 offline_pages[1].last_access_time = offline_pages[1].creation_time;
1099 1101
1100 *(offline_pages_model()->mutable_items()) = offline_pages; 1102 *(offline_pages_model()->mutable_items()) = offline_pages;
1101 1103
1102 // Even though page 0 was created long time ago, it should be reported because 1104 // Even though page 0 was created long time ago, it should be reported because
1103 // it has been visited recently. 1105 // it has been visited recently.
1104 EXPECT_CALL( 1106 EXPECT_CALL(
1105 *observer(), 1107 *observer(),
1106 OnNewSuggestions(_, downloads_category(), 1108 OnNewSuggestions(_, downloads_category(),
1107 UnorderedElementsAre(HasUrl("http://dummy.com/0")))); 1109 UnorderedElementsAre(HasUrl("http://dummy.com/0"))));
1108 auto test_clock = base::MakeUnique<base::SimpleTestClock>(); 1110 auto test_clock = base::MakeUnique<base::SimpleTestClock>();
1109 test_clock->SetNow(now); 1111 test_clock->SetNow(kDummyNow);
1110 CreateProvider(/*show_assets=*/false, /*show_offline_pages=*/true, 1112 CreateProvider(/*show_assets=*/false, /*show_offline_pages=*/true,
1111 std::move(test_clock)); 1113 std::move(test_clock));
1112 } 1114 }
1113 1115
1114 TEST_F(DownloadSuggestionsProviderTest, 1116 TEST_F(DownloadSuggestionsProviderTest,
1115 ShouldShowRecentlyVisitedAssetDownloads) { 1117 ShouldShowRecentlyVisitedAssetDownloads) {
1116 IgnoreOnCategoryStatusChangedToAvailable(); 1118 IgnoreOnCategoryStatusChangedToAvailable();
1117 IgnoreOnSuggestionInvalidated(); 1119 IgnoreOnSuggestionInvalidated();
1118 1120
1119 const base::Time not_outdated = 1121 const base::Time not_outdated = GetDummyNotOutdatedTime();
1120 now - base::TimeDelta::FromHours(kDefaultMaxDownloadAgeHours) + 1122 const base::Time outdated = GetDummyOutdatedTime();
1121 base::TimeDelta::FromSeconds(1);
1122 const base::Time outdated =
1123 now - base::TimeDelta::FromHours(kDefaultMaxDownloadAgeHours) -
1124 base::TimeDelta::FromSeconds(1);
1125 1123
1126 *(downloads_manager()->mutable_items()) = CreateDummyAssetDownloads({0, 1}); 1124 *(downloads_manager()->mutable_items()) = CreateDummyAssetDownloads({0, 1});
1127 1125
1128 downloads_manager()->mutable_items()->at(0)->SetURL( 1126 downloads_manager()->mutable_items()->at(0)->SetURL(
1129 GURL("http://download.com/0")); 1127 GURL("http://download.com/0"));
1130 downloads_manager()->mutable_items()->at(0)->SetStartTime(outdated); 1128 downloads_manager()->mutable_items()->at(0)->SetStartTime(outdated);
1131 downloads_manager()->mutable_items()->at(0)->SetLastAccessTime(not_outdated); 1129 downloads_manager()->mutable_items()->at(0)->SetLastAccessTime(not_outdated);
1132 1130
1133 downloads_manager()->mutable_items()->at(1)->SetURL( 1131 downloads_manager()->mutable_items()->at(1)->SetURL(
1134 GURL("http://download.com/1")); 1132 GURL("http://download.com/1"));
1135 downloads_manager()->mutable_items()->at(1)->SetStartTime(outdated); 1133 downloads_manager()->mutable_items()->at(1)->SetStartTime(outdated);
1136 downloads_manager()->mutable_items()->at(1)->SetLastAccessTime( 1134 downloads_manager()->mutable_items()->at(1)->SetLastAccessTime(
1137 downloads_manager()->mutable_items()->at(1)->GetStartTime()); 1135 downloads_manager()->mutable_items()->at(1)->GetStartTime());
1138 1136
1139 // Even though asset download 0 was downloaded long time ago, it should be 1137 // Even though asset download 0 was downloaded long time ago, it should be
1140 // reported because it has been visited recently. 1138 // reported because it has been visited recently.
1141 EXPECT_CALL( 1139 EXPECT_CALL(
1142 *observer(), 1140 *observer(),
1143 OnNewSuggestions(_, downloads_category(), 1141 OnNewSuggestions(_, downloads_category(),
1144 UnorderedElementsAre(HasUrl("http://download.com/0")))); 1142 UnorderedElementsAre(HasUrl("http://download.com/0"))));
1145 auto test_clock = base::MakeUnique<base::SimpleTestClock>(); 1143 auto test_clock = base::MakeUnique<base::SimpleTestClock>();
1146 test_clock->SetNow(now); 1144 test_clock->SetNow(kDummyNow);
1147 CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/false, 1145 CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/false,
1148 std::move(test_clock)); 1146 std::move(test_clock));
1149 } 1147 }
OLDNEW
« base/time/time.h ('K') | « base/time/time.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698