OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |