| 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_FALSE( | 221   EXPECT_FALSE( | 
| 226       provider()->GetCategoryInfo(recent_tabs_category()).has_fetch_action()); | 222       provider()->GetCategoryInfo(recent_tabs_category()).has_fetch_action()); | 
| 227   EXPECT_FALSE(provider() | 223   EXPECT_FALSE(provider() | 
| 228                    ->GetCategoryInfo(recent_tabs_category()) | 224                    ->GetCategoryInfo(recent_tabs_category()) | 
| 229                    .has_view_all_action()); | 225                    .has_view_all_action()); | 
| 230 } | 226 } | 
| (...skipping 25 matching lines...) Expand all  Loading... | 
| 256   AddTabAndOfflinePageToModel(CreateDummyRecentTab(4)); | 252   AddTabAndOfflinePageToModel(CreateDummyRecentTab(4)); | 
| 257   Mock::VerifyAndClearExpectations(observer()); | 253   Mock::VerifyAndClearExpectations(observer()); | 
| 258 | 254 | 
| 259   // And appear in the dismissed suggestions. | 255   // And appear in the dismissed suggestions. | 
| 260   std::vector<ContentSuggestion> dismissed_suggestions; | 256   std::vector<ContentSuggestion> dismissed_suggestions; | 
| 261   provider()->GetDismissedSuggestionsForDebugging( | 257   provider()->GetDismissedSuggestionsForDebugging( | 
| 262       recent_tabs_category(), | 258       recent_tabs_category(), | 
| 263       base::Bind(&CaptureDismissedSuggestions, &dismissed_suggestions)); | 259       base::Bind(&CaptureDismissedSuggestions, &dismissed_suggestions)); | 
| 264   EXPECT_THAT( | 260   EXPECT_THAT( | 
| 265       dismissed_suggestions, | 261       dismissed_suggestions, | 
| 266       UnorderedElementsAre(Property(&ContentSuggestion::url, | 262       UnorderedElementsAre( | 
| 267                                     GURL("http://dummy.com/2")), | 263           Property(&ContentSuggestion::url, GURL("http://dummy.com/2")), | 
| 268                            Property(&ContentSuggestion::url, | 264           Property(&ContentSuggestion::url, GURL("http://dummy.com/3")))); | 
| 269                                     GURL("http://dummy.com/3")))); |  | 
| 270 | 265 | 
| 271   // Clear dismissed suggestions. | 266   // Clear dismissed suggestions. | 
| 272   provider()->ClearDismissedSuggestionsForDebugging(recent_tabs_category()); | 267   provider()->ClearDismissedSuggestionsForDebugging(recent_tabs_category()); | 
| 273 | 268 | 
| 274   // They should be gone from the dismissed suggestions. | 269   // They should be gone from the dismissed suggestions. | 
| 275   dismissed_suggestions.clear(); | 270   dismissed_suggestions.clear(); | 
| 276   provider()->GetDismissedSuggestionsForDebugging( | 271   provider()->GetDismissedSuggestionsForDebugging( | 
| 277       recent_tabs_category(), | 272       recent_tabs_category(), | 
| 278       base::Bind(&CaptureDismissedSuggestions, &dismissed_suggestions)); | 273       base::Bind(&CaptureDismissedSuggestions, &dismissed_suggestions)); | 
| 279   EXPECT_THAT(dismissed_suggestions, IsEmpty()); | 274   EXPECT_THAT(dismissed_suggestions, IsEmpty()); | 
| (...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 433               Property(&ContentSuggestion::url, GURL("http://dummy.com/2"))))); | 428               Property(&ContentSuggestion::url, GURL("http://dummy.com/2"))))); | 
| 434 | 429 | 
| 435   AddTabAndOfflinePageToModel(CreateDummyRecentTab(1)); | 430   AddTabAndOfflinePageToModel(CreateDummyRecentTab(1)); | 
| 436   AddTabAndOfflinePageToModel(CreateDummyRecentTab(2)); | 431   AddTabAndOfflinePageToModel(CreateDummyRecentTab(2)); | 
| 437   // The provider is not notified about the recent tabs yet. | 432   // The provider is not notified about the recent tabs yet. | 
| 438   task_runner()->RunUntilIdle(); | 433   task_runner()->RunUntilIdle(); | 
| 439   // However, it must return both tabs when the model is loaded. | 434   // However, it must return both tabs when the model is loaded. | 
| 440 } | 435 } | 
| 441 | 436 | 
| 442 }  // namespace ntp_snippets | 437 }  // namespace ntp_snippets | 
| OLD | NEW | 
|---|