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

Side by Side Diff: components/ntp_tiles/popular_sites_unittest.cc

Issue 2570783003: [Popular Sites] Split PopularSites interface and PopularSitesImpl (Closed)
Patch Set: Rebased and minor naming change. Created 4 years 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 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_tiles/popular_sites.h" 5 #include "components/ntp_tiles/popular_sites.h"
6 6
7 #include <string> 7 #include <string>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 {kUrl, "https://m.youtube.com/"}, 61 {kUrl, "https://m.youtube.com/"},
62 {kLargeIconUrl, "https://s.ytimg.com/apple-touch-icon.png"}, 62 {kLargeIconUrl, "https://s.ytimg.com/apple-touch-icon.png"},
63 }, 63 },
64 kChromium{ 64 kChromium{
65 {kTitle, "The Chromium Project"}, 65 {kTitle, "The Chromium Project"},
66 {kUrl, "https://www.chromium.org/"}, 66 {kUrl, "https://www.chromium.org/"},
67 {kFaviconUrl, "https://www.chromium.org/favicon.ico"}, 67 {kFaviconUrl, "https://www.chromium.org/favicon.ico"},
68 }, 68 },
69 worker_pool_owner_(2, "PopularSitesTest."), 69 worker_pool_owner_(2, "PopularSitesTest."),
70 url_fetcher_factory_(nullptr) { 70 url_fetcher_factory_(nullptr) {
71 PopularSites::RegisterProfilePrefs(prefs_.registry()); 71 PopularSitesImpl::RegisterProfilePrefs(prefs_.registry());
72 CHECK(scoped_cache_dir_.CreateUniqueTempDir()); 72 CHECK(scoped_cache_dir_.CreateUniqueTempDir());
73 cache_dir_ = scoped_cache_dir_.GetPath(); 73 cache_dir_ = scoped_cache_dir_.GetPath();
74 } 74 }
75 75
76 void SetCountryAndVersion(const std::string& country, 76 void SetCountryAndVersion(const std::string& country,
77 const std::string& version) { 77 const std::string& version) {
78 prefs_.SetString(prefs::kPopularSitesOverrideCountry, country); 78 prefs_.SetString(prefs::kPopularSitesOverrideCountry, country);
79 prefs_.SetString(prefs::kPopularSitesOverrideVersion, version); 79 prefs_.SetString(prefs::kPopularSitesOverrideVersion, version);
80 } 80 }
81 81
(...skipping 17 matching lines...) Expand all
99 url_fetcher_factory_.SetFakeResponse(GURL(url), data, net::HTTP_OK, 99 url_fetcher_factory_.SetFakeResponse(GURL(url), data, net::HTTP_OK,
100 net::URLRequestStatus::SUCCESS); 100 net::URLRequestStatus::SUCCESS);
101 } 101 }
102 102
103 void RespondWith404(const std::string& url) { 103 void RespondWith404(const std::string& url) {
104 url_fetcher_factory_.SetFakeResponse(GURL(url), "404", net::HTTP_NOT_FOUND, 104 url_fetcher_factory_.SetFakeResponse(GURL(url), "404", net::HTTP_NOT_FOUND,
105 net::URLRequestStatus::SUCCESS); 105 net::URLRequestStatus::SUCCESS);
106 } 106 }
107 107
108 bool FetchPopularSites(bool force_download, 108 bool FetchPopularSites(bool force_download,
109 std::vector<PopularSites::Site>* sites) { 109 PopularSites::SitesVector* sites) {
110 scoped_refptr<net::TestURLRequestContextGetter> url_request_context( 110 scoped_refptr<net::TestURLRequestContextGetter> url_request_context(
111 new net::TestURLRequestContextGetter( 111 new net::TestURLRequestContextGetter(
112 base::ThreadTaskRunnerHandle::Get())); 112 base::ThreadTaskRunnerHandle::Get()));
113 PopularSites popular_sites(worker_pool_owner_.pool().get(), &prefs_, 113 PopularSitesImpl popular_sites(worker_pool_owner_.pool().get(), &prefs_,
114 /*template_url_service=*/nullptr, 114 /*template_url_service=*/nullptr,
115 /*variations_service=*/nullptr, 115 /*variations_service=*/nullptr,
116 url_request_context.get(), cache_dir_, 116 url_request_context.get(), cache_dir_,
117 base::Bind(JsonUnsafeParser::Parse)); 117 base::Bind(JsonUnsafeParser::Parse));
118 118
119 base::RunLoop loop; 119 base::RunLoop loop;
120 bool save_success = false; 120 bool save_success = false;
121 popular_sites.StartFetch( 121 popular_sites.StartFetch(
122 force_download, 122 force_download,
123 base::Bind( 123 base::Bind(
124 [](bool* save_success, base::RunLoop* loop, bool success) { 124 [](bool* save_success, base::RunLoop* loop, bool success) {
125 *save_success = success; 125 *save_success = success;
126 loop->Quit(); 126 loop->Quit();
127 }, 127 },
(...skipping 14 matching lines...) Expand all
142 sync_preferences::TestingPrefServiceSyncable prefs_; 142 sync_preferences::TestingPrefServiceSyncable prefs_;
143 net::FakeURLFetcherFactory url_fetcher_factory_; 143 net::FakeURLFetcherFactory url_fetcher_factory_;
144 }; 144 };
145 145
146 TEST_F(PopularSitesTest, Basic) { 146 TEST_F(PopularSitesTest, Basic) {
147 SetCountryAndVersion("ZZ", "9"); 147 SetCountryAndVersion("ZZ", "9");
148 RespondWithJSON( 148 RespondWithJSON(
149 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZZ_9.json", 149 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZZ_9.json",
150 {kWikipedia}); 150 {kWikipedia});
151 151
152 std::vector<PopularSites::Site> sites; 152 PopularSites::SitesVector sites;
153 EXPECT_TRUE(FetchPopularSites(/*force_download=*/false, &sites)); 153 EXPECT_TRUE(FetchPopularSites(/*force_download=*/false, &sites));
154 154
155 ASSERT_THAT(sites.size(), Eq(1u)); 155 ASSERT_THAT(sites.size(), Eq(1u));
156 EXPECT_THAT(sites[0].title, Str16Eq("Wikipedia, fhta Ph'nglui mglw'nafh")); 156 EXPECT_THAT(sites[0].title, Str16Eq("Wikipedia, fhta Ph'nglui mglw'nafh"));
157 EXPECT_THAT(sites[0].url, URLEq("https://zz.m.wikipedia.org/")); 157 EXPECT_THAT(sites[0].url, URLEq("https://zz.m.wikipedia.org/"));
158 EXPECT_THAT(sites[0].large_icon_url, 158 EXPECT_THAT(sites[0].large_icon_url,
159 URLEq("https://zz.m.wikipedia.org/wikipedia.png")); 159 URLEq("https://zz.m.wikipedia.org/wikipedia.png"));
160 EXPECT_THAT(sites[0].favicon_url, URLEq("")); 160 EXPECT_THAT(sites[0].favicon_url, URLEq(""));
161 } 161 }
162 162
163 TEST_F(PopularSitesTest, Fallback) { 163 TEST_F(PopularSitesTest, Fallback) {
164 SetCountryAndVersion("ZZ", "9"); 164 SetCountryAndVersion("ZZ", "9");
165 RespondWith404( 165 RespondWith404(
166 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZZ_9.json"); 166 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZZ_9.json");
167 RespondWithJSON( 167 RespondWithJSON(
168 "https://www.gstatic.com/chrome/ntp/suggested_sites_DEFAULT_5.json", 168 "https://www.gstatic.com/chrome/ntp/suggested_sites_DEFAULT_5.json",
169 {kYouTube, kChromium}); 169 {kYouTube, kChromium});
170 170
171 std::vector<PopularSites::Site> sites; 171 PopularSites::SitesVector sites;
172 EXPECT_TRUE(FetchPopularSites(/*force_download=*/false, &sites)); 172 EXPECT_TRUE(FetchPopularSites(/*force_download=*/false, &sites));
173 173
174 ASSERT_THAT(sites.size(), Eq(2u)); 174 ASSERT_THAT(sites.size(), Eq(2u));
175 EXPECT_THAT(sites[0].title, Str16Eq("YouTube")); 175 EXPECT_THAT(sites[0].title, Str16Eq("YouTube"));
176 EXPECT_THAT(sites[0].url, URLEq("https://m.youtube.com/")); 176 EXPECT_THAT(sites[0].url, URLEq("https://m.youtube.com/"));
177 EXPECT_THAT(sites[0].large_icon_url, 177 EXPECT_THAT(sites[0].large_icon_url,
178 URLEq("https://s.ytimg.com/apple-touch-icon.png")); 178 URLEq("https://s.ytimg.com/apple-touch-icon.png"));
179 EXPECT_THAT(sites[0].favicon_url, URLEq("")); 179 EXPECT_THAT(sites[0].favicon_url, URLEq(""));
180 EXPECT_THAT(sites[1].title, Str16Eq("The Chromium Project")); 180 EXPECT_THAT(sites[1].title, Str16Eq("The Chromium Project"));
181 EXPECT_THAT(sites[1].url, URLEq("https://www.chromium.org/")); 181 EXPECT_THAT(sites[1].url, URLEq("https://www.chromium.org/"));
182 EXPECT_THAT(sites[1].large_icon_url, URLEq("")); 182 EXPECT_THAT(sites[1].large_icon_url, URLEq(""));
183 EXPECT_THAT(sites[1].favicon_url, 183 EXPECT_THAT(sites[1].favicon_url,
184 URLEq("https://www.chromium.org/favicon.ico")); 184 URLEq("https://www.chromium.org/favicon.ico"));
185 } 185 }
186 186
187 TEST_F(PopularSitesTest, Failure) { 187 TEST_F(PopularSitesTest, Failure) {
188 SetCountryAndVersion("ZZ", "9"); 188 SetCountryAndVersion("ZZ", "9");
189 RespondWith404( 189 RespondWith404(
190 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZZ_9.json"); 190 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZZ_9.json");
191 RespondWith404( 191 RespondWith404(
192 "https://www.gstatic.com/chrome/ntp/suggested_sites_DEFAULT_5.json"); 192 "https://www.gstatic.com/chrome/ntp/suggested_sites_DEFAULT_5.json");
193 193
194 std::vector<PopularSites::Site> sites; 194 PopularSites::SitesVector sites;
195 EXPECT_FALSE(FetchPopularSites(/*force_download=*/false, &sites)); 195 EXPECT_FALSE(FetchPopularSites(/*force_download=*/false, &sites));
196 ASSERT_THAT(sites, IsEmpty()); 196 ASSERT_THAT(sites, IsEmpty());
197 } 197 }
198 198
199 TEST_F(PopularSitesTest, FailsWithoutFetchIfNoCacheDir) { 199 TEST_F(PopularSitesTest, FailsWithoutFetchIfNoCacheDir) {
200 SetCountryAndVersion("ZZ", "9"); 200 SetCountryAndVersion("ZZ", "9");
201 std::vector<PopularSites::Site> sites; 201 PopularSites::SitesVector sites;
202 cache_dir_ = base::FilePath(); // Override with invalid file path. 202 cache_dir_ = base::FilePath(); // Override with invalid file path.
203 EXPECT_FALSE(FetchPopularSites(/*force_download=*/false, &sites)); 203 EXPECT_FALSE(FetchPopularSites(/*force_download=*/false, &sites));
204 } 204 }
205 205
206 TEST_F(PopularSitesTest, UsesCachedFile) { 206 TEST_F(PopularSitesTest, UsesCachedFile) {
207 SetCountryAndVersion("ZZ", "9"); 207 SetCountryAndVersion("ZZ", "9");
208 RespondWithJSON( 208 RespondWithJSON(
209 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZZ_9.json", 209 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZZ_9.json",
210 {kWikipedia}); 210 {kWikipedia});
211 211
212 // First request succeeds and gets cached. 212 // First request succeeds and gets cached.
213 std::vector<PopularSites::Site> sites; 213 PopularSites::SitesVector sites;
214 EXPECT_TRUE(FetchPopularSites(/*force_download=*/false, &sites)); 214 EXPECT_TRUE(FetchPopularSites(/*force_download=*/false, &sites));
215 215
216 // File disappears from server, but we don't need it because it's cached. 216 // File disappears from server, but we don't need it because it's cached.
217 RespondWith404( 217 RespondWith404(
218 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZZ_9.json"); 218 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZZ_9.json");
219 EXPECT_TRUE(FetchPopularSites(/*force_download=*/false, &sites)); 219 EXPECT_TRUE(FetchPopularSites(/*force_download=*/false, &sites));
220 EXPECT_THAT(sites[0].url, URLEq("https://zz.m.wikipedia.org/")); 220 EXPECT_THAT(sites[0].url, URLEq("https://zz.m.wikipedia.org/"));
221 } 221 }
222 222
223 TEST_F(PopularSitesTest, CachesEmptyFile) { 223 TEST_F(PopularSitesTest, CachesEmptyFile) {
224 SetCountryAndVersion("ZZ", "9"); 224 SetCountryAndVersion("ZZ", "9");
225 RespondWithData( 225 RespondWithData(
226 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZZ_9.json", "[]"); 226 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZZ_9.json", "[]");
227 RespondWithJSON( 227 RespondWithJSON(
228 "https://www.gstatic.com/chrome/ntp/suggested_sites_DEFAULT_5.json", 228 "https://www.gstatic.com/chrome/ntp/suggested_sites_DEFAULT_5.json",
229 {kWikipedia}); 229 {kWikipedia});
230 230
231 // First request succeeds and caches empty suggestions list (no fallback). 231 // First request succeeds and caches empty suggestions list (no fallback).
232 std::vector<PopularSites::Site> sites; 232 PopularSites::SitesVector sites;
233 EXPECT_TRUE(FetchPopularSites(/*force_download=*/false, &sites)); 233 EXPECT_TRUE(FetchPopularSites(/*force_download=*/false, &sites));
234 EXPECT_THAT(sites, IsEmpty()); 234 EXPECT_THAT(sites, IsEmpty());
235 235
236 // File appears on server, but we continue to use our cached empty file. 236 // File appears on server, but we continue to use our cached empty file.
237 RespondWithJSON( 237 RespondWithJSON(
238 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZZ_9.json", 238 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZZ_9.json",
239 {kWikipedia}); 239 {kWikipedia});
240 EXPECT_TRUE(FetchPopularSites(/*force_download=*/false, &sites)); 240 EXPECT_TRUE(FetchPopularSites(/*force_download=*/false, &sites));
241 EXPECT_THAT(sites, IsEmpty()); 241 EXPECT_THAT(sites, IsEmpty());
242 } 242 }
243 243
244 TEST_F(PopularSitesTest, DoesntUseCachedFileIfDownloadForced) { 244 TEST_F(PopularSitesTest, DoesntUseCachedFileIfDownloadForced) {
245 SetCountryAndVersion("ZZ", "9"); 245 SetCountryAndVersion("ZZ", "9");
246 RespondWithJSON( 246 RespondWithJSON(
247 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZZ_9.json", 247 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZZ_9.json",
248 {kWikipedia}); 248 {kWikipedia});
249 249
250 // First request succeeds and gets cached. 250 // First request succeeds and gets cached.
251 std::vector<PopularSites::Site> sites; 251 PopularSites::SitesVector sites;
252 EXPECT_TRUE(FetchPopularSites(/*force_download=*/true, &sites)); 252 EXPECT_TRUE(FetchPopularSites(/*force_download=*/true, &sites));
253 EXPECT_THAT(sites[0].url, URLEq("https://zz.m.wikipedia.org/")); 253 EXPECT_THAT(sites[0].url, URLEq("https://zz.m.wikipedia.org/"));
254 254
255 // File disappears from server. Download is forced, so we get the new file. 255 // File disappears from server. Download is forced, so we get the new file.
256 RespondWithJSON( 256 RespondWithJSON(
257 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZZ_9.json", 257 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZZ_9.json",
258 {kChromium}); 258 {kChromium});
259 EXPECT_TRUE(FetchPopularSites(/*force_download=*/true, &sites)); 259 EXPECT_TRUE(FetchPopularSites(/*force_download=*/true, &sites));
260 EXPECT_THAT(sites[0].url, URLEq("https://www.chromium.org/")); 260 EXPECT_THAT(sites[0].url, URLEq("https://www.chromium.org/"));
261 } 261 }
262 262
263 TEST_F(PopularSitesTest, RefetchesAfterCountryMoved) { 263 TEST_F(PopularSitesTest, RefetchesAfterCountryMoved) {
264 RespondWithJSON( 264 RespondWithJSON(
265 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZZ_9.json", 265 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZZ_9.json",
266 {kWikipedia}); 266 {kWikipedia});
267 RespondWithJSON( 267 RespondWithJSON(
268 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZX_9.json", 268 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZX_9.json",
269 {kChromium}); 269 {kChromium});
270 270
271 std::vector<PopularSites::Site> sites; 271 PopularSites::SitesVector sites;
272 272
273 // First request (in ZZ) saves Wikipedia. 273 // First request (in ZZ) saves Wikipedia.
274 SetCountryAndVersion("ZZ", "9"); 274 SetCountryAndVersion("ZZ", "9");
275 EXPECT_TRUE(FetchPopularSites(/*force_download=*/false, &sites)); 275 EXPECT_TRUE(FetchPopularSites(/*force_download=*/false, &sites));
276 EXPECT_THAT(sites[0].url, URLEq("https://zz.m.wikipedia.org/")); 276 EXPECT_THAT(sites[0].url, URLEq("https://zz.m.wikipedia.org/"));
277 277
278 // Second request (now in ZX) saves Chromium. 278 // Second request (now in ZX) saves Chromium.
279 SetCountryAndVersion("ZX", "9"); 279 SetCountryAndVersion("ZX", "9");
280 EXPECT_TRUE(FetchPopularSites(/*force_download=*/false, &sites)); 280 EXPECT_TRUE(FetchPopularSites(/*force_download=*/false, &sites));
281 EXPECT_THAT(sites[0].url, URLEq("https://www.chromium.org/")); 281 EXPECT_THAT(sites[0].url, URLEq("https://www.chromium.org/"));
282 } 282 }
283 283
284 TEST_F(PopularSitesTest, DoesntCacheInvalidFile) { 284 TEST_F(PopularSitesTest, DoesntCacheInvalidFile) {
285 SetCountryAndVersion("ZZ", "9"); 285 SetCountryAndVersion("ZZ", "9");
286 RespondWithData( 286 RespondWithData(
287 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZZ_9.json", 287 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZZ_9.json",
288 "ceci n'est pas un json"); 288 "ceci n'est pas un json");
289 RespondWith404( 289 RespondWith404(
290 "https://www.gstatic.com/chrome/ntp/suggested_sites_DEFAULT_5.json"); 290 "https://www.gstatic.com/chrome/ntp/suggested_sites_DEFAULT_5.json");
291 291
292 // First request falls back and gets nothing there either. 292 // First request falls back and gets nothing there either.
293 std::vector<PopularSites::Site> sites; 293 PopularSites::SitesVector sites;
294 EXPECT_FALSE(FetchPopularSites(/*force_download=*/false, &sites)); 294 EXPECT_FALSE(FetchPopularSites(/*force_download=*/false, &sites));
295 295
296 // Second request refetches ZZ_9, which now has data. 296 // Second request refetches ZZ_9, which now has data.
297 RespondWithJSON( 297 RespondWithJSON(
298 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZZ_9.json", 298 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZZ_9.json",
299 {kChromium}); 299 {kChromium});
300 EXPECT_TRUE(FetchPopularSites(/*force_download=*/false, &sites)); 300 EXPECT_TRUE(FetchPopularSites(/*force_download=*/false, &sites));
301 ASSERT_THAT(sites.size(), Eq(1u)); 301 ASSERT_THAT(sites.size(), Eq(1u));
302 EXPECT_THAT(sites[0].url, URLEq("https://www.chromium.org/")); 302 EXPECT_THAT(sites[0].url, URLEq("https://www.chromium.org/"));
303 } 303 }
304 304
305 TEST_F(PopularSitesTest, RefetchesAfterFallback) { 305 TEST_F(PopularSitesTest, RefetchesAfterFallback) {
306 SetCountryAndVersion("ZZ", "9"); 306 SetCountryAndVersion("ZZ", "9");
307 RespondWith404( 307 RespondWith404(
308 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZZ_9.json"); 308 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZZ_9.json");
309 RespondWithJSON( 309 RespondWithJSON(
310 "https://www.gstatic.com/chrome/ntp/suggested_sites_DEFAULT_5.json", 310 "https://www.gstatic.com/chrome/ntp/suggested_sites_DEFAULT_5.json",
311 {kWikipedia}); 311 {kWikipedia});
312 312
313 // First request falls back. 313 // First request falls back.
314 std::vector<PopularSites::Site> sites; 314 PopularSites::SitesVector sites;
315 EXPECT_TRUE(FetchPopularSites(/*force_download=*/false, &sites)); 315 EXPECT_TRUE(FetchPopularSites(/*force_download=*/false, &sites));
316 ASSERT_THAT(sites.size(), Eq(1u)); 316 ASSERT_THAT(sites.size(), Eq(1u));
317 EXPECT_THAT(sites[0].url, URLEq("https://zz.m.wikipedia.org/")); 317 EXPECT_THAT(sites[0].url, URLEq("https://zz.m.wikipedia.org/"));
318 318
319 // Second request refetches ZZ_9, which now has data. 319 // Second request refetches ZZ_9, which now has data.
320 RespondWithJSON( 320 RespondWithJSON(
321 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZZ_9.json", 321 "https://www.gstatic.com/chrome/ntp/suggested_sites_ZZ_9.json",
322 {kChromium}); 322 {kChromium});
323 EXPECT_TRUE(FetchPopularSites(/*force_download=*/false, &sites)); 323 EXPECT_TRUE(FetchPopularSites(/*force_download=*/false, &sites));
324 ASSERT_THAT(sites.size(), Eq(1u)); 324 ASSERT_THAT(sites.size(), Eq(1u));
325 EXPECT_THAT(sites[0].url, URLEq("https://www.chromium.org/")); 325 EXPECT_THAT(sites[0].url, URLEq("https://www.chromium.org/"));
326 } 326 }
327 327
328 } // namespace 328 } // namespace
329 } // namespace ntp_tiles 329 } // namespace ntp_tiles
OLDNEW
« no previous file with comments | « components/ntp_tiles/popular_sites.cc ('k') | components/ntp_tiles/webui/ntp_tiles_internals_message_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698