OLD | NEW |
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 "components/ntp_snippets/offline_pages/recent_tab_suggestions_provider.
h" | 5 #include "components/ntp_snippets/offline_pages/recent_tab_suggestions_provider.
h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
158 } | 158 } |
159 | 159 |
160 private: | 160 private: |
161 DISALLOW_COPY_AND_ASSIGN(RecentTabSuggestionsProviderTest); | 161 DISALLOW_COPY_AND_ASSIGN(RecentTabSuggestionsProviderTest); |
162 }; | 162 }; |
163 | 163 |
164 TEST_F(RecentTabSuggestionsProviderTest, ShouldConvertToSuggestions) { | 164 TEST_F(RecentTabSuggestionsProviderTest, ShouldConvertToSuggestions) { |
165 EXPECT_CALL(*observer(), OnNewSuggestions(_, _, _)).Times(2); | 165 EXPECT_CALL(*observer(), OnNewSuggestions(_, _, _)).Times(2); |
166 EXPECT_CALL( | 166 EXPECT_CALL( |
167 *observer(), | 167 *observer(), |
168 OnNewSuggestions(_, recent_tabs_category(), | 168 OnNewSuggestions( |
169 UnorderedElementsAre( | 169 _, recent_tabs_category(), |
170 Property(&ContentSuggestion::url, | 170 UnorderedElementsAre( |
171 GURL("http://dummy.com/1")), | 171 Property(&ContentSuggestion::url, GURL("http://dummy.com/1")), |
172 Property(&ContentSuggestion::url, | 172 Property(&ContentSuggestion::url, GURL("http://dummy.com/2")), |
173 GURL("http://dummy.com/2")), | 173 Property(&ContentSuggestion::url, GURL("http://dummy.com/3"))))); |
174 Property(&ContentSuggestion::url, | |
175 GURL("http://dummy.com/3"))))); | |
176 | 174 |
177 auto recent_tabs_list = CreateDummyRecentTabs({1, 2, 3}); | 175 auto recent_tabs_list = CreateDummyRecentTabs({1, 2, 3}); |
178 for (OfflinePageItem& recent_tab : recent_tabs_list) { | 176 for (OfflinePageItem& recent_tab : recent_tabs_list) { |
179 AddTabAndOfflinePageToModel(recent_tab); | 177 AddTabAndOfflinePageToModel(recent_tab); |
180 } | 178 } |
181 } | 179 } |
182 | 180 |
183 TEST_F(RecentTabSuggestionsProviderTest, ShouldSortByCreationTime) { | 181 TEST_F(RecentTabSuggestionsProviderTest, ShouldSortByCreationTime) { |
184 base::Time now = base::Time::Now(); | 182 base::Time now = base::Time::Now(); |
185 base::Time yesterday = now - base::TimeDelta::FromDays(1); | 183 base::Time yesterday = now - base::TimeDelta::FromDays(1); |
(...skipping 19 matching lines...) Expand all Loading... |
205 Property(&ContentSuggestion::url, GURL("http://dummy.com/2"))))); | 203 Property(&ContentSuggestion::url, GURL("http://dummy.com/2"))))); |
206 AddTabAndOfflinePageToModel(CreateDummyRecentTab(2, yesterday)); | 204 AddTabAndOfflinePageToModel(CreateDummyRecentTab(2, yesterday)); |
207 | 205 |
208 offline_pages[1].last_access_time = | 206 offline_pages[1].last_access_time = |
209 offline_pages[0].last_access_time + base::TimeDelta::FromHours(1); | 207 offline_pages[0].last_access_time + base::TimeDelta::FromHours(1); |
210 | 208 |
211 EXPECT_CALL( | 209 EXPECT_CALL( |
212 *observer(), | 210 *observer(), |
213 OnNewSuggestions( | 211 OnNewSuggestions( |
214 _, recent_tabs_category(), | 212 _, recent_tabs_category(), |
215 ElementsAre(Property(&ContentSuggestion::url, | 213 ElementsAre( |
216 GURL("http://dummy.com/3")), | 214 Property(&ContentSuggestion::url, GURL("http://dummy.com/3")), |
217 Property(&ContentSuggestion::url, | 215 Property(&ContentSuggestion::url, GURL("http://dummy.com/1")), |
218 GURL("http://dummy.com/1")), | 216 Property(&ContentSuggestion::url, GURL("http://dummy.com/2"))))); |
219 Property(&ContentSuggestion::url, | |
220 GURL("http://dummy.com/2"))))); | |
221 AddTabAndOfflinePageToModel(CreateDummyRecentTab(3, tomorrow)); | 217 AddTabAndOfflinePageToModel(CreateDummyRecentTab(3, tomorrow)); |
222 } | 218 } |
223 | 219 |
224 TEST_F(RecentTabSuggestionsProviderTest, ShouldDeliverCorrectCategoryInfo) { | 220 TEST_F(RecentTabSuggestionsProviderTest, ShouldDeliverCorrectCategoryInfo) { |
225 EXPECT_EQ( | 221 EXPECT_EQ( |
226 ContentSuggestionsAdditionalAction::NONE, | 222 ContentSuggestionsAdditionalAction::NONE, |
227 provider()->GetCategoryInfo(recent_tabs_category()).additional_action()); | 223 provider()->GetCategoryInfo(recent_tabs_category()).additional_action()); |
228 } | 224 } |
229 | 225 |
230 // TODO(vitaliii): Break this test into multiple tests. Currently if it fails, | 226 // TODO(vitaliii): Break this test into multiple tests. Currently if it fails, |
(...skipping 23 matching lines...) Expand all Loading... |
254 AddTabAndOfflinePageToModel(CreateDummyRecentTab(4)); | 250 AddTabAndOfflinePageToModel(CreateDummyRecentTab(4)); |
255 Mock::VerifyAndClearExpectations(observer()); | 251 Mock::VerifyAndClearExpectations(observer()); |
256 | 252 |
257 // And appear in the dismissed suggestions. | 253 // And appear in the dismissed suggestions. |
258 std::vector<ContentSuggestion> dismissed_suggestions; | 254 std::vector<ContentSuggestion> dismissed_suggestions; |
259 provider()->GetDismissedSuggestionsForDebugging( | 255 provider()->GetDismissedSuggestionsForDebugging( |
260 recent_tabs_category(), | 256 recent_tabs_category(), |
261 base::Bind(&CaptureDismissedSuggestions, &dismissed_suggestions)); | 257 base::Bind(&CaptureDismissedSuggestions, &dismissed_suggestions)); |
262 EXPECT_THAT( | 258 EXPECT_THAT( |
263 dismissed_suggestions, | 259 dismissed_suggestions, |
264 UnorderedElementsAre(Property(&ContentSuggestion::url, | 260 UnorderedElementsAre( |
265 GURL("http://dummy.com/2")), | 261 Property(&ContentSuggestion::url, GURL("http://dummy.com/2")), |
266 Property(&ContentSuggestion::url, | 262 Property(&ContentSuggestion::url, GURL("http://dummy.com/3")))); |
267 GURL("http://dummy.com/3")))); | |
268 | 263 |
269 // Clear dismissed suggestions. | 264 // Clear dismissed suggestions. |
270 provider()->ClearDismissedSuggestionsForDebugging(recent_tabs_category()); | 265 provider()->ClearDismissedSuggestionsForDebugging(recent_tabs_category()); |
271 | 266 |
272 // They should be gone from the dismissed suggestions. | 267 // They should be gone from the dismissed suggestions. |
273 dismissed_suggestions.clear(); | 268 dismissed_suggestions.clear(); |
274 provider()->GetDismissedSuggestionsForDebugging( | 269 provider()->GetDismissedSuggestionsForDebugging( |
275 recent_tabs_category(), | 270 recent_tabs_category(), |
276 base::Bind(&CaptureDismissedSuggestions, &dismissed_suggestions)); | 271 base::Bind(&CaptureDismissedSuggestions, &dismissed_suggestions)); |
277 EXPECT_THAT(dismissed_suggestions, IsEmpty()); | 272 EXPECT_THAT(dismissed_suggestions, IsEmpty()); |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
431 Property(&ContentSuggestion::url, GURL("http://dummy.com/2"))))); | 426 Property(&ContentSuggestion::url, GURL("http://dummy.com/2"))))); |
432 | 427 |
433 AddTabAndOfflinePageToModel(CreateDummyRecentTab(1)); | 428 AddTabAndOfflinePageToModel(CreateDummyRecentTab(1)); |
434 AddTabAndOfflinePageToModel(CreateDummyRecentTab(2)); | 429 AddTabAndOfflinePageToModel(CreateDummyRecentTab(2)); |
435 // The provider is not notified about the recent tabs yet. | 430 // The provider is not notified about the recent tabs yet. |
436 task_runner()->RunUntilIdle(); | 431 task_runner()->RunUntilIdle(); |
437 // However, it must return both tabs when the model is loaded. | 432 // However, it must return both tabs when the model is loaded. |
438 } | 433 } |
439 | 434 |
440 } // namespace ntp_snippets | 435 } // namespace ntp_snippets |
OLD | NEW |