| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/precache/core/precache_fetcher.h" | 5 #include "components/precache/core/precache_fetcher.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <cstring> | 9 #include <cstring> |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 NotNull()))) | 256 NotNull()))) |
| 257 .Times(1); | 257 .Times(1); |
| 258 | 258 |
| 259 PrecacheFetcher::Fetcher precache_fetcher( | 259 PrecacheFetcher::Fetcher precache_fetcher( |
| 260 request_context_.get(), url, url.host(), callback_, | 260 request_context_.get(), url, url.host(), callback_, |
| 261 true /* is_resource_request */, SIZE_MAX); | 261 true /* is_resource_request */, SIZE_MAX); |
| 262 | 262 |
| 263 base::RunLoop().RunUntilIdle(); | 263 base::RunLoop().RunUntilIdle(); |
| 264 | 264 |
| 265 ASSERT_NE(nullptr, fetcher1); | 265 ASSERT_NE(nullptr, fetcher1); |
| 266 EXPECT_EQ(net::LOAD_ONLY_FROM_CACHE | kNoTracking, fetcher1->GetLoadFlags()); | 266 EXPECT_EQ( |
| 267 net::LOAD_ONLY_FROM_CACHE | net::LOAD_SKIP_CACHE_VALIDATION | kNoTracking, |
| 268 fetcher1->GetLoadFlags()); |
| 267 ASSERT_NE(nullptr, fetcher2); | 269 ASSERT_NE(nullptr, fetcher2); |
| 268 EXPECT_EQ(net::LOAD_VALIDATE_CACHE | kNoTracking, fetcher2->GetLoadFlags()); | 270 EXPECT_EQ(net::LOAD_VALIDATE_CACHE | kNoTracking, fetcher2->GetLoadFlags()); |
| 269 } | 271 } |
| 270 | 272 |
| 271 TEST_F(PrecacheFetcherFetcherTest, ResourceHasValidators) { | 273 TEST_F(PrecacheFetcherFetcherTest, ResourceHasValidators) { |
| 272 GURL url(kGoodResourceURL); | 274 GURL url(kGoodResourceURL); |
| 273 | 275 |
| 274 net::FakeURLFetcher *fetcher1 = nullptr, *fetcher2 = nullptr; | 276 net::FakeURLFetcher *fetcher1 = nullptr, *fetcher2 = nullptr; |
| 275 EXPECT_CALL(factory_, DoCreateURLFetcher(_, url, net::URLFetcher::GET, _)) | 277 EXPECT_CALL(factory_, DoCreateURLFetcher(_, url, net::URLFetcher::GET, _)) |
| 276 .WillOnce(factory_.RespondWith("", HasETag, &fetcher1)) | 278 .WillOnce(factory_.RespondWith("", HasETag, &fetcher1)) |
| 277 .WillOnce(factory_.RespondWith("", &fetcher2)); | 279 .WillOnce(factory_.RespondWith("", &fetcher2)); |
| 278 EXPECT_CALL(*this, | 280 EXPECT_CALL(*this, |
| 279 Callback(Property(&PrecacheFetcher::Fetcher::network_url_fetcher, | 281 Callback(Property(&PrecacheFetcher::Fetcher::network_url_fetcher, |
| 280 NotNull()))); | 282 NotNull()))); |
| 281 | 283 |
| 282 PrecacheFetcher::Fetcher precache_fetcher( | 284 PrecacheFetcher::Fetcher precache_fetcher( |
| 283 request_context_.get(), url, url.host(), callback_, | 285 request_context_.get(), url, url.host(), callback_, |
| 284 true /* is_resource_request */, SIZE_MAX); | 286 true /* is_resource_request */, SIZE_MAX); |
| 285 | 287 |
| 286 base::RunLoop().RunUntilIdle(); | 288 base::RunLoop().RunUntilIdle(); |
| 287 | 289 |
| 288 ASSERT_NE(nullptr, fetcher1); | 290 ASSERT_NE(nullptr, fetcher1); |
| 289 EXPECT_EQ(net::LOAD_ONLY_FROM_CACHE | kNoTracking, fetcher1->GetLoadFlags()); | 291 EXPECT_EQ( |
| 292 net::LOAD_ONLY_FROM_CACHE | net::LOAD_SKIP_CACHE_VALIDATION | kNoTracking, |
| 293 fetcher1->GetLoadFlags()); |
| 290 ASSERT_NE(nullptr, fetcher2); | 294 ASSERT_NE(nullptr, fetcher2); |
| 291 EXPECT_EQ(net::LOAD_VALIDATE_CACHE | kNoTracking, fetcher2->GetLoadFlags()); | 295 EXPECT_EQ(net::LOAD_VALIDATE_CACHE | kNoTracking, fetcher2->GetLoadFlags()); |
| 292 } | 296 } |
| 293 | 297 |
| 294 TEST_F(PrecacheFetcherFetcherTest, ResourceHasNoValidators) { | 298 TEST_F(PrecacheFetcherFetcherTest, ResourceHasNoValidators) { |
| 295 GURL url(kGoodResourceURL); | 299 GURL url(kGoodResourceURL); |
| 296 | 300 |
| 297 net::FakeURLFetcher* fetcher; | 301 net::FakeURLFetcher* fetcher; |
| 298 EXPECT_CALL(factory_, DoCreateURLFetcher(_, url, net::URLFetcher::GET, _)) | 302 EXPECT_CALL(factory_, DoCreateURLFetcher(_, url, net::URLFetcher::GET, _)) |
| 299 .WillOnce(factory_.RespondWith("", &fetcher)); | 303 .WillOnce(factory_.RespondWith("", &fetcher)); |
| 300 EXPECT_CALL(*this, | 304 EXPECT_CALL(*this, |
| 301 Callback(Property(&PrecacheFetcher::Fetcher::network_url_fetcher, | 305 Callback(Property(&PrecacheFetcher::Fetcher::network_url_fetcher, |
| 302 nullptr))); // It never reached the network. | 306 nullptr))); // It never reached the network. |
| 303 | 307 |
| 304 PrecacheFetcher::Fetcher precache_fetcher( | 308 PrecacheFetcher::Fetcher precache_fetcher( |
| 305 request_context_.get(), url, url.host(), callback_, | 309 request_context_.get(), url, url.host(), callback_, |
| 306 true /* is_resource_request */, SIZE_MAX); | 310 true /* is_resource_request */, SIZE_MAX); |
| 307 | 311 |
| 308 base::RunLoop().RunUntilIdle(); | 312 base::RunLoop().RunUntilIdle(); |
| 309 | 313 |
| 310 EXPECT_EQ(net::LOAD_ONLY_FROM_CACHE | kNoTracking, fetcher->GetLoadFlags()); | 314 EXPECT_EQ( |
| 315 net::LOAD_ONLY_FROM_CACHE | net::LOAD_SKIP_CACHE_VALIDATION | kNoTracking, |
| 316 fetcher->GetLoadFlags()); |
| 311 } | 317 } |
| 312 | 318 |
| 313 TEST_F(PrecacheFetcherFetcherTest, ResourceTooBig) { | 319 TEST_F(PrecacheFetcherFetcherTest, ResourceTooBig) { |
| 314 GURL url(kGoodResourceURL); | 320 GURL url(kGoodResourceURL); |
| 315 | 321 |
| 316 EXPECT_CALL(factory_, DoCreateURLFetcher(_, url, net::URLFetcher::GET, _)) | 322 EXPECT_CALL(factory_, DoCreateURLFetcher(_, url, net::URLFetcher::GET, _)) |
| 317 // Cache request will fail, so that a network request is made. Only | 323 // Cache request will fail, so that a network request is made. Only |
| 318 // network requests are byte-capped. | 324 // network requests are byte-capped. |
| 319 .WillOnce(factory_.RespondWith("", CacheMiss, nullptr)) | 325 .WillOnce(factory_.RespondWith("", CacheMiss, nullptr)) |
| 320 .WillOnce(factory_.RespondWith(std::string(100, '.'), nullptr)); | 326 .WillOnce(factory_.RespondWith(std::string(100, '.'), nullptr)); |
| (...skipping 1143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1464 EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls()); | 1470 EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls()); |
| 1465 | 1471 |
| 1466 EXPECT_TRUE(precache_delegate_.was_on_done_called()); | 1472 EXPECT_TRUE(precache_delegate_.was_on_done_called()); |
| 1467 | 1473 |
| 1468 histogram.ExpectTotalCount("Precache.Fetch.PercentCompleted", 2); | 1474 histogram.ExpectTotalCount("Precache.Fetch.PercentCompleted", 2); |
| 1469 histogram.ExpectTotalCount("Precache.Fetch.ResponseBytes.Total", 2); | 1475 histogram.ExpectTotalCount("Precache.Fetch.ResponseBytes.Total", 2); |
| 1470 histogram.ExpectTotalCount("Precache.Fetch.TimeToComplete", 2); | 1476 histogram.ExpectTotalCount("Precache.Fetch.TimeToComplete", 2); |
| 1471 } | 1477 } |
| 1472 | 1478 |
| 1473 } // namespace precache | 1479 } // namespace precache |
| OLD | NEW |