Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 3634 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3645 transaction.status = "HTTP/1.1 416 Requested Range Not Satisfiable"; | 3645 transaction.status = "HTTP/1.1 416 Requested Range Not Satisfiable"; |
| 3646 RunTransactionTest(cache.http_cache(), transaction); | 3646 RunTransactionTest(cache.http_cache(), transaction); |
| 3647 | 3647 |
| 3648 EXPECT_EQ(1, cache.network_layer()->transaction_count()); | 3648 EXPECT_EQ(1, cache.network_layer()->transaction_count()); |
| 3649 EXPECT_EQ(0, cache.disk_cache()->open_count()); | 3649 EXPECT_EQ(0, cache.disk_cache()->open_count()); |
| 3650 EXPECT_EQ(1, cache.disk_cache()->create_count()); | 3650 EXPECT_EQ(1, cache.disk_cache()->create_count()); |
| 3651 | 3651 |
| 3652 RemoveMockTransaction(&transaction); | 3652 RemoveMockTransaction(&transaction); |
| 3653 } | 3653 } |
| 3654 | 3654 |
| 3655 // Tests that we don't cache partial responses that can't be validated. | 3655 // Tests that we cache partial responses that can't be validated. |
|
davidben
2014/08/29 18:03:23
Nit: Does this seem clearer/accurate?
// Tests
rvargas (doing something else)
2014/08/29 19:34:27
I used "Tests that we store partial responses that
| |
| 3656 TEST(HttpCache, RangeGET_NoStrongValidators) { | 3656 TEST(HttpCache, RangeGET_NoStrongValidators) { |
| 3657 MockHttpCache cache; | 3657 MockHttpCache cache; |
| 3658 std::string headers; | 3658 std::string headers; |
| 3659 | 3659 |
| 3660 // Attempt to write to the cache (40-49). | 3660 // Write to the cache (40-49). |
| 3661 MockTransaction transaction(kRangeGET_TransactionOK); | 3661 MockTransaction transaction(kRangeGET_TransactionOK); |
| 3662 AddMockTransaction(&transaction); | 3662 AddMockTransaction(&transaction); |
| 3663 transaction.response_headers = "Content-Length: 10\n" | 3663 transaction.response_headers = "Content-Length: 10\n" |
| 3664 "Cache-Control: max-age=3600\n" | |
| 3664 "ETag: w/\"foo\"\n"; | 3665 "ETag: w/\"foo\"\n"; |
| 3665 RunTransactionTestWithResponse(cache.http_cache(), transaction, &headers); | 3666 RunTransactionTestWithResponse(cache.http_cache(), transaction, &headers); |
| 3666 | 3667 |
| 3667 Verify206Response(headers, 40, 49); | 3668 Verify206Response(headers, 40, 49); |
| 3668 EXPECT_EQ(1, cache.network_layer()->transaction_count()); | 3669 EXPECT_EQ(1, cache.network_layer()->transaction_count()); |
| 3669 EXPECT_EQ(0, cache.disk_cache()->open_count()); | 3670 EXPECT_EQ(0, cache.disk_cache()->open_count()); |
| 3670 EXPECT_EQ(1, cache.disk_cache()->create_count()); | 3671 EXPECT_EQ(1, cache.disk_cache()->create_count()); |
| 3671 | 3672 |
| 3672 // Now verify that there's no cached data. | 3673 // Now verify that there's cached data. |
| 3674 RunTransactionTestWithResponse(cache.http_cache(), kRangeGET_TransactionOK, | |
| 3675 &headers); | |
| 3676 | |
| 3677 Verify206Response(headers, 40, 49); | |
| 3678 EXPECT_EQ(1, cache.network_layer()->transaction_count()); | |
| 3679 EXPECT_EQ(1, cache.disk_cache()->open_count()); | |
| 3680 EXPECT_EQ(1, cache.disk_cache()->create_count()); | |
| 3681 | |
| 3682 RemoveMockTransaction(&transaction); | |
| 3683 } | |
| 3684 | |
| 3685 // Tests failures to validate cache partial responses. | |
|
davidben
2014/08/29 18:03:23
Nit: Does this seem clearer/accurate?
// Tests
rvargas (doing something else)
2014/08/29 19:34:27
Done.
| |
| 3686 TEST(HttpCache, RangeGET_NoValidation) { | |
| 3687 MockHttpCache cache; | |
| 3688 std::string headers; | |
| 3689 | |
| 3690 // Write to the cache (40-49). | |
| 3691 MockTransaction transaction(kRangeGET_TransactionOK); | |
| 3692 AddMockTransaction(&transaction); | |
| 3693 transaction.response_headers = "Content-Length: 10\n" | |
| 3694 "ETag: w/\"foo\"\n"; | |
| 3695 RunTransactionTestWithResponse(cache.http_cache(), transaction, &headers); | |
| 3696 | |
| 3697 Verify206Response(headers, 40, 49); | |
| 3698 EXPECT_EQ(1, cache.network_layer()->transaction_count()); | |
| 3699 EXPECT_EQ(0, cache.disk_cache()->open_count()); | |
| 3700 EXPECT_EQ(1, cache.disk_cache()->create_count()); | |
| 3701 | |
| 3702 // Now verify that the cached data is not used. | |
| 3673 RunTransactionTestWithResponse(cache.http_cache(), kRangeGET_TransactionOK, | 3703 RunTransactionTestWithResponse(cache.http_cache(), kRangeGET_TransactionOK, |
| 3674 &headers); | 3704 &headers); |
| 3675 | 3705 |
| 3676 Verify206Response(headers, 40, 49); | 3706 Verify206Response(headers, 40, 49); |
| 3677 EXPECT_EQ(2, cache.network_layer()->transaction_count()); | 3707 EXPECT_EQ(2, cache.network_layer()->transaction_count()); |
| 3678 EXPECT_EQ(0, cache.disk_cache()->open_count()); | 3708 EXPECT_EQ(1, cache.disk_cache()->open_count()); |
| 3679 EXPECT_EQ(2, cache.disk_cache()->create_count()); | 3709 EXPECT_EQ(2, cache.disk_cache()->create_count()); |
| 3680 | 3710 |
| 3681 RemoveMockTransaction(&transaction); | 3711 RemoveMockTransaction(&transaction); |
| 3682 } | 3712 } |
| 3683 | 3713 |
| 3684 // Tests that we cache partial responses that lack content-length. | 3714 // Tests that we cache partial responses that lack content-length. |
| 3685 TEST(HttpCache, RangeGET_NoContentLength) { | 3715 TEST(HttpCache, RangeGET_NoContentLength) { |
| 3686 MockHttpCache cache; | 3716 MockHttpCache cache; |
| 3687 std::string headers; | 3717 std::string headers; |
| 3688 | 3718 |
| (...skipping 3094 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 6783 | 6813 |
| 6784 EXPECT_EQ(1, cache.network_layer()->transaction_count()); | 6814 EXPECT_EQ(1, cache.network_layer()->transaction_count()); |
| 6785 | 6815 |
| 6786 // Send the request again and check that Resource-Freshness header is absent. | 6816 // Send the request again and check that Resource-Freshness header is absent. |
| 6787 stale_while_revalidate_transaction.handler = CheckResourceFreshnessAbsent; | 6817 stale_while_revalidate_transaction.handler = CheckResourceFreshnessAbsent; |
| 6788 | 6818 |
| 6789 RunTransactionTest(cache.http_cache(), stale_while_revalidate_transaction); | 6819 RunTransactionTest(cache.http_cache(), stale_while_revalidate_transaction); |
| 6790 | 6820 |
| 6791 EXPECT_EQ(2, cache.network_layer()->transaction_count()); | 6821 EXPECT_EQ(2, cache.network_layer()->transaction_count()); |
| 6792 } | 6822 } |
| OLD | NEW |