| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/url_request/url_request_http_job.h" | 5 #include "net/url_request/url_request_http_job.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <cstddef> | 9 #include <cstddef> |
| 10 | 10 |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 142 request->Start(); | 142 request->Start(); |
| 143 ASSERT_TRUE(request->is_pending()); | 143 ASSERT_TRUE(request->is_pending()); |
| 144 base::RunLoop().Run(); | 144 base::RunLoop().Run(); |
| 145 | 145 |
| 146 EXPECT_TRUE(request->status().is_success()); | 146 EXPECT_TRUE(request->status().is_success()); |
| 147 EXPECT_EQ(12, request->received_response_content_length()); | 147 EXPECT_EQ(12, request->received_response_content_length()); |
| 148 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), | 148 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
| 149 request->GetTotalSentBytes()); | 149 request->GetTotalSentBytes()); |
| 150 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 150 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
| 151 request->GetTotalReceivedBytes()); | 151 request->GetTotalReceivedBytes()); |
| 152 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
| 153 network_delegate_.total_network_bytes_sent()); |
| 152 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 154 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
| 153 network_delegate_.total_network_bytes_received()); | 155 network_delegate_.total_network_bytes_received()); |
| 154 } | 156 } |
| 155 | 157 |
| 156 TEST_F(URLRequestHttpJobWithMockSocketsTest, | 158 TEST_F(URLRequestHttpJobWithMockSocketsTest, |
| 157 TestContentLengthSuccessfulHttp09Request) { | 159 TestContentLengthSuccessfulHttp09Request) { |
| 158 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)}; | 160 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)}; |
| 159 MockRead reads[] = {MockRead("Test Content"), | 161 MockRead reads[] = {MockRead("Test Content"), |
| 160 MockRead(net::SYNCHRONOUS, net::OK)}; | 162 MockRead(net::SYNCHRONOUS, net::OK)}; |
| 161 | 163 |
| 162 StaticSocketDataProvider socket_data(reads, arraysize(reads), nullptr, 0); | 164 StaticSocketDataProvider socket_data(reads, arraysize(reads), nullptr, 0); |
| 163 socket_factory_.AddSocketDataProvider(&socket_data); | 165 socket_factory_.AddSocketDataProvider(&socket_data); |
| 164 | 166 |
| 165 TestDelegate delegate; | 167 TestDelegate delegate; |
| 166 scoped_ptr<URLRequest> request = | 168 scoped_ptr<URLRequest> request = |
| 167 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, | 169 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, |
| 168 &delegate) | 170 &delegate) |
| 169 .Pass(); | 171 .Pass(); |
| 170 | 172 |
| 171 request->Start(); | 173 request->Start(); |
| 172 ASSERT_TRUE(request->is_pending()); | 174 ASSERT_TRUE(request->is_pending()); |
| 173 base::RunLoop().Run(); | 175 base::RunLoop().Run(); |
| 174 | 176 |
| 175 EXPECT_TRUE(request->status().is_success()); | 177 EXPECT_TRUE(request->status().is_success()); |
| 176 EXPECT_EQ(12, request->received_response_content_length()); | 178 EXPECT_EQ(12, request->received_response_content_length()); |
| 177 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), | 179 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
| 178 request->GetTotalSentBytes()); | 180 request->GetTotalSentBytes()); |
| 179 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 181 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
| 180 request->GetTotalReceivedBytes()); | 182 request->GetTotalReceivedBytes()); |
| 183 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
| 184 network_delegate_.total_network_bytes_sent()); |
| 181 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 185 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
| 182 network_delegate_.total_network_bytes_received()); | 186 network_delegate_.total_network_bytes_received()); |
| 183 } | 187 } |
| 184 | 188 |
| 185 TEST_F(URLRequestHttpJobWithMockSocketsTest, TestContentLengthFailedRequest) { | 189 TEST_F(URLRequestHttpJobWithMockSocketsTest, TestContentLengthFailedRequest) { |
| 186 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)}; | 190 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)}; |
| 187 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n" | 191 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n" |
| 188 "Content-Length: 20\r\n\r\n"), | 192 "Content-Length: 20\r\n\r\n"), |
| 189 MockRead("Test Content"), | 193 MockRead("Test Content"), |
| 190 MockRead(net::SYNCHRONOUS, net::ERR_FAILED)}; | 194 MockRead(net::SYNCHRONOUS, net::ERR_FAILED)}; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 202 request->Start(); | 206 request->Start(); |
| 203 ASSERT_TRUE(request->is_pending()); | 207 ASSERT_TRUE(request->is_pending()); |
| 204 base::RunLoop().Run(); | 208 base::RunLoop().Run(); |
| 205 | 209 |
| 206 EXPECT_EQ(URLRequestStatus::FAILED, request->status().status()); | 210 EXPECT_EQ(URLRequestStatus::FAILED, request->status().status()); |
| 207 EXPECT_EQ(12, request->received_response_content_length()); | 211 EXPECT_EQ(12, request->received_response_content_length()); |
| 208 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), | 212 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
| 209 request->GetTotalSentBytes()); | 213 request->GetTotalSentBytes()); |
| 210 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 214 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
| 211 request->GetTotalReceivedBytes()); | 215 request->GetTotalReceivedBytes()); |
| 216 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
| 217 network_delegate_.total_network_bytes_sent()); |
| 212 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 218 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
| 213 network_delegate_.total_network_bytes_received()); | 219 network_delegate_.total_network_bytes_received()); |
| 214 } | 220 } |
| 215 | 221 |
| 216 TEST_F(URLRequestHttpJobWithMockSocketsTest, | 222 TEST_F(URLRequestHttpJobWithMockSocketsTest, |
| 217 TestContentLengthCancelledRequest) { | 223 TestContentLengthCancelledRequest) { |
| 218 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)}; | 224 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)}; |
| 219 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n" | 225 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n" |
| 220 "Content-Length: 20\r\n\r\n"), | 226 "Content-Length: 20\r\n\r\n"), |
| 221 MockRead("Test Content"), | 227 MockRead("Test Content"), |
| (...skipping 12 matching lines...) Expand all Loading... |
| 234 delegate.set_cancel_in_received_data(true); | 240 delegate.set_cancel_in_received_data(true); |
| 235 request->Start(); | 241 request->Start(); |
| 236 base::RunLoop().RunUntilIdle(); | 242 base::RunLoop().RunUntilIdle(); |
| 237 | 243 |
| 238 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status()); | 244 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status()); |
| 239 EXPECT_EQ(12, request->received_response_content_length()); | 245 EXPECT_EQ(12, request->received_response_content_length()); |
| 240 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), | 246 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
| 241 request->GetTotalSentBytes()); | 247 request->GetTotalSentBytes()); |
| 242 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 248 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
| 243 request->GetTotalReceivedBytes()); | 249 request->GetTotalReceivedBytes()); |
| 250 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
| 251 network_delegate_.total_network_bytes_sent()); |
| 244 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 252 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
| 245 network_delegate_.total_network_bytes_received()); | 253 network_delegate_.total_network_bytes_received()); |
| 246 } | 254 } |
| 247 | 255 |
| 248 TEST_F(URLRequestHttpJobWithMockSocketsTest, | 256 TEST_F(URLRequestHttpJobWithMockSocketsTest, |
| 249 TestNetworkBytesRedirectedRequest) { | 257 TestNetworkBytesRedirectedRequest) { |
| 250 MockWrite redirect_writes[] = { | 258 MockWrite redirect_writes[] = { |
| 251 MockWrite("GET / HTTP/1.1\r\n" | 259 MockWrite("GET / HTTP/1.1\r\n" |
| 252 "Host: www.redirect.com\r\n" | 260 "Host: www.redirect.com\r\n" |
| 253 "Connection: keep-alive\r\n" | 261 "Connection: keep-alive\r\n" |
| (...skipping 30 matching lines...) Expand all Loading... |
| 284 base::RunLoop().RunUntilIdle(); | 292 base::RunLoop().RunUntilIdle(); |
| 285 | 293 |
| 286 EXPECT_TRUE(request->status().is_success()); | 294 EXPECT_TRUE(request->status().is_success()); |
| 287 EXPECT_EQ(12, request->received_response_content_length()); | 295 EXPECT_EQ(12, request->received_response_content_length()); |
| 288 // Should not include the redirect. | 296 // Should not include the redirect. |
| 289 EXPECT_EQ(CountWriteBytes(final_writes, arraysize(final_writes)), | 297 EXPECT_EQ(CountWriteBytes(final_writes, arraysize(final_writes)), |
| 290 request->GetTotalSentBytes()); | 298 request->GetTotalSentBytes()); |
| 291 EXPECT_EQ(CountReadBytes(final_reads, arraysize(final_reads)), | 299 EXPECT_EQ(CountReadBytes(final_reads, arraysize(final_reads)), |
| 292 request->GetTotalReceivedBytes()); | 300 request->GetTotalReceivedBytes()); |
| 293 // Should include the redirect as well as the final response. | 301 // Should include the redirect as well as the final response. |
| 302 EXPECT_EQ(CountWriteBytes(redirect_writes, arraysize(redirect_writes)) + |
| 303 CountWriteBytes(final_writes, arraysize(final_writes)), |
| 304 network_delegate_.total_network_bytes_sent()); |
| 294 EXPECT_EQ(CountReadBytes(redirect_reads, arraysize(redirect_reads)) + | 305 EXPECT_EQ(CountReadBytes(redirect_reads, arraysize(redirect_reads)) + |
| 295 CountReadBytes(final_reads, arraysize(final_reads)), | 306 CountReadBytes(final_reads, arraysize(final_reads)), |
| 296 network_delegate_.total_network_bytes_received()); | 307 network_delegate_.total_network_bytes_received()); |
| 297 } | 308 } |
| 298 | 309 |
| 299 TEST_F(URLRequestHttpJobWithMockSocketsTest, | 310 TEST_F(URLRequestHttpJobWithMockSocketsTest, |
| 300 TestNetworkBytesCancelledAfterHeaders) { | 311 TestNetworkBytesCancelledAfterHeaders) { |
| 301 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)}; | 312 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)}; |
| 302 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n\r\n")}; | 313 MockRead reads[] = {MockRead("HTTP/1.1 200 OK\r\n\r\n")}; |
| 303 StaticSocketDataProvider socket_data(reads, arraysize(reads), writes, | 314 StaticSocketDataProvider socket_data(reads, arraysize(reads), writes, |
| 304 arraysize(writes)); | 315 arraysize(writes)); |
| 305 socket_factory_.AddSocketDataProvider(&socket_data); | 316 socket_factory_.AddSocketDataProvider(&socket_data); |
| 306 | 317 |
| 307 TestDelegate delegate; | 318 TestDelegate delegate; |
| 308 scoped_ptr<URLRequest> request = | 319 scoped_ptr<URLRequest> request = |
| 309 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, | 320 context_->CreateRequest(GURL("http://www.example.com"), DEFAULT_PRIORITY, |
| 310 &delegate) | 321 &delegate) |
| 311 .Pass(); | 322 .Pass(); |
| 312 | 323 |
| 313 delegate.set_cancel_in_response_started(true); | 324 delegate.set_cancel_in_response_started(true); |
| 314 request->Start(); | 325 request->Start(); |
| 315 base::RunLoop().RunUntilIdle(); | 326 base::RunLoop().RunUntilIdle(); |
| 316 | 327 |
| 317 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status()); | 328 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status()); |
| 318 EXPECT_EQ(0, request->received_response_content_length()); | 329 EXPECT_EQ(0, request->received_response_content_length()); |
| 319 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), | 330 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
| 320 request->GetTotalSentBytes()); | 331 request->GetTotalSentBytes()); |
| 321 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 332 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
| 322 request->GetTotalReceivedBytes()); | 333 request->GetTotalReceivedBytes()); |
| 334 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
| 335 network_delegate_.total_network_bytes_sent()); |
| 323 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 336 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
| 324 network_delegate_.total_network_bytes_received()); | 337 network_delegate_.total_network_bytes_received()); |
| 325 } | 338 } |
| 326 | 339 |
| 327 TEST_F(URLRequestHttpJobWithMockSocketsTest, | 340 TEST_F(URLRequestHttpJobWithMockSocketsTest, |
| 328 TestNetworkBytesCancelledImmediately) { | 341 TestNetworkBytesCancelledImmediately) { |
| 329 StaticSocketDataProvider socket_data(nullptr, 0, nullptr, 0); | 342 StaticSocketDataProvider socket_data(nullptr, 0, nullptr, 0); |
| 330 socket_factory_.AddSocketDataProvider(&socket_data); | 343 socket_factory_.AddSocketDataProvider(&socket_data); |
| 331 | 344 |
| 332 TestDelegate delegate; | 345 TestDelegate delegate; |
| (...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 713 req_->SetLoadFlags(LOAD_DISABLE_CACHE); | 726 req_->SetLoadFlags(LOAD_DISABLE_CACHE); |
| 714 job->Start(); | 727 job->Start(); |
| 715 base::RunLoop().RunUntilIdle(); | 728 base::RunLoop().RunUntilIdle(); |
| 716 EXPECT_EQ(URLRequestStatus::IO_PENDING, req_->status().status()); | 729 EXPECT_EQ(URLRequestStatus::IO_PENDING, req_->status().status()); |
| 717 EXPECT_TRUE(fake_handshake_stream->initialize_stream_was_called()); | 730 EXPECT_TRUE(fake_handshake_stream->initialize_stream_was_called()); |
| 718 } | 731 } |
| 719 | 732 |
| 720 } // namespace | 733 } // namespace |
| 721 | 734 |
| 722 } // namespace net | 735 } // namespace net |
| OLD | NEW |