| 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 |