OLD | NEW |
1 // Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2009 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 "base/hash_tables.h" | 7 #include "base/hash_tables.h" |
8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
9 #include "base/scoped_vector.h" | 9 #include "base/scoped_vector.h" |
10 #include "base/string_util.h" | 10 #include "base/string_util.h" |
(...skipping 887 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
898 cache.disk_cache()->set_fail_requests(); | 898 cache.disk_cache()->set_fail_requests(); |
899 | 899 |
900 scoped_refptr<net::LoadLog> log(new net::LoadLog(net::LoadLog::kUnbounded)); | 900 scoped_refptr<net::LoadLog> log(new net::LoadLog(net::LoadLog::kUnbounded)); |
901 | 901 |
902 // Read from the network, and don't use the cache. | 902 // Read from the network, and don't use the cache. |
903 RunTransactionTestWithLog(cache.http_cache(), kSimpleGET_Transaction, log); | 903 RunTransactionTestWithLog(cache.http_cache(), kSimpleGET_Transaction, log); |
904 | 904 |
905 // Check that the LoadLog was filled as expected. | 905 // Check that the LoadLog was filled as expected. |
906 // (We attempted to both Open and Create entries, but both failed). | 906 // (We attempted to both Open and Create entries, but both failed). |
907 EXPECT_EQ(4u, log->entries().size()); | 907 EXPECT_EQ(4u, log->entries().size()); |
908 net::ExpectLogContains(log, 0, net::LoadLog::TYPE_HTTP_CACHE_OPEN_ENTRY, | 908 EXPECT_TRUE(net::LogContainsBeginEvent( |
909 net::LoadLog::PHASE_BEGIN); | 909 *log, 0, net::LoadLog::TYPE_HTTP_CACHE_OPEN_ENTRY)); |
910 net::ExpectLogContains(log, 1, net::LoadLog::TYPE_HTTP_CACHE_OPEN_ENTRY, | 910 EXPECT_TRUE(net::LogContainsEndEvent( |
911 net::LoadLog::PHASE_END); | 911 *log, 1, net::LoadLog::TYPE_HTTP_CACHE_OPEN_ENTRY)); |
912 net::ExpectLogContains(log, 2, net::LoadLog::TYPE_HTTP_CACHE_CREATE_ENTRY, | 912 EXPECT_TRUE(net::LogContainsBeginEvent( |
913 net::LoadLog::PHASE_BEGIN); | 913 *log, 2, net::LoadLog::TYPE_HTTP_CACHE_CREATE_ENTRY)); |
914 net::ExpectLogContains(log, 3, net::LoadLog::TYPE_HTTP_CACHE_CREATE_ENTRY, | 914 EXPECT_TRUE(net::LogContainsEndEvent( |
915 net::LoadLog::PHASE_END); | 915 *log, 3, net::LoadLog::TYPE_HTTP_CACHE_CREATE_ENTRY)); |
916 | 916 |
917 EXPECT_EQ(1, cache.network_layer()->transaction_count()); | 917 EXPECT_EQ(1, cache.network_layer()->transaction_count()); |
918 EXPECT_EQ(0, cache.disk_cache()->open_count()); | 918 EXPECT_EQ(0, cache.disk_cache()->open_count()); |
919 EXPECT_EQ(0, cache.disk_cache()->create_count()); | 919 EXPECT_EQ(0, cache.disk_cache()->create_count()); |
920 } | 920 } |
921 | 921 |
922 TEST(HttpCache, SimpleGETWithDiskFailures) { | 922 TEST(HttpCache, SimpleGETWithDiskFailures) { |
923 MockHttpCache cache; | 923 MockHttpCache cache; |
924 | 924 |
925 cache.disk_cache()->set_soft_failures(true); | 925 cache.disk_cache()->set_soft_failures(true); |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
981 TEST(HttpCache, SimpleGET_LoadOnlyFromCache_Hit) { | 981 TEST(HttpCache, SimpleGET_LoadOnlyFromCache_Hit) { |
982 MockHttpCache cache; | 982 MockHttpCache cache; |
983 | 983 |
984 scoped_refptr<net::LoadLog> log(new net::LoadLog(net::LoadLog::kUnbounded)); | 984 scoped_refptr<net::LoadLog> log(new net::LoadLog(net::LoadLog::kUnbounded)); |
985 | 985 |
986 // write to the cache | 986 // write to the cache |
987 RunTransactionTestWithLog(cache.http_cache(), kSimpleGET_Transaction, log); | 987 RunTransactionTestWithLog(cache.http_cache(), kSimpleGET_Transaction, log); |
988 | 988 |
989 // Check that the LoadLog was filled as expected. | 989 // Check that the LoadLog was filled as expected. |
990 EXPECT_EQ(6u, log->entries().size()); | 990 EXPECT_EQ(6u, log->entries().size()); |
991 net::ExpectLogContains(log, 0, net::LoadLog::TYPE_HTTP_CACHE_OPEN_ENTRY, | 991 EXPECT_TRUE(net::LogContainsBeginEvent( |
992 net::LoadLog::PHASE_BEGIN); | 992 *log, 0, net::LoadLog::TYPE_HTTP_CACHE_OPEN_ENTRY)); |
993 net::ExpectLogContains(log, 1, net::LoadLog::TYPE_HTTP_CACHE_OPEN_ENTRY, | 993 EXPECT_TRUE(net::LogContainsEndEvent( |
994 net::LoadLog::PHASE_END); | 994 *log, 1, net::LoadLog::TYPE_HTTP_CACHE_OPEN_ENTRY)); |
995 net::ExpectLogContains(log, 2, net::LoadLog::TYPE_HTTP_CACHE_CREATE_ENTRY, | 995 EXPECT_TRUE(net::LogContainsBeginEvent( |
996 net::LoadLog::PHASE_BEGIN); | 996 *log, 2, net::LoadLog::TYPE_HTTP_CACHE_CREATE_ENTRY)); |
997 net::ExpectLogContains(log, 3, net::LoadLog::TYPE_HTTP_CACHE_CREATE_ENTRY, | 997 EXPECT_TRUE(net::LogContainsEndEvent( |
998 net::LoadLog::PHASE_END); | 998 *log, 3, net::LoadLog::TYPE_HTTP_CACHE_CREATE_ENTRY)); |
999 net::ExpectLogContains(log, 4, net::LoadLog::TYPE_HTTP_CACHE_WAITING, | 999 EXPECT_TRUE(net::LogContainsBeginEvent( |
1000 net::LoadLog::PHASE_BEGIN); | 1000 *log, 4, net::LoadLog::TYPE_HTTP_CACHE_WAITING)); |
1001 net::ExpectLogContains(log, 5, net::LoadLog::TYPE_HTTP_CACHE_WAITING, | 1001 EXPECT_TRUE(net::LogContainsEndEvent( |
1002 net::LoadLog::PHASE_END); | 1002 *log, 5, net::LoadLog::TYPE_HTTP_CACHE_WAITING)); |
1003 | 1003 |
1004 // force this transaction to read from the cache | 1004 // force this transaction to read from the cache |
1005 MockTransaction transaction(kSimpleGET_Transaction); | 1005 MockTransaction transaction(kSimpleGET_Transaction); |
1006 transaction.load_flags |= net::LOAD_ONLY_FROM_CACHE; | 1006 transaction.load_flags |= net::LOAD_ONLY_FROM_CACHE; |
1007 | 1007 |
1008 log = new net::LoadLog(net::LoadLog::kUnbounded); | 1008 log = new net::LoadLog(net::LoadLog::kUnbounded); |
1009 | 1009 |
1010 RunTransactionTestWithLog(cache.http_cache(), transaction, log); | 1010 RunTransactionTestWithLog(cache.http_cache(), transaction, log); |
1011 | 1011 |
1012 // Check that the LoadLog was filled as expected. | 1012 // Check that the LoadLog was filled as expected. |
1013 EXPECT_EQ(6u, log->entries().size()); | 1013 EXPECT_EQ(6u, log->entries().size()); |
1014 net::ExpectLogContains(log, 0, net::LoadLog::TYPE_HTTP_CACHE_OPEN_ENTRY, | 1014 EXPECT_TRUE(net::LogContainsBeginEvent( |
1015 net::LoadLog::PHASE_BEGIN); | 1015 *log, 0, net::LoadLog::TYPE_HTTP_CACHE_OPEN_ENTRY)); |
1016 net::ExpectLogContains(log, 1, net::LoadLog::TYPE_HTTP_CACHE_OPEN_ENTRY, | 1016 EXPECT_TRUE(net::LogContainsEndEvent( |
1017 net::LoadLog::PHASE_END); | 1017 *log, 1, net::LoadLog::TYPE_HTTP_CACHE_OPEN_ENTRY)); |
1018 net::ExpectLogContains(log, 2, net::LoadLog::TYPE_HTTP_CACHE_WAITING, | 1018 EXPECT_TRUE(net::LogContainsBeginEvent( |
1019 net::LoadLog::PHASE_BEGIN); | 1019 *log, 2, net::LoadLog::TYPE_HTTP_CACHE_WAITING)); |
1020 net::ExpectLogContains(log, 3, net::LoadLog::TYPE_HTTP_CACHE_WAITING, | 1020 EXPECT_TRUE(net::LogContainsEndEvent( |
1021 net::LoadLog::PHASE_END); | 1021 *log, 3, net::LoadLog::TYPE_HTTP_CACHE_WAITING)); |
1022 net::ExpectLogContains(log, 4, net::LoadLog::TYPE_HTTP_CACHE_READ_INFO, | 1022 EXPECT_TRUE(net::LogContainsBeginEvent( |
1023 net::LoadLog::PHASE_BEGIN); | 1023 *log, 4, net::LoadLog::TYPE_HTTP_CACHE_READ_INFO)); |
1024 net::ExpectLogContains(log, 5, net::LoadLog::TYPE_HTTP_CACHE_READ_INFO, | 1024 EXPECT_TRUE(net::LogContainsEndEvent( |
1025 net::LoadLog::PHASE_END); | 1025 *log, 5, net::LoadLog::TYPE_HTTP_CACHE_READ_INFO)); |
1026 | 1026 |
1027 EXPECT_EQ(1, cache.network_layer()->transaction_count()); | 1027 EXPECT_EQ(1, cache.network_layer()->transaction_count()); |
1028 EXPECT_EQ(1, cache.disk_cache()->open_count()); | 1028 EXPECT_EQ(1, cache.disk_cache()->open_count()); |
1029 EXPECT_EQ(1, cache.disk_cache()->create_count()); | 1029 EXPECT_EQ(1, cache.disk_cache()->create_count()); |
1030 } | 1030 } |
1031 | 1031 |
1032 TEST(HttpCache, SimpleGET_LoadOnlyFromCache_Miss) { | 1032 TEST(HttpCache, SimpleGET_LoadOnlyFromCache_Miss) { |
1033 MockHttpCache cache; | 1033 MockHttpCache cache; |
1034 | 1034 |
1035 // force this transaction to read from the cache | 1035 // force this transaction to read from the cache |
(...skipping 3130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4166 std::string headers; | 4166 std::string headers; |
4167 response.headers->GetNormalizedHeaders(&headers); | 4167 response.headers->GetNormalizedHeaders(&headers); |
4168 | 4168 |
4169 EXPECT_EQ("HTTP/1.1 200 OK\n" | 4169 EXPECT_EQ("HTTP/1.1 200 OK\n" |
4170 "Date: Wed, 22 Jul 2009 03:15:26 GMT\n" | 4170 "Date: Wed, 22 Jul 2009 03:15:26 GMT\n" |
4171 "Last-Modified: Wed, 06 Feb 2008 22:38:21 GMT\n", | 4171 "Last-Modified: Wed, 06 Feb 2008 22:38:21 GMT\n", |
4172 headers); | 4172 headers); |
4173 | 4173 |
4174 RemoveMockTransaction(&mock_network_response); | 4174 RemoveMockTransaction(&mock_network_response); |
4175 } | 4175 } |
OLD | NEW |