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 "build/build_config.h" | 5 #include "build/build_config.h" |
| 6 | 6 |
| 7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
| 8 #include <windows.h> | 8 #include <windows.h> |
| 9 #include <shlobj.h> | 9 #include <shlobj.h> |
| 10 #endif | 10 #endif |
| (...skipping 3809 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3820 &delegate_info)); | 3820 &delegate_info)); |
| 3821 EXPECT_EQ(kSecondDelegateInfo, delegate_info); | 3821 EXPECT_EQ(kSecondDelegateInfo, delegate_info); |
| 3822 | 3822 |
| 3823 ++log_position; | 3823 ++log_position; |
| 3824 EXPECT_EQ(NetLog::TYPE_DELEGATE_INFO, entries[log_position].type); | 3824 EXPECT_EQ(NetLog::TYPE_DELEGATE_INFO, entries[log_position].type); |
| 3825 EXPECT_EQ(NetLog::PHASE_END, entries[log_position].phase); | 3825 EXPECT_EQ(NetLog::PHASE_END, entries[log_position].phase); |
| 3826 | 3826 |
| 3827 return log_position + 1; | 3827 return log_position + 1; |
| 3828 } | 3828 } |
| 3829 | 3829 |
| 3830 static size_t ExpectBeforeNetworkStartBeginAndEnd( | |
| 3831 const CapturingNetLog::CapturedEntryList& entries, size_t log_position) { | |
| 3832 log_position = ExpectLogContainsSomewhereAfter( | |
| 3833 entries, log_position, NetLog::TYPE_URL_REQUEST_DELEGATE, | |
| 3834 NetLog::PHASE_BEGIN); | |
| 3835 EXPECT_EQ(NetLog::TYPE_URL_REQUEST_DELEGATE, | |
| 3836 entries[log_position + 1].type); | |
| 3837 EXPECT_EQ(NetLog::PHASE_END, entries[log_position + 1].phase); | |
| 3838 return log_position + 1; | |
| 3839 } | |
| 3840 | |
| 3830 private: | 3841 private: |
| 3831 friend class base::RefCounted<AsyncDelegateLogger>; | 3842 friend class base::RefCounted<AsyncDelegateLogger>; |
| 3832 | 3843 |
| 3833 AsyncDelegateLogger(URLRequest* url_request, | 3844 AsyncDelegateLogger(URLRequest* url_request, |
| 3834 LoadState expected_first_load_state, | 3845 LoadState expected_first_load_state, |
| 3835 LoadState expected_second_load_state, | 3846 LoadState expected_second_load_state, |
| 3836 LoadState expected_third_load_state, | 3847 LoadState expected_third_load_state, |
| 3837 const Callback& callback) | 3848 const Callback& callback) |
| 3838 : url_request_(url_request), | 3849 : url_request_(url_request), |
| 3839 expected_first_load_state_(expected_first_load_state), | 3850 expected_first_load_state_(expected_first_load_state), |
| (...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4134 log_position + 1, | 4145 log_position + 1, |
| 4135 NetLog::TYPE_URL_REQUEST_DELEGATE, | 4146 NetLog::TYPE_URL_REQUEST_DELEGATE, |
| 4136 NetLog::PHASE_BEGIN); | 4147 NetLog::PHASE_BEGIN); |
| 4137 | 4148 |
| 4138 log_position = AsyncDelegateLogger::CheckDelegateInfo(entries, | 4149 log_position = AsyncDelegateLogger::CheckDelegateInfo(entries, |
| 4139 log_position + 1); | 4150 log_position + 1); |
| 4140 | 4151 |
| 4141 ASSERT_LT(log_position, entries.size()); | 4152 ASSERT_LT(log_position, entries.size()); |
| 4142 EXPECT_EQ(NetLog::TYPE_URL_REQUEST_DELEGATE, entries[log_position].type); | 4153 EXPECT_EQ(NetLog::TYPE_URL_REQUEST_DELEGATE, entries[log_position].type); |
| 4143 EXPECT_EQ(NetLog::PHASE_END, entries[log_position].phase); | 4154 EXPECT_EQ(NetLog::PHASE_END, entries[log_position].phase); |
| 4155 | |
| 4156 if (i == 1) | |
| 4157 log_position = AsyncDelegateLogger::ExpectBeforeNetworkStartBeginAndEnd( | |
| 4158 entries, log_position + 1); | |
|
mmenke
2014/01/07 15:26:23
nit: Use braces when body of if takes up more tha
jkarlin
2014/01/07 16:19:32
Done.
| |
| 4144 } | 4159 } |
| 4145 | 4160 |
| 4146 EXPECT_FALSE(LogContainsEntryWithTypeAfter( | 4161 EXPECT_FALSE(LogContainsEntryWithTypeAfter( |
| 4147 entries, log_position + 1, NetLog::TYPE_DELEGATE_INFO)); | 4162 entries, log_position + 1, NetLog::TYPE_DELEGATE_INFO)); |
| 4148 } | 4163 } |
| 4149 | 4164 |
| 4150 // Tests handling of delegate info from a network delegate in the case of an | 4165 // Tests handling of delegate info from a network delegate in the case of an |
| 4151 // HTTP redirect. | 4166 // HTTP redirect. |
| 4152 TEST_F(URLRequestTestHTTP, NetworkDelegateInfoRedirect) { | 4167 TEST_F(URLRequestTestHTTP, NetworkDelegateInfoRedirect) { |
| 4153 ASSERT_TRUE(test_server_.Start()); | 4168 ASSERT_TRUE(test_server_.Start()); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4189 log_position + 1, | 4204 log_position + 1, |
| 4190 NetLog::TYPE_URL_REQUEST_DELEGATE, | 4205 NetLog::TYPE_URL_REQUEST_DELEGATE, |
| 4191 NetLog::PHASE_BEGIN); | 4206 NetLog::PHASE_BEGIN); |
| 4192 | 4207 |
| 4193 log_position = AsyncDelegateLogger::CheckDelegateInfo(entries, | 4208 log_position = AsyncDelegateLogger::CheckDelegateInfo(entries, |
| 4194 log_position + 1); | 4209 log_position + 1); |
| 4195 | 4210 |
| 4196 ASSERT_LT(log_position, entries.size()); | 4211 ASSERT_LT(log_position, entries.size()); |
| 4197 EXPECT_EQ(NetLog::TYPE_URL_REQUEST_DELEGATE, entries[log_position].type); | 4212 EXPECT_EQ(NetLog::TYPE_URL_REQUEST_DELEGATE, entries[log_position].type); |
| 4198 EXPECT_EQ(NetLog::PHASE_END, entries[log_position].phase); | 4213 EXPECT_EQ(NetLog::PHASE_END, entries[log_position].phase); |
| 4214 | |
| 4215 if (i == 1) | |
| 4216 log_position = AsyncDelegateLogger::ExpectBeforeNetworkStartBeginAndEnd( | |
| 4217 entries, log_position + 1); | |
| 4199 } | 4218 } |
| 4200 | 4219 |
| 4201 // The URLRequest::Delegate then gets informed about the redirect. | 4220 // The URLRequest::Delegate then gets informed about the redirect. |
| 4202 log_position = ExpectLogContainsSomewhereAfter( | 4221 log_position = ExpectLogContainsSomewhereAfter( |
| 4203 entries, | 4222 entries, |
| 4204 log_position + 1, | 4223 log_position + 1, |
| 4205 NetLog::TYPE_URL_REQUEST_DELEGATE, | 4224 NetLog::TYPE_URL_REQUEST_DELEGATE, |
| 4206 NetLog::PHASE_BEGIN); | 4225 NetLog::PHASE_BEGIN); |
| 4207 | 4226 |
| 4208 // The NetworkDelegate logged information in the same three events as before. | 4227 // The NetworkDelegate logged information in the same three events as before. |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4268 log_position + 1, | 4287 log_position + 1, |
| 4269 NetLog::TYPE_URL_REQUEST_DELEGATE, | 4288 NetLog::TYPE_URL_REQUEST_DELEGATE, |
| 4270 NetLog::PHASE_BEGIN); | 4289 NetLog::PHASE_BEGIN); |
| 4271 | 4290 |
| 4272 log_position = AsyncDelegateLogger::CheckDelegateInfo(entries, | 4291 log_position = AsyncDelegateLogger::CheckDelegateInfo(entries, |
| 4273 log_position + 1); | 4292 log_position + 1); |
| 4274 | 4293 |
| 4275 ASSERT_LT(log_position, entries.size()); | 4294 ASSERT_LT(log_position, entries.size()); |
| 4276 EXPECT_EQ(NetLog::TYPE_URL_REQUEST_DELEGATE, entries[log_position].type); | 4295 EXPECT_EQ(NetLog::TYPE_URL_REQUEST_DELEGATE, entries[log_position].type); |
| 4277 EXPECT_EQ(NetLog::PHASE_END, entries[log_position].phase); | 4296 EXPECT_EQ(NetLog::PHASE_END, entries[log_position].phase); |
| 4297 | |
| 4298 if (i == 1) | |
| 4299 log_position = AsyncDelegateLogger::ExpectBeforeNetworkStartBeginAndEnd( | |
| 4300 entries, log_position + 1); | |
| 4278 } | 4301 } |
| 4279 | 4302 |
| 4280 EXPECT_FALSE(LogContainsEntryWithTypeAfter( | 4303 EXPECT_FALSE(LogContainsEntryWithTypeAfter( |
| 4281 entries, log_position + 1, NetLog::TYPE_DELEGATE_INFO)); | 4304 entries, log_position + 1, NetLog::TYPE_DELEGATE_INFO)); |
| 4282 } | 4305 } |
| 4283 | 4306 |
| 4284 // Tests handling of delegate info from a URLRequest::Delegate. | 4307 // Tests handling of delegate info from a URLRequest::Delegate. |
| 4285 TEST_F(URLRequestTestHTTP, URLRequestDelegateInfo) { | 4308 TEST_F(URLRequestTestHTTP, URLRequestDelegateInfo) { |
| 4286 ASSERT_TRUE(test_server_.Start()); | 4309 ASSERT_TRUE(test_server_.Start()); |
| 4287 | 4310 |
| 4288 AsyncLoggingUrlRequestDelegate request_delegate( | 4311 AsyncLoggingUrlRequestDelegate request_delegate( |
| 4289 AsyncLoggingUrlRequestDelegate::NO_CANCEL); | 4312 AsyncLoggingUrlRequestDelegate::NO_CANCEL); |
| 4290 TestURLRequestContext context(true); | 4313 TestURLRequestContext context(true); |
| 4291 context.set_network_delegate(NULL); | 4314 context.set_network_delegate(NULL); |
| 4292 context.set_net_log(&net_log_); | 4315 context.set_net_log(&net_log_); |
| 4293 context.Init(); | 4316 context.Init(); |
| 4294 | 4317 |
| 4295 { | 4318 { |
| 4296 // A chunked response with delays between chunks is used to make sure that | 4319 // A chunked response with delays between chunks is used to make sure that |
| 4297 // attempts by the URLRequest delegate to log information while reading the | 4320 // attempts by the URLRequest delegate to log information while reading the |
| 4298 // body are ignored. Since they are ignored, this test is robust against | 4321 // body are ignored. Since they are ignored, this test is robust against |
| 4299 // the possability of multiple reads being combined in the unlikely event | 4322 // the possibility of multiple reads being combined in the unlikely event |
| 4300 // that it occurs. | 4323 // that it occurs. |
| 4301 URLRequest r(test_server_.GetURL("chunked?waitBetweenChunks=20"), | 4324 URLRequest r(test_server_.GetURL("chunked?waitBetweenChunks=20"), |
| 4302 DEFAULT_PRIORITY, | 4325 DEFAULT_PRIORITY, |
| 4303 &request_delegate, | 4326 &request_delegate, |
| 4304 &context); | 4327 &context); |
| 4305 LoadStateWithParam load_state = r.GetLoadState(); | 4328 LoadStateWithParam load_state = r.GetLoadState(); |
| 4306 r.Start(); | 4329 r.Start(); |
| 4307 base::RunLoop().Run(); | 4330 base::RunLoop().Run(); |
| 4308 | 4331 |
| 4309 EXPECT_EQ(200, r.GetResponseCode()); | 4332 EXPECT_EQ(200, r.GetResponseCode()); |
| 4310 EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status()); | 4333 EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status()); |
| 4311 } | 4334 } |
| 4312 | 4335 |
| 4313 CapturingNetLog::CapturedEntryList entries; | 4336 CapturingNetLog::CapturedEntryList entries; |
| 4314 net_log_.GetEntries(&entries); | 4337 net_log_.GetEntries(&entries); |
| 4315 | 4338 |
| 4339 size_t log_position = 0; | |
| 4340 | |
| 4341 log_position = AsyncDelegateLogger::ExpectBeforeNetworkStartBeginAndEnd( | |
| 4342 entries, log_position); | |
| 4343 | |
| 4316 // The delegate info should only have been logged on header complete. Other | 4344 // The delegate info should only have been logged on header complete. Other |
| 4317 // times it should silently be ignored. | 4345 // times it should silently be ignored. |
| 4318 | 4346 log_position = ExpectLogContainsSomewhereAfter( |
| 4319 size_t log_position = ExpectLogContainsSomewhereAfter( | 4347 entries, log_position + 1, NetLog::TYPE_URL_REQUEST_DELEGATE, |
| 4320 entries, | 4348 NetLog::PHASE_BEGIN); |
| 4321 0, | |
| 4322 NetLog::TYPE_URL_REQUEST_DELEGATE, | |
| 4323 NetLog::PHASE_BEGIN); | |
| 4324 | 4349 |
| 4325 log_position = AsyncDelegateLogger::CheckDelegateInfo(entries, | 4350 log_position = AsyncDelegateLogger::CheckDelegateInfo(entries, |
| 4326 log_position + 1); | 4351 log_position + 1); |
| 4327 | 4352 |
| 4328 ASSERT_LT(log_position, entries.size()); | 4353 ASSERT_LT(log_position, entries.size()); |
| 4329 EXPECT_EQ(NetLog::TYPE_URL_REQUEST_DELEGATE, entries[log_position].type); | 4354 EXPECT_EQ(NetLog::TYPE_URL_REQUEST_DELEGATE, entries[log_position].type); |
| 4330 EXPECT_EQ(NetLog::PHASE_END, entries[log_position].phase); | 4355 EXPECT_EQ(NetLog::PHASE_END, entries[log_position].phase); |
| 4331 | 4356 |
| 4332 EXPECT_FALSE(LogContainsEntryWithTypeAfter( | 4357 EXPECT_FALSE(LogContainsEntryWithTypeAfter( |
| 4333 entries, log_position + 1, NetLog::TYPE_DELEGATE_INFO)); | 4358 entries, log_position + 1, NetLog::TYPE_DELEGATE_INFO)); |
| (...skipping 26 matching lines...) Expand all Loading... | |
| 4360 EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status()); | 4385 EXPECT_EQ(URLRequestStatus::SUCCESS, r.status().status()); |
| 4361 } | 4386 } |
| 4362 | 4387 |
| 4363 CapturingNetLog::CapturedEntryList entries; | 4388 CapturingNetLog::CapturedEntryList entries; |
| 4364 net_log_.GetEntries(&entries); | 4389 net_log_.GetEntries(&entries); |
| 4365 | 4390 |
| 4366 // Delegate info should only have been logged in OnReceivedRedirect and | 4391 // Delegate info should only have been logged in OnReceivedRedirect and |
| 4367 // OnResponseStarted. | 4392 // OnResponseStarted. |
| 4368 size_t log_position = 0; | 4393 size_t log_position = 0; |
| 4369 for (int i = 0; i < 2; ++i) { | 4394 for (int i = 0; i < 2; ++i) { |
| 4395 if (i == 0) | |
| 4396 log_position = AsyncDelegateLogger::ExpectBeforeNetworkStartBeginAndEnd( | |
| 4397 entries, log_position) + 1; | |
| 4398 | |
| 4370 log_position = ExpectLogContainsSomewhereAfter( | 4399 log_position = ExpectLogContainsSomewhereAfter( |
| 4371 entries, | 4400 entries, |
| 4372 log_position, | 4401 log_position, |
| 4373 NetLog::TYPE_URL_REQUEST_DELEGATE, | 4402 NetLog::TYPE_URL_REQUEST_DELEGATE, |
| 4374 NetLog::PHASE_BEGIN); | 4403 NetLog::PHASE_BEGIN); |
| 4375 | 4404 |
| 4376 log_position = AsyncDelegateLogger::CheckDelegateInfo(entries, | 4405 log_position = AsyncDelegateLogger::CheckDelegateInfo(entries, |
| 4377 log_position + 1); | 4406 log_position + 1); |
| 4378 | 4407 |
| 4379 ASSERT_LT(log_position, entries.size()); | 4408 ASSERT_LT(log_position, entries.size()); |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4420 | 4449 |
| 4421 CapturingNetLog::CapturedEntryList entries; | 4450 CapturingNetLog::CapturedEntryList entries; |
| 4422 net_log.GetEntries(&entries); | 4451 net_log.GetEntries(&entries); |
| 4423 | 4452 |
| 4424 // Delegate info is always logged in both OnReceivedRedirect and | 4453 // Delegate info is always logged in both OnReceivedRedirect and |
| 4425 // OnResponseStarted. In the CANCEL_ON_RECEIVED_REDIRECT, the | 4454 // OnResponseStarted. In the CANCEL_ON_RECEIVED_REDIRECT, the |
| 4426 // OnResponseStarted delegate call is after cancellation, but logging is | 4455 // OnResponseStarted delegate call is after cancellation, but logging is |
| 4427 // still currently supported in that call. | 4456 // still currently supported in that call. |
| 4428 size_t log_position = 0; | 4457 size_t log_position = 0; |
| 4429 for (int i = 0; i < 2; ++i) { | 4458 for (int i = 0; i < 2; ++i) { |
| 4459 if (i == 0) | |
| 4460 log_position = | |
| 4461 AsyncDelegateLogger::ExpectBeforeNetworkStartBeginAndEnd( | |
| 4462 entries, log_position) + 1; | |
| 4463 | |
| 4430 log_position = ExpectLogContainsSomewhereAfter( | 4464 log_position = ExpectLogContainsSomewhereAfter( |
| 4431 entries, | 4465 entries, |
| 4432 log_position, | 4466 log_position, |
| 4433 NetLog::TYPE_URL_REQUEST_DELEGATE, | 4467 NetLog::TYPE_URL_REQUEST_DELEGATE, |
| 4434 NetLog::PHASE_BEGIN); | 4468 NetLog::PHASE_BEGIN); |
| 4435 | 4469 |
| 4436 log_position = AsyncDelegateLogger::CheckDelegateInfo(entries, | 4470 log_position = AsyncDelegateLogger::CheckDelegateInfo(entries, |
| 4437 log_position + 1); | 4471 log_position + 1); |
| 4438 | 4472 |
| 4439 ASSERT_LT(log_position, entries.size()); | 4473 ASSERT_LT(log_position, entries.size()); |
| (...skipping 737 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 5177 &d, | 5211 &d, |
| 5178 &default_context_); | 5212 &default_context_); |
| 5179 req.SetReferrer("http://foo.com/test#fragment"); | 5213 req.SetReferrer("http://foo.com/test#fragment"); |
| 5180 req.SetReferrer(""); | 5214 req.SetReferrer(""); |
| 5181 req.Start(); | 5215 req.Start(); |
| 5182 base::RunLoop().Run(); | 5216 base::RunLoop().Run(); |
| 5183 | 5217 |
| 5184 EXPECT_EQ(std::string("None"), d.data_received()); | 5218 EXPECT_EQ(std::string("None"), d.data_received()); |
| 5185 } | 5219 } |
| 5186 | 5220 |
| 5221 // Defer network start and then resume, checking that the request was a success | |
| 5222 // and bytes were received. | |
| 5223 TEST_F(URLRequestTestHTTP, DeferredBeforeNetworkStart) { | |
| 5224 ASSERT_TRUE(test_server_.Start()); | |
| 5225 | |
| 5226 TestDelegate d; | |
| 5227 { | |
| 5228 d.set_quit_on_network_start(true); | |
| 5229 GURL test_url(test_server_.GetURL("echo")); | |
| 5230 URLRequest req(test_url, DEFAULT_PRIORITY, &d, &default_context_); | |
| 5231 | |
| 5232 req.Start(); | |
| 5233 base::RunLoop().Run(); | |
| 5234 | |
| 5235 EXPECT_EQ(1, d.received_before_network_start_count()); | |
| 5236 EXPECT_EQ(0, d.response_started_count()); | |
| 5237 | |
| 5238 req.ResumeNetworkStart(); | |
| 5239 base::RunLoop().Run(); | |
| 5240 | |
| 5241 EXPECT_EQ(1, d.response_started_count()); | |
| 5242 EXPECT_NE(0, d.bytes_received()); | |
| 5243 EXPECT_EQ(URLRequestStatus::SUCCESS, req.status().status()); | |
| 5244 } | |
| 5245 } | |
| 5246 | |
| 5247 // Check that OnBeforeNetworkStart is only called once even if there is a | |
| 5248 // redirect. | |
| 5249 TEST_F(URLRequestTestHTTP, BeforeNetworkStartCalledOnce) { | |
| 5250 ASSERT_TRUE(test_server_.Start()); | |
| 5251 | |
| 5252 TestDelegate d; | |
| 5253 { | |
| 5254 d.set_quit_on_redirect(true); | |
| 5255 d.set_quit_on_network_start(true); | |
| 5256 URLRequest req(test_server_.GetURL("server-redirect?simple.html"), | |
| 5257 DEFAULT_PRIORITY, | |
| 5258 &d, | |
| 5259 &default_context_); | |
| 5260 | |
| 5261 req.Start(); | |
| 5262 base::RunLoop().Run(); | |
| 5263 | |
| 5264 EXPECT_EQ(1, d.received_before_network_start_count()); | |
| 5265 EXPECT_EQ(0, d.response_started_count()); | |
| 5266 EXPECT_EQ(0, d.received_redirect_count()); | |
| 5267 | |
| 5268 req.ResumeNetworkStart(); | |
| 5269 base::RunLoop().Run(); | |
| 5270 | |
| 5271 EXPECT_EQ(1, d.received_redirect_count()); | |
| 5272 req.FollowDeferredRedirect(); | |
| 5273 base::RunLoop().Run(); | |
| 5274 | |
| 5275 // Check that the redirect's new network transaction does not get propagated | |
| 5276 // to a second OnBeforeNetworkStart() notification. | |
| 5277 EXPECT_EQ(1, d.received_before_network_start_count()); | |
| 5278 | |
| 5279 EXPECT_EQ(1, d.response_started_count()); | |
| 5280 EXPECT_NE(0, d.bytes_received()); | |
| 5281 EXPECT_EQ(URLRequestStatus::SUCCESS, req.status().status()); | |
| 5282 } | |
| 5283 } | |
| 5284 | |
| 5285 // Cancel the request after learning that the request would use the network. | |
| 5286 TEST_F(URLRequestTestHTTP, CancelOnBeforeNetworkStart) { | |
| 5287 ASSERT_TRUE(test_server_.Start()); | |
| 5288 | |
| 5289 TestDelegate d; | |
| 5290 { | |
| 5291 d.set_quit_on_network_start(true); | |
| 5292 GURL test_url(test_server_.GetURL("echo")); | |
| 5293 URLRequest req(test_url, DEFAULT_PRIORITY, &d, &default_context_); | |
| 5294 | |
| 5295 req.Start(); | |
| 5296 base::RunLoop().Run(); | |
| 5297 | |
| 5298 EXPECT_EQ(1, d.received_before_network_start_count()); | |
| 5299 EXPECT_EQ(0, d.response_started_count()); | |
| 5300 | |
| 5301 req.Cancel(); | |
| 5302 base::RunLoop().Run(); | |
| 5303 | |
| 5304 EXPECT_EQ(1, d.response_started_count()); | |
| 5305 EXPECT_EQ(0, d.bytes_received()); | |
| 5306 EXPECT_EQ(URLRequestStatus::CANCELED, req.status().status()); | |
| 5307 } | |
| 5308 } | |
| 5309 | |
| 5187 TEST_F(URLRequestTestHTTP, CancelRedirect) { | 5310 TEST_F(URLRequestTestHTTP, CancelRedirect) { |
| 5188 ASSERT_TRUE(test_server_.Start()); | 5311 ASSERT_TRUE(test_server_.Start()); |
| 5189 | 5312 |
| 5190 TestDelegate d; | 5313 TestDelegate d; |
| 5191 { | 5314 { |
| 5192 d.set_cancel_in_received_redirect(true); | 5315 d.set_cancel_in_received_redirect(true); |
| 5193 URLRequest req(test_server_.GetURL("files/redirect-test.html"), | 5316 URLRequest req(test_server_.GetURL("files/redirect-test.html"), |
| 5194 DEFAULT_PRIORITY, | 5317 DEFAULT_PRIORITY, |
| 5195 &d, | 5318 &d, |
| 5196 &default_context_); | 5319 &default_context_); |
| (...skipping 2284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 7481 | 7604 |
| 7482 EXPECT_FALSE(r.is_pending()); | 7605 EXPECT_FALSE(r.is_pending()); |
| 7483 EXPECT_EQ(1, d->response_started_count()); | 7606 EXPECT_EQ(1, d->response_started_count()); |
| 7484 EXPECT_FALSE(d->received_data_before_response()); | 7607 EXPECT_FALSE(d->received_data_before_response()); |
| 7485 EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size)); | 7608 EXPECT_EQ(d->bytes_received(), static_cast<int>(file_size)); |
| 7486 } | 7609 } |
| 7487 } | 7610 } |
| 7488 #endif // !defined(DISABLE_FTP_SUPPORT) | 7611 #endif // !defined(DISABLE_FTP_SUPPORT) |
| 7489 | 7612 |
| 7490 } // namespace net | 7613 } // namespace net |
| OLD | NEW |