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 <memory> | 5 #include <memory> |
6 #include <utility> | 6 #include <utility> |
7 | 7 |
8 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
9 #include "base/run_loop.h" | 9 #include "base/run_loop.h" |
10 #include "build/build_config.h" | 10 #include "build/build_config.h" |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
71 #include "net/disk_cache/disk_cache.h" | 71 #include "net/disk_cache/disk_cache.h" |
72 #include "net/dns/mock_host_resolver.h" | 72 #include "net/dns/mock_host_resolver.h" |
73 #include "net/http/http_byte_range.h" | 73 #include "net/http/http_byte_range.h" |
74 #include "net/http/http_cache.h" | 74 #include "net/http/http_cache.h" |
75 #include "net/http/http_network_layer.h" | 75 #include "net/http/http_network_layer.h" |
76 #include "net/http/http_network_session.h" | 76 #include "net/http/http_network_session.h" |
77 #include "net/http/http_request_headers.h" | 77 #include "net/http/http_request_headers.h" |
78 #include "net/http/http_response_headers.h" | 78 #include "net/http/http_response_headers.h" |
79 #include "net/http/http_util.h" | 79 #include "net/http/http_util.h" |
80 #include "net/log/net_log.h" | 80 #include "net/log/net_log.h" |
| 81 #include "net/log/net_log_event_type.h" |
81 #include "net/log/test_net_log.h" | 82 #include "net/log/test_net_log.h" |
82 #include "net/log/test_net_log_entry.h" | 83 #include "net/log/test_net_log_entry.h" |
83 #include "net/log/test_net_log_util.h" | 84 #include "net/log/test_net_log_util.h" |
84 #include "net/nqe/external_estimate_provider.h" | 85 #include "net/nqe/external_estimate_provider.h" |
85 #include "net/proxy/proxy_service.h" | 86 #include "net/proxy/proxy_service.h" |
86 #include "net/socket/ssl_client_socket.h" | 87 #include "net/socket/ssl_client_socket.h" |
87 #include "net/ssl/channel_id_service.h" | 88 #include "net/ssl/channel_id_service.h" |
88 #include "net/ssl/default_channel_id_store.h" | 89 #include "net/ssl/default_channel_id_store.h" |
89 #include "net/ssl/ssl_connection_status_flags.h" | 90 #include "net/ssl/ssl_connection_status_flags.h" |
90 #include "net/ssl/ssl_server_config.h" | 91 #include "net/ssl/ssl_server_config.h" |
(...skipping 4712 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4803 // recorded. Returns the index of entry after the expected number of | 4804 // recorded. Returns the index of entry after the expected number of |
4804 // events this logged, or entries.size() if there aren't enough entries. | 4805 // events this logged, or entries.size() if there aren't enough entries. |
4805 static size_t CheckDelegateInfo(const TestNetLogEntry::List& entries, | 4806 static size_t CheckDelegateInfo(const TestNetLogEntry::List& entries, |
4806 size_t log_position) { | 4807 size_t log_position) { |
4807 // There should be 4 DELEGATE_INFO events: Two begins and two ends. | 4808 // There should be 4 DELEGATE_INFO events: Two begins and two ends. |
4808 if (log_position + 3 >= entries.size()) { | 4809 if (log_position + 3 >= entries.size()) { |
4809 ADD_FAILURE() << "Not enough log entries"; | 4810 ADD_FAILURE() << "Not enough log entries"; |
4810 return entries.size(); | 4811 return entries.size(); |
4811 } | 4812 } |
4812 std::string delegate_info; | 4813 std::string delegate_info; |
4813 EXPECT_EQ(NetLog::TYPE_DELEGATE_INFO, entries[log_position].type); | 4814 EXPECT_EQ(NetLogEventType::DELEGATE_INFO, entries[log_position].type); |
4814 EXPECT_EQ(NetLog::PHASE_BEGIN, entries[log_position].phase); | 4815 EXPECT_EQ(NetLogEventPhase::BEGIN, entries[log_position].phase); |
4815 EXPECT_TRUE(entries[log_position].GetStringValue("delegate_info", | 4816 EXPECT_TRUE(entries[log_position].GetStringValue("delegate_info", |
4816 &delegate_info)); | 4817 &delegate_info)); |
4817 EXPECT_EQ(kFirstDelegateInfo, delegate_info); | 4818 EXPECT_EQ(kFirstDelegateInfo, delegate_info); |
4818 | 4819 |
4819 ++log_position; | 4820 ++log_position; |
4820 EXPECT_EQ(NetLog::TYPE_DELEGATE_INFO, entries[log_position].type); | 4821 EXPECT_EQ(NetLogEventType::DELEGATE_INFO, entries[log_position].type); |
4821 EXPECT_EQ(NetLog::PHASE_END, entries[log_position].phase); | 4822 EXPECT_EQ(NetLogEventPhase::END, entries[log_position].phase); |
4822 | 4823 |
4823 ++log_position; | 4824 ++log_position; |
4824 EXPECT_EQ(NetLog::TYPE_DELEGATE_INFO, entries[log_position].type); | 4825 EXPECT_EQ(NetLogEventType::DELEGATE_INFO, entries[log_position].type); |
4825 EXPECT_EQ(NetLog::PHASE_BEGIN, entries[log_position].phase); | 4826 EXPECT_EQ(NetLogEventPhase::BEGIN, entries[log_position].phase); |
4826 EXPECT_TRUE(entries[log_position].GetStringValue("delegate_info", | 4827 EXPECT_TRUE(entries[log_position].GetStringValue("delegate_info", |
4827 &delegate_info)); | 4828 &delegate_info)); |
4828 EXPECT_EQ(kSecondDelegateInfo, delegate_info); | 4829 EXPECT_EQ(kSecondDelegateInfo, delegate_info); |
4829 | 4830 |
4830 ++log_position; | 4831 ++log_position; |
4831 EXPECT_EQ(NetLog::TYPE_DELEGATE_INFO, entries[log_position].type); | 4832 EXPECT_EQ(NetLogEventType::DELEGATE_INFO, entries[log_position].type); |
4832 EXPECT_EQ(NetLog::PHASE_END, entries[log_position].phase); | 4833 EXPECT_EQ(NetLogEventPhase::END, entries[log_position].phase); |
4833 | 4834 |
4834 return log_position + 1; | 4835 return log_position + 1; |
4835 } | 4836 } |
4836 | 4837 |
4837 private: | 4838 private: |
4838 friend class base::RefCounted<AsyncDelegateLogger>; | 4839 friend class base::RefCounted<AsyncDelegateLogger>; |
4839 | 4840 |
4840 AsyncDelegateLogger(URLRequest* url_request, | 4841 AsyncDelegateLogger(URLRequest* url_request, |
4841 LoadState expected_first_load_state, | 4842 LoadState expected_first_load_state, |
4842 LoadState expected_second_load_state, | 4843 LoadState expected_second_load_state, |
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5080 | 5081 |
5081 base::RunLoop().Run(); | 5082 base::RunLoop().Run(); |
5082 | 5083 |
5083 EXPECT_EQ(200, r->GetResponseCode()); | 5084 EXPECT_EQ(200, r->GetResponseCode()); |
5084 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); | 5085 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); |
5085 } | 5086 } |
5086 | 5087 |
5087 TestNetLogEntry::List entries; | 5088 TestNetLogEntry::List entries; |
5088 net_log_.GetEntries(&entries); | 5089 net_log_.GetEntries(&entries); |
5089 size_t log_position = ExpectLogContainsSomewhereAfter( | 5090 size_t log_position = ExpectLogContainsSomewhereAfter( |
5090 entries, | 5091 entries, 0, NetLogEventType::DELEGATE_INFO, NetLogEventPhase::BEGIN); |
5091 0, | |
5092 NetLog::TYPE_DELEGATE_INFO, | |
5093 NetLog::PHASE_BEGIN); | |
5094 | 5092 |
5095 log_position = AsyncDelegateLogger::CheckDelegateInfo(entries, log_position); | 5093 log_position = AsyncDelegateLogger::CheckDelegateInfo(entries, log_position); |
5096 | 5094 |
5097 // Nothing else should add any delegate info to the request. | 5095 // Nothing else should add any delegate info to the request. |
5098 EXPECT_FALSE(LogContainsEntryWithTypeAfter( | 5096 EXPECT_FALSE(LogContainsEntryWithTypeAfter(entries, log_position + 1, |
5099 entries, log_position + 1, NetLog::TYPE_DELEGATE_INFO)); | 5097 NetLogEventType::DELEGATE_INFO)); |
5100 } | 5098 } |
5101 | 5099 |
5102 // Tests handling of delegate info from a network delegate. | 5100 // Tests handling of delegate info from a network delegate. |
5103 TEST_F(URLRequestTestHTTP, NetworkDelegateInfo) { | 5101 TEST_F(URLRequestTestHTTP, NetworkDelegateInfo) { |
5104 ASSERT_TRUE(http_test_server()->Start()); | 5102 ASSERT_TRUE(http_test_server()->Start()); |
5105 | 5103 |
5106 TestDelegate request_delegate; | 5104 TestDelegate request_delegate; |
5107 AsyncLoggingNetworkDelegate network_delegate; | 5105 AsyncLoggingNetworkDelegate network_delegate; |
5108 TestURLRequestContext context(true); | 5106 TestURLRequestContext context(true); |
5109 context.set_network_delegate(&network_delegate); | 5107 context.set_network_delegate(&network_delegate); |
(...skipping 16 matching lines...) Expand all Loading... |
5126 EXPECT_EQ(1, network_delegate.created_requests()); | 5124 EXPECT_EQ(1, network_delegate.created_requests()); |
5127 EXPECT_EQ(0, network_delegate.destroyed_requests()); | 5125 EXPECT_EQ(0, network_delegate.destroyed_requests()); |
5128 } | 5126 } |
5129 EXPECT_EQ(1, network_delegate.destroyed_requests()); | 5127 EXPECT_EQ(1, network_delegate.destroyed_requests()); |
5130 | 5128 |
5131 size_t log_position = 0; | 5129 size_t log_position = 0; |
5132 TestNetLogEntry::List entries; | 5130 TestNetLogEntry::List entries; |
5133 net_log_.GetEntries(&entries); | 5131 net_log_.GetEntries(&entries); |
5134 for (size_t i = 0; i < 3; ++i) { | 5132 for (size_t i = 0; i < 3; ++i) { |
5135 log_position = ExpectLogContainsSomewhereAfter( | 5133 log_position = ExpectLogContainsSomewhereAfter( |
5136 entries, | 5134 entries, log_position + 1, NetLogEventType::URL_REQUEST_DELEGATE, |
5137 log_position + 1, | 5135 NetLogEventPhase::BEGIN); |
5138 NetLog::TYPE_URL_REQUEST_DELEGATE, | |
5139 NetLog::PHASE_BEGIN); | |
5140 | 5136 |
5141 log_position = AsyncDelegateLogger::CheckDelegateInfo(entries, | 5137 log_position = AsyncDelegateLogger::CheckDelegateInfo(entries, |
5142 log_position + 1); | 5138 log_position + 1); |
5143 | 5139 |
5144 ASSERT_LT(log_position, entries.size()); | 5140 ASSERT_LT(log_position, entries.size()); |
5145 EXPECT_EQ(NetLog::TYPE_URL_REQUEST_DELEGATE, entries[log_position].type); | 5141 EXPECT_EQ(NetLogEventType::URL_REQUEST_DELEGATE, |
5146 EXPECT_EQ(NetLog::PHASE_END, entries[log_position].phase); | 5142 entries[log_position].type); |
| 5143 EXPECT_EQ(NetLogEventPhase::END, entries[log_position].phase); |
5147 } | 5144 } |
5148 | 5145 |
5149 EXPECT_FALSE(LogContainsEntryWithTypeAfter( | 5146 EXPECT_FALSE(LogContainsEntryWithTypeAfter(entries, log_position + 1, |
5150 entries, log_position + 1, NetLog::TYPE_DELEGATE_INFO)); | 5147 NetLogEventType::DELEGATE_INFO)); |
5151 } | 5148 } |
5152 | 5149 |
5153 // Tests handling of delegate info from a network delegate in the case of an | 5150 // Tests handling of delegate info from a network delegate in the case of an |
5154 // HTTP redirect. | 5151 // HTTP redirect. |
5155 TEST_F(URLRequestTestHTTP, NetworkDelegateInfoRedirect) { | 5152 TEST_F(URLRequestTestHTTP, NetworkDelegateInfoRedirect) { |
5156 ASSERT_TRUE(http_test_server()->Start()); | 5153 ASSERT_TRUE(http_test_server()->Start()); |
5157 | 5154 |
5158 TestDelegate request_delegate; | 5155 TestDelegate request_delegate; |
5159 AsyncLoggingNetworkDelegate network_delegate; | 5156 AsyncLoggingNetworkDelegate network_delegate; |
5160 TestURLRequestContext context(true); | 5157 TestURLRequestContext context(true); |
(...skipping 19 matching lines...) Expand all Loading... |
5180 } | 5177 } |
5181 EXPECT_EQ(1, network_delegate.destroyed_requests()); | 5178 EXPECT_EQ(1, network_delegate.destroyed_requests()); |
5182 | 5179 |
5183 size_t log_position = 0; | 5180 size_t log_position = 0; |
5184 TestNetLogEntry::List entries; | 5181 TestNetLogEntry::List entries; |
5185 net_log_.GetEntries(&entries); | 5182 net_log_.GetEntries(&entries); |
5186 // The NetworkDelegate logged information in OnBeforeURLRequest, | 5183 // The NetworkDelegate logged information in OnBeforeURLRequest, |
5187 // OnBeforeStartTransaction, and OnHeadersReceived. | 5184 // OnBeforeStartTransaction, and OnHeadersReceived. |
5188 for (size_t i = 0; i < 3; ++i) { | 5185 for (size_t i = 0; i < 3; ++i) { |
5189 log_position = ExpectLogContainsSomewhereAfter( | 5186 log_position = ExpectLogContainsSomewhereAfter( |
5190 entries, | 5187 entries, log_position + 1, NetLogEventType::URL_REQUEST_DELEGATE, |
5191 log_position + 1, | 5188 NetLogEventPhase::BEGIN); |
5192 NetLog::TYPE_URL_REQUEST_DELEGATE, | |
5193 NetLog::PHASE_BEGIN); | |
5194 | 5189 |
5195 log_position = AsyncDelegateLogger::CheckDelegateInfo(entries, | 5190 log_position = AsyncDelegateLogger::CheckDelegateInfo(entries, |
5196 log_position + 1); | 5191 log_position + 1); |
5197 | 5192 |
5198 ASSERT_LT(log_position, entries.size()); | 5193 ASSERT_LT(log_position, entries.size()); |
5199 EXPECT_EQ(NetLog::TYPE_URL_REQUEST_DELEGATE, entries[log_position].type); | 5194 EXPECT_EQ(NetLogEventType::URL_REQUEST_DELEGATE, |
5200 EXPECT_EQ(NetLog::PHASE_END, entries[log_position].phase); | 5195 entries[log_position].type); |
| 5196 EXPECT_EQ(NetLogEventPhase::END, entries[log_position].phase); |
5201 } | 5197 } |
5202 | 5198 |
5203 // The URLRequest::Delegate then gets informed about the redirect. | 5199 // The URLRequest::Delegate then gets informed about the redirect. |
5204 log_position = ExpectLogContainsSomewhereAfter( | 5200 log_position = ExpectLogContainsSomewhereAfter( |
5205 entries, | 5201 entries, log_position + 1, NetLogEventType::URL_REQUEST_DELEGATE, |
5206 log_position + 1, | 5202 NetLogEventPhase::BEGIN); |
5207 NetLog::TYPE_URL_REQUEST_DELEGATE, | |
5208 NetLog::PHASE_BEGIN); | |
5209 | 5203 |
5210 // The NetworkDelegate logged information in the same three events as before. | 5204 // The NetworkDelegate logged information in the same three events as before. |
5211 for (size_t i = 0; i < 3; ++i) { | 5205 for (size_t i = 0; i < 3; ++i) { |
5212 log_position = ExpectLogContainsSomewhereAfter( | 5206 log_position = ExpectLogContainsSomewhereAfter( |
5213 entries, | 5207 entries, log_position + 1, NetLogEventType::URL_REQUEST_DELEGATE, |
5214 log_position + 1, | 5208 NetLogEventPhase::BEGIN); |
5215 NetLog::TYPE_URL_REQUEST_DELEGATE, | |
5216 NetLog::PHASE_BEGIN); | |
5217 | 5209 |
5218 log_position = AsyncDelegateLogger::CheckDelegateInfo(entries, | 5210 log_position = AsyncDelegateLogger::CheckDelegateInfo(entries, |
5219 log_position + 1); | 5211 log_position + 1); |
5220 | 5212 |
5221 ASSERT_LT(log_position, entries.size()); | 5213 ASSERT_LT(log_position, entries.size()); |
5222 EXPECT_EQ(NetLog::TYPE_URL_REQUEST_DELEGATE, entries[log_position].type); | 5214 EXPECT_EQ(NetLogEventType::URL_REQUEST_DELEGATE, |
5223 EXPECT_EQ(NetLog::PHASE_END, entries[log_position].phase); | 5215 entries[log_position].type); |
| 5216 EXPECT_EQ(NetLogEventPhase::END, entries[log_position].phase); |
5224 } | 5217 } |
5225 | 5218 |
5226 EXPECT_FALSE(LogContainsEntryWithTypeAfter( | 5219 EXPECT_FALSE(LogContainsEntryWithTypeAfter(entries, log_position + 1, |
5227 entries, log_position + 1, NetLog::TYPE_DELEGATE_INFO)); | 5220 NetLogEventType::DELEGATE_INFO)); |
5228 } | 5221 } |
5229 | 5222 |
5230 // Tests handling of delegate info from a network delegate in the case of HTTP | 5223 // Tests handling of delegate info from a network delegate in the case of HTTP |
5231 // AUTH. | 5224 // AUTH. |
5232 TEST_F(URLRequestTestHTTP, NetworkDelegateInfoAuth) { | 5225 TEST_F(URLRequestTestHTTP, NetworkDelegateInfoAuth) { |
5233 ASSERT_TRUE(http_test_server()->Start()); | 5226 ASSERT_TRUE(http_test_server()->Start()); |
5234 | 5227 |
5235 TestDelegate request_delegate; | 5228 TestDelegate request_delegate; |
5236 AsyncLoggingNetworkDelegate network_delegate; | 5229 AsyncLoggingNetworkDelegate network_delegate; |
5237 TestURLRequestContext context(true); | 5230 TestURLRequestContext context(true); |
(...skipping 21 matching lines...) Expand all Loading... |
5259 | 5252 |
5260 size_t log_position = 0; | 5253 size_t log_position = 0; |
5261 TestNetLogEntry::List entries; | 5254 TestNetLogEntry::List entries; |
5262 net_log_.GetEntries(&entries); | 5255 net_log_.GetEntries(&entries); |
5263 // The NetworkDelegate should have logged information in OnBeforeURLRequest, | 5256 // The NetworkDelegate should have logged information in OnBeforeURLRequest, |
5264 // OnBeforeStartTransaction, OnHeadersReceived, OnAuthRequired, and then again | 5257 // OnBeforeStartTransaction, OnHeadersReceived, OnAuthRequired, and then again |
5265 // in | 5258 // in |
5266 // OnBeforeURLRequest and OnBeforeStartTransaction. | 5259 // OnBeforeURLRequest and OnBeforeStartTransaction. |
5267 for (size_t i = 0; i < 6; ++i) { | 5260 for (size_t i = 0; i < 6; ++i) { |
5268 log_position = ExpectLogContainsSomewhereAfter( | 5261 log_position = ExpectLogContainsSomewhereAfter( |
5269 entries, | 5262 entries, log_position + 1, NetLogEventType::URL_REQUEST_DELEGATE, |
5270 log_position + 1, | 5263 NetLogEventPhase::BEGIN); |
5271 NetLog::TYPE_URL_REQUEST_DELEGATE, | |
5272 NetLog::PHASE_BEGIN); | |
5273 | 5264 |
5274 log_position = AsyncDelegateLogger::CheckDelegateInfo(entries, | 5265 log_position = AsyncDelegateLogger::CheckDelegateInfo(entries, |
5275 log_position + 1); | 5266 log_position + 1); |
5276 | 5267 |
5277 ASSERT_LT(log_position, entries.size()); | 5268 ASSERT_LT(log_position, entries.size()); |
5278 EXPECT_EQ(NetLog::TYPE_URL_REQUEST_DELEGATE, entries[log_position].type); | 5269 EXPECT_EQ(NetLogEventType::URL_REQUEST_DELEGATE, |
5279 EXPECT_EQ(NetLog::PHASE_END, entries[log_position].phase); | 5270 entries[log_position].type); |
| 5271 EXPECT_EQ(NetLogEventPhase::END, entries[log_position].phase); |
5280 } | 5272 } |
5281 | 5273 |
5282 EXPECT_FALSE(LogContainsEntryWithTypeAfter( | 5274 EXPECT_FALSE(LogContainsEntryWithTypeAfter(entries, log_position + 1, |
5283 entries, log_position + 1, NetLog::TYPE_DELEGATE_INFO)); | 5275 NetLogEventType::DELEGATE_INFO)); |
5284 } | 5276 } |
5285 | 5277 |
5286 // TODO(svaldez): Update tests to use EmbeddedTestServer. | 5278 // TODO(svaldez): Update tests to use EmbeddedTestServer. |
5287 #if !defined(OS_IOS) | 5279 #if !defined(OS_IOS) |
5288 // Tests handling of delegate info from a URLRequest::Delegate. | 5280 // Tests handling of delegate info from a URLRequest::Delegate. |
5289 TEST_F(URLRequestTestHTTP, URLRequestDelegateInfo) { | 5281 TEST_F(URLRequestTestHTTP, URLRequestDelegateInfo) { |
5290 SpawnedTestServer test_server(SpawnedTestServer::TYPE_HTTP, | 5282 SpawnedTestServer test_server(SpawnedTestServer::TYPE_HTTP, |
5291 SpawnedTestServer::kLocalhost, | 5283 SpawnedTestServer::kLocalhost, |
5292 base::FilePath(kTestFilePath)); | 5284 base::FilePath(kTestFilePath)); |
5293 | 5285 |
(...skipping 23 matching lines...) Expand all Loading... |
5317 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); | 5309 EXPECT_EQ(URLRequestStatus::SUCCESS, r->status().status()); |
5318 } | 5310 } |
5319 | 5311 |
5320 TestNetLogEntry::List entries; | 5312 TestNetLogEntry::List entries; |
5321 net_log_.GetEntries(&entries); | 5313 net_log_.GetEntries(&entries); |
5322 | 5314 |
5323 size_t log_position = 0; | 5315 size_t log_position = 0; |
5324 | 5316 |
5325 // The delegate info should only have been logged on header complete. Other | 5317 // The delegate info should only have been logged on header complete. Other |
5326 // times it should silently be ignored. | 5318 // times it should silently be ignored. |
5327 log_position = | 5319 log_position = ExpectLogContainsSomewhereAfter( |
5328 ExpectLogContainsSomewhereAfter(entries, | 5320 entries, log_position + 1, NetLogEventType::URL_REQUEST_DELEGATE, |
5329 log_position + 1, | 5321 NetLogEventPhase::BEGIN); |
5330 NetLog::TYPE_URL_REQUEST_DELEGATE, | |
5331 NetLog::PHASE_BEGIN); | |
5332 | 5322 |
5333 log_position = AsyncDelegateLogger::CheckDelegateInfo(entries, | 5323 log_position = AsyncDelegateLogger::CheckDelegateInfo(entries, |
5334 log_position + 1); | 5324 log_position + 1); |
5335 | 5325 |
5336 ASSERT_LT(log_position, entries.size()); | 5326 ASSERT_LT(log_position, entries.size()); |
5337 EXPECT_EQ(NetLog::TYPE_URL_REQUEST_DELEGATE, entries[log_position].type); | 5327 EXPECT_EQ(NetLogEventType::URL_REQUEST_DELEGATE, entries[log_position].type); |
5338 EXPECT_EQ(NetLog::PHASE_END, entries[log_position].phase); | 5328 EXPECT_EQ(NetLogEventPhase::END, entries[log_position].phase); |
5339 | 5329 |
| 5330 EXPECT_FALSE(LogContainsEntryWithTypeAfter(entries, log_position + 1, |
| 5331 NetLogEventType::DELEGATE_INFO)); |
5340 EXPECT_FALSE(LogContainsEntryWithTypeAfter( | 5332 EXPECT_FALSE(LogContainsEntryWithTypeAfter( |
5341 entries, log_position + 1, NetLog::TYPE_DELEGATE_INFO)); | 5333 entries, log_position + 1, NetLogEventType::URL_REQUEST_DELEGATE)); |
5342 EXPECT_FALSE(LogContainsEntryWithTypeAfter( | |
5343 entries, log_position + 1, NetLog::TYPE_URL_REQUEST_DELEGATE)); | |
5344 } | 5334 } |
5345 #endif // !defined(OS_IOS) | 5335 #endif // !defined(OS_IOS) |
5346 | 5336 |
5347 // Tests handling of delegate info from a URLRequest::Delegate in the case of | 5337 // Tests handling of delegate info from a URLRequest::Delegate in the case of |
5348 // an HTTP redirect. | 5338 // an HTTP redirect. |
5349 TEST_F(URLRequestTestHTTP, URLRequestDelegateInfoOnRedirect) { | 5339 TEST_F(URLRequestTestHTTP, URLRequestDelegateInfoOnRedirect) { |
5350 ASSERT_TRUE(http_test_server()->Start()); | 5340 ASSERT_TRUE(http_test_server()->Start()); |
5351 | 5341 |
5352 AsyncLoggingUrlRequestDelegate request_delegate( | 5342 AsyncLoggingUrlRequestDelegate request_delegate( |
5353 AsyncLoggingUrlRequestDelegate::NO_CANCEL); | 5343 AsyncLoggingUrlRequestDelegate::NO_CANCEL); |
(...skipping 15 matching lines...) Expand all Loading... |
5369 } | 5359 } |
5370 | 5360 |
5371 TestNetLogEntry::List entries; | 5361 TestNetLogEntry::List entries; |
5372 net_log_.GetEntries(&entries); | 5362 net_log_.GetEntries(&entries); |
5373 | 5363 |
5374 // Delegate info should only have been logged in OnReceivedRedirect and | 5364 // Delegate info should only have been logged in OnReceivedRedirect and |
5375 // OnResponseStarted. | 5365 // OnResponseStarted. |
5376 size_t log_position = 0; | 5366 size_t log_position = 0; |
5377 for (int i = 0; i < 2; ++i) { | 5367 for (int i = 0; i < 2; ++i) { |
5378 log_position = ExpectLogContainsSomewhereAfter( | 5368 log_position = ExpectLogContainsSomewhereAfter( |
5379 entries, | 5369 entries, log_position, NetLogEventType::URL_REQUEST_DELEGATE, |
5380 log_position, | 5370 NetLogEventPhase::BEGIN); |
5381 NetLog::TYPE_URL_REQUEST_DELEGATE, | |
5382 NetLog::PHASE_BEGIN); | |
5383 | 5371 |
5384 log_position = AsyncDelegateLogger::CheckDelegateInfo(entries, | 5372 log_position = AsyncDelegateLogger::CheckDelegateInfo(entries, |
5385 log_position + 1); | 5373 log_position + 1); |
5386 | 5374 |
5387 ASSERT_LT(log_position, entries.size()); | 5375 ASSERT_LT(log_position, entries.size()); |
5388 EXPECT_EQ(NetLog::TYPE_URL_REQUEST_DELEGATE, entries[log_position].type); | 5376 EXPECT_EQ(NetLogEventType::URL_REQUEST_DELEGATE, |
5389 EXPECT_EQ(NetLog::PHASE_END, entries[log_position].phase); | 5377 entries[log_position].type); |
| 5378 EXPECT_EQ(NetLogEventPhase::END, entries[log_position].phase); |
5390 } | 5379 } |
5391 | 5380 |
| 5381 EXPECT_FALSE(LogContainsEntryWithTypeAfter(entries, log_position + 1, |
| 5382 NetLogEventType::DELEGATE_INFO)); |
5392 EXPECT_FALSE(LogContainsEntryWithTypeAfter( | 5383 EXPECT_FALSE(LogContainsEntryWithTypeAfter( |
5393 entries, log_position + 1, NetLog::TYPE_DELEGATE_INFO)); | 5384 entries, log_position + 1, NetLogEventType::URL_REQUEST_DELEGATE)); |
5394 EXPECT_FALSE(LogContainsEntryWithTypeAfter( | |
5395 entries, log_position + 1, NetLog::TYPE_URL_REQUEST_DELEGATE)); | |
5396 } | 5385 } |
5397 | 5386 |
5398 // Tests handling of delegate info from a URLRequest::Delegate in the case of | 5387 // Tests handling of delegate info from a URLRequest::Delegate in the case of |
5399 // an HTTP redirect, with cancellation at various points. | 5388 // an HTTP redirect, with cancellation at various points. |
5400 TEST_F(URLRequestTestHTTP, URLRequestDelegateOnRedirectCancelled) { | 5389 TEST_F(URLRequestTestHTTP, URLRequestDelegateOnRedirectCancelled) { |
5401 ASSERT_TRUE(http_test_server()->Start()); | 5390 ASSERT_TRUE(http_test_server()->Start()); |
5402 | 5391 |
5403 const AsyncLoggingUrlRequestDelegate::CancelStage kCancelStages[] = { | 5392 const AsyncLoggingUrlRequestDelegate::CancelStage kCancelStages[] = { |
5404 AsyncLoggingUrlRequestDelegate::CANCEL_ON_RECEIVED_REDIRECT, | 5393 AsyncLoggingUrlRequestDelegate::CANCEL_ON_RECEIVED_REDIRECT, |
5405 AsyncLoggingUrlRequestDelegate::CANCEL_ON_RESPONSE_STARTED, | 5394 AsyncLoggingUrlRequestDelegate::CANCEL_ON_RESPONSE_STARTED, |
(...skipping 22 matching lines...) Expand all Loading... |
5428 TestNetLogEntry::List entries; | 5417 TestNetLogEntry::List entries; |
5429 net_log.GetEntries(&entries); | 5418 net_log.GetEntries(&entries); |
5430 | 5419 |
5431 // Delegate info is always logged in both OnReceivedRedirect and | 5420 // Delegate info is always logged in both OnReceivedRedirect and |
5432 // OnResponseStarted. In the CANCEL_ON_RECEIVED_REDIRECT, the | 5421 // OnResponseStarted. In the CANCEL_ON_RECEIVED_REDIRECT, the |
5433 // OnResponseStarted delegate call is after cancellation, but logging is | 5422 // OnResponseStarted delegate call is after cancellation, but logging is |
5434 // still currently supported in that call. | 5423 // still currently supported in that call. |
5435 size_t log_position = 0; | 5424 size_t log_position = 0; |
5436 for (int i = 0; i < 2; ++i) { | 5425 for (int i = 0; i < 2; ++i) { |
5437 log_position = ExpectLogContainsSomewhereAfter( | 5426 log_position = ExpectLogContainsSomewhereAfter( |
5438 entries, | 5427 entries, log_position, NetLogEventType::URL_REQUEST_DELEGATE, |
5439 log_position, | 5428 NetLogEventPhase::BEGIN); |
5440 NetLog::TYPE_URL_REQUEST_DELEGATE, | |
5441 NetLog::PHASE_BEGIN); | |
5442 | 5429 |
5443 log_position = AsyncDelegateLogger::CheckDelegateInfo(entries, | 5430 log_position = AsyncDelegateLogger::CheckDelegateInfo(entries, |
5444 log_position + 1); | 5431 log_position + 1); |
5445 | 5432 |
5446 ASSERT_LT(log_position, entries.size()); | 5433 ASSERT_LT(log_position, entries.size()); |
5447 EXPECT_EQ(NetLog::TYPE_URL_REQUEST_DELEGATE, entries[log_position].type); | 5434 EXPECT_EQ(NetLogEventType::URL_REQUEST_DELEGATE, |
5448 EXPECT_EQ(NetLog::PHASE_END, entries[log_position].phase); | 5435 entries[log_position].type); |
| 5436 EXPECT_EQ(NetLogEventPhase::END, entries[log_position].phase); |
5449 } | 5437 } |
5450 | 5438 |
| 5439 EXPECT_FALSE(LogContainsEntryWithTypeAfter(entries, log_position + 1, |
| 5440 NetLogEventType::DELEGATE_INFO)); |
5451 EXPECT_FALSE(LogContainsEntryWithTypeAfter( | 5441 EXPECT_FALSE(LogContainsEntryWithTypeAfter( |
5452 entries, log_position + 1, NetLog::TYPE_DELEGATE_INFO)); | 5442 entries, log_position + 1, NetLogEventType::URL_REQUEST_DELEGATE)); |
5453 EXPECT_FALSE(LogContainsEntryWithTypeAfter( | |
5454 entries, log_position + 1, NetLog::TYPE_URL_REQUEST_DELEGATE)); | |
5455 } | 5443 } |
5456 } | 5444 } |
5457 | 5445 |
5458 namespace { | 5446 namespace { |
5459 | 5447 |
5460 const char kExtraHeader[] = "Allow-Snafu"; | 5448 const char kExtraHeader[] = "Allow-Snafu"; |
5461 const char kExtraValue[] = "fubar"; | 5449 const char kExtraValue[] = "fubar"; |
5462 | 5450 |
5463 class RedirectWithAdditionalHeadersDelegate : public TestDelegate { | 5451 class RedirectWithAdditionalHeadersDelegate : public TestDelegate { |
5464 void OnReceivedRedirect(URLRequest* request, | 5452 void OnReceivedRedirect(URLRequest* request, |
(...skipping 4787 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10252 AddTestInterceptor()->set_main_intercept_job(std::move(job)); | 10240 AddTestInterceptor()->set_main_intercept_job(std::move(job)); |
10253 | 10241 |
10254 req->Start(); | 10242 req->Start(); |
10255 req->Cancel(); | 10243 req->Cancel(); |
10256 base::RunLoop().RunUntilIdle(); | 10244 base::RunLoop().RunUntilIdle(); |
10257 EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status()); | 10245 EXPECT_EQ(URLRequestStatus::CANCELED, req->status().status()); |
10258 EXPECT_EQ(0, d.received_redirect_count()); | 10246 EXPECT_EQ(0, d.received_redirect_count()); |
10259 } | 10247 } |
10260 | 10248 |
10261 } // namespace net | 10249 } // namespace net |
OLD | NEW |