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

Side by Side Diff: chrome/browser/predictors/resource_prefetcher_unittest.cc

Issue 2688633002: predictors: Add prefetching hit/miss histograms. (Closed)
Patch Set: Now with a test. Created 3 years, 10 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/predictors/resource_prefetcher.h" 5 #include "chrome/browser/predictors/resource_prefetcher.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory> 9 #include <memory>
10 #include <string> 10 #include <string>
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 public: 60 public:
61 explicit TestResourcePrefetcherDelegate(base::MessageLoop* loop) 61 explicit TestResourcePrefetcherDelegate(base::MessageLoop* loop)
62 : request_context_getter_( 62 : request_context_getter_(
63 new net::TestURLRequestContextGetter(loop->task_runner())) {} 63 new net::TestURLRequestContextGetter(loop->task_runner())) {}
64 ~TestResourcePrefetcherDelegate() { } 64 ~TestResourcePrefetcherDelegate() { }
65 65
66 net::URLRequestContext* GetURLRequestContext() override { 66 net::URLRequestContext* GetURLRequestContext() override {
67 return request_context_getter_->GetURLRequestContext(); 67 return request_context_getter_->GetURLRequestContext();
68 } 68 }
69 69
70 MOCK_METHOD1(ResourcePrefetcherFinished, 70 MOCK_METHOD2(ResourcePrefetcherFinished,
71 void(ResourcePrefetcher* prefetcher)); 71 void(ResourcePrefetcher* prefetcher,
72 const ResourcePrefetcher::PrefetcherStats&));
72 73
73 private: 74 private:
74 scoped_refptr<net::TestURLRequestContextGetter> request_context_getter_; 75 scoped_refptr<net::TestURLRequestContextGetter> request_context_getter_;
75 76
76 DISALLOW_COPY_AND_ASSIGN(TestResourcePrefetcherDelegate); 77 DISALLOW_COPY_AND_ASSIGN(TestResourcePrefetcherDelegate);
77 }; 78 };
78 79
79 80
80 // The following unittest tests most of the ResourcePrefetcher except for: 81 // The following unittest tests most of the ResourcePrefetcher except for:
81 // 1. Call to ReadFullResponse. There does not seem to be a good way to test the 82 // 1. Call to ReadFullResponse. There does not seem to be a good way to test the
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 CheckPrefetcherState(3, 0, 2); 216 CheckPrefetcherState(3, 0, 2);
216 217
217 OnCertificateRequested("http://m.google.com/resource4.png"); 218 OnCertificateRequested("http://m.google.com/resource4.png");
218 CheckPrefetcherState(2, 0, 2); 219 CheckPrefetcherState(2, 0, 2);
219 220
220 OnAuthRequired("http://m.google.com/resource3.css"); 221 OnAuthRequired("http://m.google.com/resource3.css");
221 CheckPrefetcherState(1, 0, 1); 222 CheckPrefetcherState(1, 0, 1);
222 223
223 // Expect the final call. 224 // Expect the final call.
224 EXPECT_CALL(prefetcher_delegate_, 225 EXPECT_CALL(prefetcher_delegate_,
225 ResourcePrefetcherFinished(Eq(prefetcher_.get()))); 226 ResourcePrefetcherFinished(Eq(prefetcher_.get()), testing::_));
226 227
227 OnResponse("http://yahoo.com/resource3.png"); 228 OnResponse("http://yahoo.com/resource3.png");
228 CheckPrefetcherState(0, 0, 0); 229 CheckPrefetcherState(0, 0, 0);
229 } 230 }
230 231
231 TEST_F(ResourcePrefetcherTest, TestPrefetcherStopped) { 232 TEST_F(ResourcePrefetcherTest, TestPrefetcherStopped) {
232 GURL main_frame_url("http://www.google.com"); 233 GURL main_frame_url("http://www.google.com");
233 std::vector<GURL> urls = {GURL("http://www.google.com/resource1.html"), 234 std::vector<GURL> urls = {GURL("http://www.google.com/resource1.html"),
234 GURL("http://www.google.com/resource2.png"), 235 GURL("http://www.google.com/resource2.png"),
235 GURL("http://yahoo.com/resource1.png"), 236 GURL("http://yahoo.com/resource1.png"),
(...skipping 23 matching lines...) Expand all
259 CheckPrefetcherState(3, 1, 2); 260 CheckPrefetcherState(3, 1, 2);
260 261
261 OnResponse("http://yahoo.com/resource1.png"); 262 OnResponse("http://yahoo.com/resource1.png");
262 CheckPrefetcherState(2, 1, 2); 263 CheckPrefetcherState(2, 1, 2);
263 264
264 OnResponse("http://yahoo.com/resource2.png"); 265 OnResponse("http://yahoo.com/resource2.png");
265 CheckPrefetcherState(1, 1, 1); 266 CheckPrefetcherState(1, 1, 1);
266 267
267 // Expect the final call. 268 // Expect the final call.
268 EXPECT_CALL(prefetcher_delegate_, 269 EXPECT_CALL(prefetcher_delegate_,
269 ResourcePrefetcherFinished(Eq(prefetcher_.get()))); 270 ResourcePrefetcherFinished(Eq(prefetcher_.get()), testing::_));
270 271
271 OnResponse("http://m.google.com/resource1.jpg"); 272 OnResponse("http://m.google.com/resource1.jpg");
272 CheckPrefetcherState(0, 1, 0); 273 CheckPrefetcherState(0, 1, 0);
273 } 274 }
274 275
275 TEST_F(ResourcePrefetcherTest, TestHistogramsCollected) { 276 TEST_F(ResourcePrefetcherTest, TestHistogramsCollected) {
276 base::HistogramTester histogram_tester; 277 base::HistogramTester histogram_tester;
277 GURL main_frame_url("http://www.google.com"); 278 GURL main_frame_url("http://www.google.com");
278 std::vector<GURL> urls = {GURL("http://www.google.com/resource1.png"), 279 std::vector<GURL> urls = {GURL("http://www.google.com/resource1.png"),
279 GURL("http://www.google.com/resource2.png"), 280 GURL("http://www.google.com/resource2.png"),
(...skipping 25 matching lines...) Expand all
305 OnAuthRequired("http://www.google.com/resource3.png"); 306 OnAuthRequired("http://www.google.com/resource3.png");
306 307
307 OnCertificateRequested("http://www.google.com/resource4.png"); 308 OnCertificateRequested("http://www.google.com/resource4.png");
308 309
309 OnSSLCertificateError("http://www.google.com/resource5.png"); 310 OnSSLCertificateError("http://www.google.com/resource5.png");
310 histogram_tester.ExpectTotalCount( 311 histogram_tester.ExpectTotalCount(
311 internal::kResourcePrefetchPredictorCachePatternHistogram, 1); 312 internal::kResourcePrefetchPredictorCachePatternHistogram, 1);
312 313
313 // Expect the final call. 314 // Expect the final call.
314 EXPECT_CALL(prefetcher_delegate_, 315 EXPECT_CALL(prefetcher_delegate_,
315 ResourcePrefetcherFinished(Eq(prefetcher_.get()))); 316 ResourcePrefetcherFinished(Eq(prefetcher_.get()), testing::_));
316 317
317 OnResponse("http://www.google.com/resource6.png"); 318 OnResponse("http://www.google.com/resource6.png");
318 histogram_tester.ExpectTotalCount( 319 histogram_tester.ExpectTotalCount(
319 internal::kResourcePrefetchPredictorCachePatternHistogram, 2); 320 internal::kResourcePrefetchPredictorCachePatternHistogram, 2);
320 histogram_tester.ExpectBucketCount( 321 histogram_tester.ExpectBucketCount(
321 internal::kResourcePrefetchPredictorPrefetchedCountHistogram, 2, 1); 322 internal::kResourcePrefetchPredictorPrefetchedCountHistogram, 2, 1);
322 histogram_tester.ExpectTotalCount( 323 histogram_tester.ExpectTotalCount(
323 internal::kResourcePrefetchPredictorPrefetchedSizeHistogram, 1); 324 internal::kResourcePrefetchPredictorPrefetchedSizeHistogram, 1);
324 } 325 }
325 326
326 } // namespace predictors 327 } // namespace predictors
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698