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

Side by Side Diff: net/http/http_cache_unittest.cc

Issue 1039263002: //net changes for stale-while-revalidate (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@s-w-r-remove-old-impl
Patch Set: Changes suggested by rvargas. Created 5 years, 4 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
« no previous file with comments | « net/http/http_cache_transaction.cc ('k') | net/http/http_response_info.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "net/http/http_cache.h" 5 #include "net/http/http_cache.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 7359 matching lines...) Expand 10 before | Expand all | Expand 10 after
7370 EXPECT_EQ(1, cache.network_layer()->transaction_count()); 7370 EXPECT_EQ(1, cache.network_layer()->transaction_count());
7371 7371
7372 // Send the request again and check that Resource-Freshness header is absent. 7372 // Send the request again and check that Resource-Freshness header is absent.
7373 stale_while_revalidate_transaction.handler = CheckResourceFreshnessAbsent; 7373 stale_while_revalidate_transaction.handler = CheckResourceFreshnessAbsent;
7374 7374
7375 RunTransactionTest(cache.http_cache(), stale_while_revalidate_transaction); 7375 RunTransactionTest(cache.http_cache(), stale_while_revalidate_transaction);
7376 7376
7377 EXPECT_EQ(2, cache.network_layer()->transaction_count()); 7377 EXPECT_EQ(2, cache.network_layer()->transaction_count());
7378 } 7378 }
7379 7379
7380 TEST(HttpCache, StaleContentNotUsedWhenLoadFlagNotSet) {
7381 MockHttpCache cache;
7382
7383 ScopedMockTransaction stale_while_revalidate_transaction(
7384 kSimpleGET_Transaction);
7385
7386 stale_while_revalidate_transaction.response_headers =
7387 "Last-Modified: Sat, 18 Apr 2007 01:10:43 GMT\n"
7388 "Age: 10801\n"
7389 "Cache-Control: max-age=0,stale-while-revalidate=86400\n";
7390
7391 // Write to the cache.
7392 RunTransactionTest(cache.http_cache(), stale_while_revalidate_transaction);
7393
7394 EXPECT_EQ(1, cache.network_layer()->transaction_count());
7395
7396 // Send the request again and check that it is sent to the network again.
7397 HttpResponseInfo response_info;
7398 RunTransactionTestWithResponseInfo(
7399 cache.http_cache(), stale_while_revalidate_transaction, &response_info);
7400
7401 EXPECT_EQ(2, cache.network_layer()->transaction_count());
7402 EXPECT_FALSE(response_info.async_revalidation_required);
7403 }
7404
7405 TEST(HttpCache, StaleContentUsedWhenLoadFlagSetAndUsable) {
7406 MockHttpCache cache;
7407
7408 ScopedMockTransaction stale_while_revalidate_transaction(
7409 kSimpleGET_Transaction);
7410 stale_while_revalidate_transaction.load_flags |=
7411 LOAD_SUPPORT_ASYNC_REVALIDATION;
7412 stale_while_revalidate_transaction.response_headers =
7413 "Last-Modified: Sat, 18 Apr 2007 01:10:43 GMT\n"
7414 "Age: 10801\n"
7415 "Cache-Control: max-age=0,stale-while-revalidate=86400\n";
7416
7417 // Write to the cache.
7418 RunTransactionTest(cache.http_cache(), stale_while_revalidate_transaction);
7419
7420 EXPECT_EQ(1, cache.network_layer()->transaction_count());
7421
7422 // Send the request again and check that it is not sent to the network again.
7423 HttpResponseInfo response_info;
7424 RunTransactionTestWithResponseInfo(
7425 cache.http_cache(), stale_while_revalidate_transaction, &response_info);
7426
7427 EXPECT_EQ(1, cache.network_layer()->transaction_count());
7428 EXPECT_TRUE(response_info.async_revalidation_required);
7429 }
7430
7431 TEST(HttpCache, StaleContentNotUsedWhenUnusable) {
7432 MockHttpCache cache;
7433
7434 ScopedMockTransaction stale_while_revalidate_transaction(
7435 kSimpleGET_Transaction);
7436 stale_while_revalidate_transaction.load_flags |=
7437 LOAD_SUPPORT_ASYNC_REVALIDATION;
7438 stale_while_revalidate_transaction.response_headers =
7439 "Last-Modified: Sat, 18 Apr 2007 01:10:43 GMT\n"
7440 "Age: 10801\n"
7441 "Cache-Control: max-age=0,stale-while-revalidate=1800\n";
7442
7443 // Write to the cache.
7444 RunTransactionTest(cache.http_cache(), stale_while_revalidate_transaction);
7445
7446 EXPECT_EQ(1, cache.network_layer()->transaction_count());
7447
7448 // Send the request again and check that it is sent to the network again.
7449 HttpResponseInfo response_info;
7450 RunTransactionTestWithResponseInfo(
7451 cache.http_cache(), stale_while_revalidate_transaction, &response_info);
7452
7453 EXPECT_EQ(2, cache.network_layer()->transaction_count());
7454 EXPECT_FALSE(response_info.async_revalidation_required);
7455 }
7456
7380 // Tests that we allow multiple simultaneous, non-overlapping transactions to 7457 // Tests that we allow multiple simultaneous, non-overlapping transactions to
7381 // take place on a sparse entry. 7458 // take place on a sparse entry.
7382 TEST(HttpCache, RangeGET_MultipleRequests) { 7459 TEST(HttpCache, RangeGET_MultipleRequests) {
7383 MockHttpCache cache; 7460 MockHttpCache cache;
7384 7461
7385 // Create a transaction for bytes 0-9. 7462 // Create a transaction for bytes 0-9.
7386 MockHttpRequest request(kRangeGET_TransactionOK); 7463 MockHttpRequest request(kRangeGET_TransactionOK);
7387 MockTransaction transaction(kRangeGET_TransactionOK); 7464 MockTransaction transaction(kRangeGET_TransactionOK);
7388 transaction.request_headers = "Range: bytes = 0-9\r\n" EXTRA_HEADER; 7465 transaction.request_headers = "Range: bytes = 0-9\r\n" EXTRA_HEADER;
7389 transaction.data = "rg: 00-09 "; 7466 transaction.data = "rg: 00-09 ";
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
7554 EXPECT_EQ(1, cache.disk_cache()->open_count()); 7631 EXPECT_EQ(1, cache.disk_cache()->open_count());
7555 EXPECT_EQ(1, cache.disk_cache()->create_count()); 7632 EXPECT_EQ(1, cache.disk_cache()->create_count());
7556 EXPECT_TRUE(response_info.was_cached); 7633 EXPECT_TRUE(response_info.was_cached);
7557 7634
7558 // The new SSL state is reported. 7635 // The new SSL state is reported.
7559 EXPECT_EQ(status2, response_info.ssl_info.connection_status); 7636 EXPECT_EQ(status2, response_info.ssl_info.connection_status);
7560 EXPECT_TRUE(cert2->Equals(response_info.ssl_info.cert.get())); 7637 EXPECT_TRUE(cert2->Equals(response_info.ssl_info.cert.get()));
7561 } 7638 }
7562 7639
7563 } // namespace net 7640 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_cache_transaction.cc ('k') | net/http/http_response_info.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698