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

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

Issue 1080673004: Remove network load flags not used in net/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed errors due to missing changes. Created 5 years, 7 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') | tools/metrics/histograms/histograms.xml » ('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 934 matching lines...) Expand 10 before | Expand all | Expand 10 after
945 RunTransactionTestAndGetTiming(cache.http_cache(), transaction, log.bound(), 945 RunTransactionTestAndGetTiming(cache.http_cache(), transaction, log.bound(),
946 &load_timing_info); 946 &load_timing_info);
947 947
948 EXPECT_EQ(2, cache.network_layer()->transaction_count()); 948 EXPECT_EQ(2, cache.network_layer()->transaction_count());
949 EXPECT_EQ(1, cache.disk_cache()->open_count()); 949 EXPECT_EQ(1, cache.disk_cache()->open_count());
950 EXPECT_EQ(1, cache.disk_cache()->create_count()); 950 EXPECT_EQ(1, cache.disk_cache()->create_count());
951 TestLoadTimingNetworkRequest(load_timing_info); 951 TestLoadTimingNetworkRequest(load_timing_info);
952 RemoveMockTransaction(&transaction); 952 RemoveMockTransaction(&transaction);
953 } 953 }
954 954
955 // Tests that LOAD_FROM_CACHE_IF_OFFLINE returns proper response on
956 // network success
957 TEST(HttpCache, SimpleGET_CacheOverride_Network) {
958 MockHttpCache cache;
959
960 // Prime cache.
961 MockTransaction transaction(kSimpleGET_Transaction);
962 transaction.load_flags |= LOAD_FROM_CACHE_IF_OFFLINE;
963 transaction.response_headers = "Cache-Control: no-cache\n";
964
965 AddMockTransaction(&transaction);
966 RunTransactionTest(cache.http_cache(), transaction);
967 EXPECT_EQ(1, cache.network_layer()->transaction_count());
968 EXPECT_EQ(1, cache.disk_cache()->create_count());
969 RemoveMockTransaction(&transaction);
970
971 // Re-run transaction; make sure the result came from the network,
972 // not the cache.
973 transaction.data = "Changed data.";
974 AddMockTransaction(&transaction);
975 HttpResponseInfo response_info;
976 RunTransactionTestWithResponseInfo(cache.http_cache(), transaction,
977 &response_info);
978
979 EXPECT_EQ(2, cache.network_layer()->transaction_count());
980 EXPECT_FALSE(response_info.server_data_unavailable);
981 EXPECT_TRUE(response_info.network_accessed);
982
983 RemoveMockTransaction(&transaction);
984 }
985
986 // Tests that LOAD_FROM_CACHE_IF_OFFLINE returns proper response on
987 // offline failure
988 TEST(HttpCache, SimpleGET_CacheOverride_Offline) {
989 MockHttpCache cache;
990
991 // Prime cache.
992 MockTransaction transaction(kSimpleGET_Transaction);
993 transaction.load_flags |= LOAD_FROM_CACHE_IF_OFFLINE;
994 transaction.response_headers = "Cache-Control: no-cache\n";
995
996 AddMockTransaction(&transaction);
997 RunTransactionTest(cache.http_cache(), transaction);
998 EXPECT_EQ(1, cache.network_layer()->transaction_count());
999 EXPECT_EQ(1, cache.disk_cache()->create_count());
1000 RemoveMockTransaction(&transaction);
1001
1002 // Network failure with offline error; should return cache entry above +
1003 // flag signalling stale data.
1004 transaction.return_code = ERR_NAME_NOT_RESOLVED;
1005 AddMockTransaction(&transaction);
1006
1007 MockHttpRequest request(transaction);
1008 TestCompletionCallback callback;
1009 scoped_ptr<HttpTransaction> trans;
1010 ASSERT_EQ(OK, cache.CreateTransaction(&trans));
1011 int rv = trans->Start(&request, callback.callback(), BoundNetLog());
1012 EXPECT_EQ(OK, callback.GetResult(rv));
1013
1014 const HttpResponseInfo* response_info = trans->GetResponseInfo();
1015 ASSERT_TRUE(response_info);
1016 EXPECT_TRUE(response_info->server_data_unavailable);
1017 EXPECT_TRUE(response_info->was_cached);
1018 EXPECT_FALSE(response_info->network_accessed);
1019 ReadAndVerifyTransaction(trans.get(), transaction);
1020 EXPECT_EQ(2, cache.network_layer()->transaction_count());
1021
1022 RemoveMockTransaction(&transaction);
1023 }
1024
1025 // Tests that LOAD_FROM_CACHE_IF_OFFLINE returns proper response on
1026 // non-offline failure.
1027 TEST(HttpCache, SimpleGET_CacheOverride_NonOffline) {
1028 MockHttpCache cache;
1029
1030 // Prime cache.
1031 MockTransaction transaction(kSimpleGET_Transaction);
1032 transaction.load_flags |= LOAD_FROM_CACHE_IF_OFFLINE;
1033 transaction.response_headers = "Cache-Control: no-cache\n";
1034
1035 AddMockTransaction(&transaction);
1036 RunTransactionTest(cache.http_cache(), transaction);
1037 EXPECT_EQ(1, cache.network_layer()->transaction_count());
1038 EXPECT_EQ(1, cache.disk_cache()->create_count());
1039 RemoveMockTransaction(&transaction);
1040
1041 // Network failure with non-offline error; should fail with that error.
1042 transaction.return_code = ERR_PROXY_CONNECTION_FAILED;
1043 AddMockTransaction(&transaction);
1044
1045 HttpResponseInfo response_info2;
1046 RunTransactionTestWithResponseInfo(cache.http_cache(), transaction,
1047 &response_info2);
1048
1049 EXPECT_EQ(2, cache.network_layer()->transaction_count());
1050 EXPECT_FALSE(response_info2.server_data_unavailable);
1051
1052 RemoveMockTransaction(&transaction);
1053 }
1054
1055 // Tests that was_cached was set properly on a failure, even if the cached 955 // Tests that was_cached was set properly on a failure, even if the cached
1056 // response wasn't returned. 956 // response wasn't returned.
1057 TEST(HttpCache, SimpleGET_CacheSignal_Failure) { 957 TEST(HttpCache, SimpleGET_CacheSignal_Failure) {
1058 MockHttpCache cache; 958 MockHttpCache cache;
1059 959
1060 // Prime cache. 960 // Prime cache.
1061 MockTransaction transaction(kSimpleGET_Transaction); 961 MockTransaction transaction(kSimpleGET_Transaction);
1062 transaction.response_headers = "Cache-Control: no-cache\n"; 962 transaction.response_headers = "Cache-Control: no-cache\n";
1063 963
1064 AddMockTransaction(&transaction); 964 AddMockTransaction(&transaction);
(...skipping 6836 matching lines...) Expand 10 before | Expand all | Expand 10 after
7901 EXPECT_EQ(LOAD_STATE_WAITING_FOR_CACHE, second->trans->GetLoadState()); 7801 EXPECT_EQ(LOAD_STATE_WAITING_FOR_CACHE, second->trans->GetLoadState());
7902 base::MessageLoop::current()->RunUntilIdle(); 7802 base::MessageLoop::current()->RunUntilIdle();
7903 EXPECT_EQ(LOAD_STATE_IDLE, second->trans->GetLoadState()); 7803 EXPECT_EQ(LOAD_STATE_IDLE, second->trans->GetLoadState());
7904 ASSERT_TRUE(second->trans->GetResponseInfo()); 7804 ASSERT_TRUE(second->trans->GetResponseInfo());
7905 EXPECT_TRUE(second->trans->GetResponseInfo()->headers->HasHeaderValue( 7805 EXPECT_TRUE(second->trans->GetResponseInfo()->headers->HasHeaderValue(
7906 "Cache-Control", "no-store")); 7806 "Cache-Control", "no-store"));
7907 ReadAndVerifyTransaction(second->trans.get(), kSimpleGET_Transaction); 7807 ReadAndVerifyTransaction(second->trans.get(), kSimpleGET_Transaction);
7908 } 7808 }
7909 7809
7910 } // namespace net 7810 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_cache_transaction.cc ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698