| Index: net/http/http_cache_unittest.cc
|
| diff --git a/net/http/http_cache_unittest.cc b/net/http/http_cache_unittest.cc
|
| index 8d62ee0b4d59c7d2d03d6b36a555c1a580c1883a..779af46f7c7f1d9ee2a0e6cc78d70e6fe41b2cf6 100644
|
| --- a/net/http/http_cache_unittest.cc
|
| +++ b/net/http/http_cache_unittest.cc
|
| @@ -7377,6 +7377,83 @@ TEST(HttpCache, ResourceFreshnessHeaderNotSent) {
|
| EXPECT_EQ(2, cache.network_layer()->transaction_count());
|
| }
|
|
|
| +TEST(HttpCache, StaleContentNotUsedWhenLoadFlagNotSet) {
|
| + MockHttpCache cache;
|
| +
|
| + ScopedMockTransaction stale_while_revalidate_transaction(
|
| + kSimpleGET_Transaction);
|
| +
|
| + stale_while_revalidate_transaction.response_headers =
|
| + "Last-Modified: Sat, 18 Apr 2007 01:10:43 GMT\n"
|
| + "Age: 10801\n"
|
| + "Cache-Control: max-age=0,stale-while-revalidate=86400\n";
|
| +
|
| + // Write to the cache.
|
| + RunTransactionTest(cache.http_cache(), stale_while_revalidate_transaction);
|
| +
|
| + EXPECT_EQ(1, cache.network_layer()->transaction_count());
|
| +
|
| + // Send the request again and check that it is sent to the network again.
|
| + HttpResponseInfo response_info;
|
| + RunTransactionTestWithResponseInfo(
|
| + cache.http_cache(), stale_while_revalidate_transaction, &response_info);
|
| +
|
| + EXPECT_EQ(2, cache.network_layer()->transaction_count());
|
| + EXPECT_FALSE(response_info.async_revalidation_required);
|
| +}
|
| +
|
| +TEST(HttpCache, StaleContentUsedWhenLoadFlagSetAndUsable) {
|
| + MockHttpCache cache;
|
| +
|
| + ScopedMockTransaction stale_while_revalidate_transaction(
|
| + kSimpleGET_Transaction);
|
| + stale_while_revalidate_transaction.load_flags |=
|
| + LOAD_SUPPORT_ASYNC_REVALIDATION;
|
| + stale_while_revalidate_transaction.response_headers =
|
| + "Last-Modified: Sat, 18 Apr 2007 01:10:43 GMT\n"
|
| + "Age: 10801\n"
|
| + "Cache-Control: max-age=0,stale-while-revalidate=86400\n";
|
| +
|
| + // Write to the cache.
|
| + RunTransactionTest(cache.http_cache(), stale_while_revalidate_transaction);
|
| +
|
| + EXPECT_EQ(1, cache.network_layer()->transaction_count());
|
| +
|
| + // Send the request again and check that it is not sent to the network again.
|
| + HttpResponseInfo response_info;
|
| + RunTransactionTestWithResponseInfo(
|
| + cache.http_cache(), stale_while_revalidate_transaction, &response_info);
|
| +
|
| + EXPECT_EQ(1, cache.network_layer()->transaction_count());
|
| + EXPECT_TRUE(response_info.async_revalidation_required);
|
| +}
|
| +
|
| +TEST(HttpCache, StaleContentNotUsedWhenUnusable) {
|
| + MockHttpCache cache;
|
| +
|
| + ScopedMockTransaction stale_while_revalidate_transaction(
|
| + kSimpleGET_Transaction);
|
| + stale_while_revalidate_transaction.load_flags |=
|
| + LOAD_SUPPORT_ASYNC_REVALIDATION;
|
| + stale_while_revalidate_transaction.response_headers =
|
| + "Last-Modified: Sat, 18 Apr 2007 01:10:43 GMT\n"
|
| + "Age: 10801\n"
|
| + "Cache-Control: max-age=0,stale-while-revalidate=1800\n";
|
| +
|
| + // Write to the cache.
|
| + RunTransactionTest(cache.http_cache(), stale_while_revalidate_transaction);
|
| +
|
| + EXPECT_EQ(1, cache.network_layer()->transaction_count());
|
| +
|
| + // Send the request again and check that it is sent to the network again.
|
| + HttpResponseInfo response_info;
|
| + RunTransactionTestWithResponseInfo(
|
| + cache.http_cache(), stale_while_revalidate_transaction, &response_info);
|
| +
|
| + EXPECT_EQ(2, cache.network_layer()->transaction_count());
|
| + EXPECT_FALSE(response_info.async_revalidation_required);
|
| +}
|
| +
|
| // Tests that we allow multiple simultaneous, non-overlapping transactions to
|
| // take place on a sparse entry.
|
| TEST(HttpCache, RangeGET_MultipleRequests) {
|
|
|