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 #include <memory> | 10 #include <memory> |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
155 socket_factory_.AddSocketDataProvider(&socket_data); | 155 socket_factory_.AddSocketDataProvider(&socket_data); |
156 | 156 |
157 TestDelegate delegate; | 157 TestDelegate delegate; |
158 std::unique_ptr<URLRequest> request = context_->CreateRequest( | 158 std::unique_ptr<URLRequest> request = context_->CreateRequest( |
159 GURL("http://www.example.com"), DEFAULT_PRIORITY, &delegate); | 159 GURL("http://www.example.com"), DEFAULT_PRIORITY, &delegate); |
160 | 160 |
161 request->Start(); | 161 request->Start(); |
162 ASSERT_TRUE(request->is_pending()); | 162 ASSERT_TRUE(request->is_pending()); |
163 base::RunLoop().Run(); | 163 base::RunLoop().Run(); |
164 | 164 |
165 EXPECT_TRUE(request->status().is_success()); | 165 EXPECT_EQ(OK, delegate.request_status()); |
166 EXPECT_EQ(12, request->received_response_content_length()); | 166 EXPECT_EQ(12, request->received_response_content_length()); |
167 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), | 167 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
168 request->GetTotalSentBytes()); | 168 request->GetTotalSentBytes()); |
169 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 169 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
170 request->GetTotalReceivedBytes()); | 170 request->GetTotalReceivedBytes()); |
171 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), | 171 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
172 network_delegate_.total_network_bytes_sent()); | 172 network_delegate_.total_network_bytes_sent()); |
173 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 173 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
174 network_delegate_.total_network_bytes_received()); | 174 network_delegate_.total_network_bytes_received()); |
175 } | 175 } |
176 | 176 |
177 TEST_F(URLRequestHttpJobWithMockSocketsTest, | 177 TEST_F(URLRequestHttpJobWithMockSocketsTest, |
178 TestContentLengthSuccessfulHttp09Request) { | 178 TestContentLengthSuccessfulHttp09Request) { |
179 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)}; | 179 MockWrite writes[] = {MockWrite(kSimpleGetMockWrite)}; |
180 MockRead reads[] = {MockRead("Test Content"), | 180 MockRead reads[] = {MockRead("Test Content"), |
181 MockRead(net::SYNCHRONOUS, net::OK)}; | 181 MockRead(net::SYNCHRONOUS, net::OK)}; |
182 | 182 |
183 StaticSocketDataProvider socket_data(reads, arraysize(reads), nullptr, 0); | 183 StaticSocketDataProvider socket_data(reads, arraysize(reads), nullptr, 0); |
184 socket_factory_.AddSocketDataProvider(&socket_data); | 184 socket_factory_.AddSocketDataProvider(&socket_data); |
185 | 185 |
186 TestDelegate delegate; | 186 TestDelegate delegate; |
187 std::unique_ptr<URLRequest> request = context_->CreateRequest( | 187 std::unique_ptr<URLRequest> request = context_->CreateRequest( |
188 GURL("http://www.example.com"), DEFAULT_PRIORITY, &delegate); | 188 GURL("http://www.example.com"), DEFAULT_PRIORITY, &delegate); |
189 | 189 |
190 request->Start(); | 190 request->Start(); |
191 ASSERT_TRUE(request->is_pending()); | 191 ASSERT_TRUE(request->is_pending()); |
192 base::RunLoop().Run(); | 192 base::RunLoop().Run(); |
193 | 193 |
194 EXPECT_TRUE(request->status().is_success()); | 194 EXPECT_EQ(OK, delegate.request_status()); |
195 EXPECT_EQ(12, request->received_response_content_length()); | 195 EXPECT_EQ(12, request->received_response_content_length()); |
196 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), | 196 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
197 request->GetTotalSentBytes()); | 197 request->GetTotalSentBytes()); |
198 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 198 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
199 request->GetTotalReceivedBytes()); | 199 request->GetTotalReceivedBytes()); |
200 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), | 200 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
201 network_delegate_.total_network_bytes_sent()); | 201 network_delegate_.total_network_bytes_sent()); |
202 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 202 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
203 network_delegate_.total_network_bytes_received()); | 203 network_delegate_.total_network_bytes_received()); |
204 } | 204 } |
(...skipping 10 matching lines...) Expand all Loading... |
215 socket_factory_.AddSocketDataProvider(&socket_data); | 215 socket_factory_.AddSocketDataProvider(&socket_data); |
216 | 216 |
217 TestDelegate delegate; | 217 TestDelegate delegate; |
218 std::unique_ptr<URLRequest> request = context_->CreateRequest( | 218 std::unique_ptr<URLRequest> request = context_->CreateRequest( |
219 GURL("http://www.example.com"), DEFAULT_PRIORITY, &delegate); | 219 GURL("http://www.example.com"), DEFAULT_PRIORITY, &delegate); |
220 | 220 |
221 request->Start(); | 221 request->Start(); |
222 ASSERT_TRUE(request->is_pending()); | 222 ASSERT_TRUE(request->is_pending()); |
223 base::RunLoop().Run(); | 223 base::RunLoop().Run(); |
224 | 224 |
225 EXPECT_EQ(URLRequestStatus::FAILED, request->status().status()); | 225 EXPECT_EQ(ERR_FAILED, delegate.request_status()); |
226 EXPECT_EQ(12, request->received_response_content_length()); | 226 EXPECT_EQ(12, request->received_response_content_length()); |
227 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), | 227 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
228 request->GetTotalSentBytes()); | 228 request->GetTotalSentBytes()); |
229 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 229 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
230 request->GetTotalReceivedBytes()); | 230 request->GetTotalReceivedBytes()); |
231 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), | 231 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
232 network_delegate_.total_network_bytes_sent()); | 232 network_delegate_.total_network_bytes_sent()); |
233 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 233 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
234 network_delegate_.total_network_bytes_received()); | 234 network_delegate_.total_network_bytes_received()); |
235 } | 235 } |
(...skipping 11 matching lines...) Expand all Loading... |
247 socket_factory_.AddSocketDataProvider(&socket_data); | 247 socket_factory_.AddSocketDataProvider(&socket_data); |
248 | 248 |
249 TestDelegate delegate; | 249 TestDelegate delegate; |
250 std::unique_ptr<URLRequest> request = context_->CreateRequest( | 250 std::unique_ptr<URLRequest> request = context_->CreateRequest( |
251 GURL("http://www.example.com"), DEFAULT_PRIORITY, &delegate); | 251 GURL("http://www.example.com"), DEFAULT_PRIORITY, &delegate); |
252 | 252 |
253 delegate.set_cancel_in_received_data(true); | 253 delegate.set_cancel_in_received_data(true); |
254 request->Start(); | 254 request->Start(); |
255 base::RunLoop().RunUntilIdle(); | 255 base::RunLoop().RunUntilIdle(); |
256 | 256 |
257 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status()); | 257 EXPECT_EQ(ERR_ABORTED, delegate.request_status()); |
258 EXPECT_EQ(12, request->received_response_content_length()); | 258 EXPECT_EQ(12, request->received_response_content_length()); |
259 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), | 259 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
260 request->GetTotalSentBytes()); | 260 request->GetTotalSentBytes()); |
261 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 261 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
262 request->GetTotalReceivedBytes()); | 262 request->GetTotalReceivedBytes()); |
263 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), | 263 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
264 network_delegate_.total_network_bytes_sent()); | 264 network_delegate_.total_network_bytes_sent()); |
265 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 265 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
266 network_delegate_.total_network_bytes_received()); | 266 network_delegate_.total_network_bytes_received()); |
267 } | 267 } |
(...skipping 27 matching lines...) Expand all Loading... |
295 socket_factory_.AddSocketDataProvider(&final_socket_data); | 295 socket_factory_.AddSocketDataProvider(&final_socket_data); |
296 | 296 |
297 TestDelegate delegate; | 297 TestDelegate delegate; |
298 std::unique_ptr<URLRequest> request = context_->CreateRequest( | 298 std::unique_ptr<URLRequest> request = context_->CreateRequest( |
299 GURL("http://www.redirect.com"), DEFAULT_PRIORITY, &delegate); | 299 GURL("http://www.redirect.com"), DEFAULT_PRIORITY, &delegate); |
300 | 300 |
301 request->Start(); | 301 request->Start(); |
302 ASSERT_TRUE(request->is_pending()); | 302 ASSERT_TRUE(request->is_pending()); |
303 base::RunLoop().RunUntilIdle(); | 303 base::RunLoop().RunUntilIdle(); |
304 | 304 |
305 EXPECT_TRUE(request->status().is_success()); | 305 EXPECT_EQ(OK, delegate.request_status()); |
306 EXPECT_EQ(12, request->received_response_content_length()); | 306 EXPECT_EQ(12, request->received_response_content_length()); |
307 // Should not include the redirect. | 307 // Should not include the redirect. |
308 EXPECT_EQ(CountWriteBytes(final_writes, arraysize(final_writes)), | 308 EXPECT_EQ(CountWriteBytes(final_writes, arraysize(final_writes)), |
309 request->GetTotalSentBytes()); | 309 request->GetTotalSentBytes()); |
310 EXPECT_EQ(CountReadBytes(final_reads, arraysize(final_reads)), | 310 EXPECT_EQ(CountReadBytes(final_reads, arraysize(final_reads)), |
311 request->GetTotalReceivedBytes()); | 311 request->GetTotalReceivedBytes()); |
312 // Should include the redirect as well as the final response. | 312 // Should include the redirect as well as the final response. |
313 EXPECT_EQ(CountWriteBytes(redirect_writes, arraysize(redirect_writes)) + | 313 EXPECT_EQ(CountWriteBytes(redirect_writes, arraysize(redirect_writes)) + |
314 CountWriteBytes(final_writes, arraysize(final_writes)), | 314 CountWriteBytes(final_writes, arraysize(final_writes)), |
315 network_delegate_.total_network_bytes_sent()); | 315 network_delegate_.total_network_bytes_sent()); |
(...skipping 11 matching lines...) Expand all Loading... |
327 socket_factory_.AddSocketDataProvider(&socket_data); | 327 socket_factory_.AddSocketDataProvider(&socket_data); |
328 | 328 |
329 TestDelegate delegate; | 329 TestDelegate delegate; |
330 std::unique_ptr<URLRequest> request = context_->CreateRequest( | 330 std::unique_ptr<URLRequest> request = context_->CreateRequest( |
331 GURL("http://www.example.com"), DEFAULT_PRIORITY, &delegate); | 331 GURL("http://www.example.com"), DEFAULT_PRIORITY, &delegate); |
332 | 332 |
333 delegate.set_cancel_in_response_started(true); | 333 delegate.set_cancel_in_response_started(true); |
334 request->Start(); | 334 request->Start(); |
335 base::RunLoop().RunUntilIdle(); | 335 base::RunLoop().RunUntilIdle(); |
336 | 336 |
337 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status()); | 337 EXPECT_EQ(ERR_ABORTED, delegate.request_status()); |
338 EXPECT_EQ(0, request->received_response_content_length()); | 338 EXPECT_EQ(0, request->received_response_content_length()); |
339 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), | 339 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
340 request->GetTotalSentBytes()); | 340 request->GetTotalSentBytes()); |
341 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 341 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
342 request->GetTotalReceivedBytes()); | 342 request->GetTotalReceivedBytes()); |
343 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), | 343 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
344 network_delegate_.total_network_bytes_sent()); | 344 network_delegate_.total_network_bytes_sent()); |
345 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 345 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
346 network_delegate_.total_network_bytes_received()); | 346 network_delegate_.total_network_bytes_received()); |
347 } | 347 } |
348 | 348 |
349 TEST_F(URLRequestHttpJobWithMockSocketsTest, | 349 TEST_F(URLRequestHttpJobWithMockSocketsTest, |
350 TestNetworkBytesCancelledImmediately) { | 350 TestNetworkBytesCancelledImmediately) { |
351 StaticSocketDataProvider socket_data(nullptr, 0, nullptr, 0); | 351 StaticSocketDataProvider socket_data(nullptr, 0, nullptr, 0); |
352 socket_factory_.AddSocketDataProvider(&socket_data); | 352 socket_factory_.AddSocketDataProvider(&socket_data); |
353 | 353 |
354 TestDelegate delegate; | 354 TestDelegate delegate; |
355 std::unique_ptr<URLRequest> request = context_->CreateRequest( | 355 std::unique_ptr<URLRequest> request = context_->CreateRequest( |
356 GURL("http://www.example.com"), DEFAULT_PRIORITY, &delegate); | 356 GURL("http://www.example.com"), DEFAULT_PRIORITY, &delegate); |
357 | 357 |
358 request->Start(); | 358 request->Start(); |
359 request->Cancel(); | 359 request->Cancel(); |
360 base::RunLoop().RunUntilIdle(); | 360 base::RunLoop().RunUntilIdle(); |
361 | 361 |
362 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status()); | 362 EXPECT_EQ(ERR_ABORTED, delegate.request_status()); |
363 EXPECT_EQ(0, request->received_response_content_length()); | 363 EXPECT_EQ(0, request->received_response_content_length()); |
364 EXPECT_EQ(0, request->GetTotalSentBytes()); | 364 EXPECT_EQ(0, request->GetTotalSentBytes()); |
365 EXPECT_EQ(0, request->GetTotalReceivedBytes()); | 365 EXPECT_EQ(0, request->GetTotalReceivedBytes()); |
366 EXPECT_EQ(0, network_delegate_.total_network_bytes_received()); | 366 EXPECT_EQ(0, network_delegate_.total_network_bytes_received()); |
367 } | 367 } |
368 | 368 |
369 TEST_F(URLRequestHttpJobTest, TestCancelWhileReadingCookies) { | 369 TEST_F(URLRequestHttpJobTest, TestCancelWhileReadingCookies) { |
370 DelayedCookieMonster cookie_monster; | 370 DelayedCookieMonster cookie_monster; |
371 TestURLRequestContext context(true); | 371 TestURLRequestContext context(true); |
372 context.set_cookie_store(&cookie_monster); | 372 context.set_cookie_store(&cookie_monster); |
373 context.Init(); | 373 context.Init(); |
374 | 374 |
375 TestDelegate delegate; | 375 TestDelegate delegate; |
376 std::unique_ptr<URLRequest> request = context.CreateRequest( | 376 std::unique_ptr<URLRequest> request = context.CreateRequest( |
377 GURL("http://www.example.com"), DEFAULT_PRIORITY, &delegate); | 377 GURL("http://www.example.com"), DEFAULT_PRIORITY, &delegate); |
378 | 378 |
379 request->Start(); | 379 request->Start(); |
380 request->Cancel(); | 380 request->Cancel(); |
381 base::RunLoop().Run(); | 381 base::RunLoop().Run(); |
382 | 382 |
383 EXPECT_EQ(URLRequestStatus::CANCELED, request->status().status()); | 383 EXPECT_EQ(ERR_ABORTED, delegate.request_status()); |
384 } | 384 } |
385 | 385 |
386 // Make sure that SetPriority actually sets the URLRequestHttpJob's | 386 // Make sure that SetPriority actually sets the URLRequestHttpJob's |
387 // priority, before start. Other tests handle the after start case. | 387 // priority, before start. Other tests handle the after start case. |
388 TEST_F(URLRequestHttpJobTest, SetPriorityBasic) { | 388 TEST_F(URLRequestHttpJobTest, SetPriorityBasic) { |
389 std::unique_ptr<TestURLRequestHttpJob> job( | 389 std::unique_ptr<TestURLRequestHttpJob> job( |
390 new TestURLRequestHttpJob(req_.get())); | 390 new TestURLRequestHttpJob(req_.get())); |
391 EXPECT_EQ(DEFAULT_PRIORITY, job->priority()); | 391 EXPECT_EQ(DEFAULT_PRIORITY, job->priority()); |
392 | 392 |
393 job->SetPriority(LOWEST); | 393 job->SetPriority(LOWEST); |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
560 // invoked. | 560 // invoked. |
561 GURL url("http://example.com"); | 561 GURL url("http://example.com"); |
562 EXPECT_CALL(sdch_observer, | 562 EXPECT_CALL(sdch_observer, |
563 OnGetDictionary(url, GURL("http://example.com/sdch.dict"))); | 563 OnGetDictionary(url, GURL("http://example.com/sdch.dict"))); |
564 TestDelegate delegate; | 564 TestDelegate delegate; |
565 std::unique_ptr<URLRequest> request = | 565 std::unique_ptr<URLRequest> request = |
566 context_.CreateRequest(url, DEFAULT_PRIORITY, &delegate); | 566 context_.CreateRequest(url, DEFAULT_PRIORITY, &delegate); |
567 request->Start(); | 567 request->Start(); |
568 base::RunLoop().RunUntilIdle(); | 568 base::RunLoop().RunUntilIdle(); |
569 | 569 |
570 EXPECT_TRUE(request->status().is_success()); | 570 EXPECT_EQ(OK, delegate.request_status()); |
571 | 571 |
572 // Second response should be from cache without notification of SdchObserver | 572 // Second response should be from cache without notification of SdchObserver |
573 TestDelegate delegate2; | 573 TestDelegate delegate2; |
574 std::unique_ptr<URLRequest> request2 = | 574 std::unique_ptr<URLRequest> request2 = |
575 context_.CreateRequest(url, DEFAULT_PRIORITY, &delegate2); | 575 context_.CreateRequest(url, DEFAULT_PRIORITY, &delegate2); |
576 request2->Start(); | 576 request2->Start(); |
577 base::RunLoop().RunUntilIdle(); | 577 base::RunLoop().RunUntilIdle(); |
578 | 578 |
579 EXPECT_TRUE(request->status().is_success()); | 579 EXPECT_EQ(OK, delegate2.request_status()); |
580 | 580 |
581 // Cleanup manager. | 581 // Cleanup manager. |
582 sdch_manager.RemoveObserver(&sdch_observer); | 582 sdch_manager.RemoveObserver(&sdch_observer); |
583 } | 583 } |
584 | 584 |
585 class URLRequestHttpJobWithBrotliSupportTest : public ::testing::Test { | 585 class URLRequestHttpJobWithBrotliSupportTest : public ::testing::Test { |
586 protected: | 586 protected: |
587 URLRequestHttpJobWithBrotliSupportTest() | 587 URLRequestHttpJobWithBrotliSupportTest() |
588 : context_(new TestURLRequestContext(true)) { | 588 : context_(new TestURLRequestContext(true)) { |
589 std::unique_ptr<HttpNetworkSession::Params> params( | 589 std::unique_ptr<HttpNetworkSession::Params> params( |
(...skipping 16 matching lines...) Expand all Loading... |
606 StaticSocketDataProvider socket_data(reads, arraysize(reads), writes, | 606 StaticSocketDataProvider socket_data(reads, arraysize(reads), writes, |
607 arraysize(writes)); | 607 arraysize(writes)); |
608 socket_factory_.AddSocketDataProvider(&socket_data); | 608 socket_factory_.AddSocketDataProvider(&socket_data); |
609 | 609 |
610 TestDelegate delegate; | 610 TestDelegate delegate; |
611 std::unique_ptr<URLRequest> request = context_->CreateRequest( | 611 std::unique_ptr<URLRequest> request = context_->CreateRequest( |
612 GURL("http://www.example.com"), DEFAULT_PRIORITY, &delegate); | 612 GURL("http://www.example.com"), DEFAULT_PRIORITY, &delegate); |
613 request->Start(); | 613 request->Start(); |
614 base::RunLoop().RunUntilIdle(); | 614 base::RunLoop().RunUntilIdle(); |
615 | 615 |
616 EXPECT_TRUE(request->status().is_success()); | 616 EXPECT_EQ(OK, delegate.request_status()); |
617 EXPECT_EQ(12, request->received_response_content_length()); | 617 EXPECT_EQ(12, request->received_response_content_length()); |
618 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), | 618 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
619 request->GetTotalSentBytes()); | 619 request->GetTotalSentBytes()); |
620 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 620 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
621 request->GetTotalReceivedBytes()); | 621 request->GetTotalReceivedBytes()); |
622 } | 622 } |
623 | 623 |
624 TEST_F(URLRequestHttpJobWithBrotliSupportTest, BrotliAdvertisement) { | 624 TEST_F(URLRequestHttpJobWithBrotliSupportTest, BrotliAdvertisement) { |
625 net::SSLSocketDataProvider ssl_socket_data_provider(net::ASYNC, net::OK); | 625 net::SSLSocketDataProvider ssl_socket_data_provider(net::ASYNC, net::OK); |
626 ssl_socket_data_provider.next_proto = kProtoHTTP11; | 626 ssl_socket_data_provider.next_proto = kProtoHTTP11; |
(...skipping 14 matching lines...) Expand all Loading... |
641 StaticSocketDataProvider socket_data(reads, arraysize(reads), writes, | 641 StaticSocketDataProvider socket_data(reads, arraysize(reads), writes, |
642 arraysize(writes)); | 642 arraysize(writes)); |
643 socket_factory_.AddSocketDataProvider(&socket_data); | 643 socket_factory_.AddSocketDataProvider(&socket_data); |
644 | 644 |
645 TestDelegate delegate; | 645 TestDelegate delegate; |
646 std::unique_ptr<URLRequest> request = context_->CreateRequest( | 646 std::unique_ptr<URLRequest> request = context_->CreateRequest( |
647 GURL("https://www.example.com"), DEFAULT_PRIORITY, &delegate); | 647 GURL("https://www.example.com"), DEFAULT_PRIORITY, &delegate); |
648 request->Start(); | 648 request->Start(); |
649 base::RunLoop().RunUntilIdle(); | 649 base::RunLoop().RunUntilIdle(); |
650 | 650 |
651 EXPECT_TRUE(request->status().is_success()); | 651 EXPECT_EQ(OK, delegate.request_status()); |
652 EXPECT_EQ(12, request->received_response_content_length()); | 652 EXPECT_EQ(12, request->received_response_content_length()); |
653 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), | 653 EXPECT_EQ(CountWriteBytes(writes, arraysize(writes)), |
654 request->GetTotalSentBytes()); | 654 request->GetTotalSentBytes()); |
655 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), | 655 EXPECT_EQ(CountReadBytes(reads, arraysize(reads)), |
656 request->GetTotalReceivedBytes()); | 656 request->GetTotalReceivedBytes()); |
657 } | 657 } |
658 | 658 |
659 // This base class just serves to set up some things before the TestURLRequest | 659 // This base class just serves to set up some things before the TestURLRequest |
660 // constructor is called. | 660 // constructor is called. |
661 class URLRequestHttpJobWebSocketTestBase : public ::testing::Test { | 661 class URLRequestHttpJobWebSocketTestBase : public ::testing::Test { |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
791 return std::unique_ptr<WebSocketStream>(); | 791 return std::unique_ptr<WebSocketStream>(); |
792 } | 792 } |
793 | 793 |
794 private: | 794 private: |
795 bool initialize_stream_was_called_; | 795 bool initialize_stream_was_called_; |
796 }; | 796 }; |
797 | 797 |
798 TEST_F(URLRequestHttpJobWebSocketTest, RejectedWithoutCreateHelper) { | 798 TEST_F(URLRequestHttpJobWebSocketTest, RejectedWithoutCreateHelper) { |
799 req_->Start(); | 799 req_->Start(); |
800 base::RunLoop().RunUntilIdle(); | 800 base::RunLoop().RunUntilIdle(); |
801 EXPECT_EQ(URLRequestStatus::FAILED, req_->status().status()); | 801 EXPECT_EQ(ERR_DISALLOWED_URL_SCHEME, delegate_.request_status()); |
802 EXPECT_THAT(req_->status().error(), IsError(ERR_DISALLOWED_URL_SCHEME)); | |
803 } | 802 } |
804 | 803 |
805 TEST_F(URLRequestHttpJobWebSocketTest, CreateHelperPassedThrough) { | 804 TEST_F(URLRequestHttpJobWebSocketTest, CreateHelperPassedThrough) { |
806 std::unique_ptr<MockCreateHelper> create_helper( | 805 std::unique_ptr<MockCreateHelper> create_helper( |
807 new ::testing::StrictMock<MockCreateHelper>()); | 806 new ::testing::StrictMock<MockCreateHelper>()); |
808 FakeWebSocketHandshakeStream* fake_handshake_stream( | 807 FakeWebSocketHandshakeStream* fake_handshake_stream( |
809 new FakeWebSocketHandshakeStream); | 808 new FakeWebSocketHandshakeStream); |
810 // Ownership of fake_handshake_stream is transferred when CreateBasicStream() | 809 // Ownership of fake_handshake_stream is transferred when CreateBasicStream() |
811 // is called. | 810 // is called. |
812 EXPECT_CALL(*create_helper, CreateBasicStreamMock()) | 811 EXPECT_CALL(*create_helper, CreateBasicStreamMock()) |
813 .WillOnce(Return(fake_handshake_stream)); | 812 .WillOnce(Return(fake_handshake_stream)); |
814 req_->SetUserData(WebSocketHandshakeStreamBase::CreateHelper::DataKey(), | 813 req_->SetUserData(WebSocketHandshakeStreamBase::CreateHelper::DataKey(), |
815 create_helper.release()); | 814 create_helper.release()); |
816 req_->SetLoadFlags(LOAD_DISABLE_CACHE); | 815 req_->SetLoadFlags(LOAD_DISABLE_CACHE); |
817 req_->Start(); | 816 req_->Start(); |
818 base::RunLoop().RunUntilIdle(); | 817 base::RunLoop().RunUntilIdle(); |
819 EXPECT_EQ(URLRequestStatus::IO_PENDING, req_->status().status()); | |
820 EXPECT_TRUE(fake_handshake_stream->initialize_stream_was_called()); | 818 EXPECT_TRUE(fake_handshake_stream->initialize_stream_was_called()); |
821 } | 819 } |
822 | 820 |
823 #endif // defined(ENABLE_WEBSOCKETS) | 821 #endif // defined(ENABLE_WEBSOCKETS) |
824 | 822 |
825 } // namespace | 823 } // namespace |
826 | 824 |
827 } // namespace net | 825 } // namespace net |
OLD | NEW |