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

Side by Side Diff: content/browser/loader/mime_sniffing_resource_handler_unittest.cc

Issue 2668603003: Make ResourceHandler::OnWillRead able to complete asynchronously. (Closed)
Patch Set: Fix merge (x2) Created 3 years, 9 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "content/browser/loader/mime_sniffing_resource_handler.h" 5 #include "content/browser/loader/mime_sniffing_resource_handler.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <memory> 9 #include <memory>
10 10
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 182
183 bool TestStreamIsIntercepted(bool allow_download, 183 bool TestStreamIsIntercepted(bool allow_download,
184 bool must_download, 184 bool must_download,
185 ResourceType request_resource_type); 185 ResourceType request_resource_type);
186 186
187 // Tests the operation of the MimeSniffingHandler when it needs to buffer 187 // Tests the operation of the MimeSniffingHandler when it needs to buffer
188 // data (example case: the response is text/plain). 188 // data (example case: the response is text/plain).
189 void TestHandlerSniffing(bool response_started, 189 void TestHandlerSniffing(bool response_started,
190 bool defer_response_started, 190 bool defer_response_started,
191 bool will_read, 191 bool will_read,
192 bool defer_will_read,
192 bool read_completed, 193 bool read_completed,
193 bool defer_read_completed); 194 bool defer_read_completed);
194 195
195 // Tests the operation of the MimeSniffingHandler when it doesn't buffer 196 // Tests the operation of the MimeSniffingHandler when it doesn't buffer
196 // data (example case: the response is text/html). 197 // data (example case: the response is text/html).
197 void TestHandlerNoSniffing(bool response_started, 198 void TestHandlerNoSniffing(bool response_started,
198 bool defer_response_started, 199 bool defer_response_started,
199 bool will_read, 200 bool will_read,
201 bool defer_will_read,
200 bool read_completed, 202 bool read_completed,
201 bool defer_read_completed); 203 bool defer_read_completed);
202 204
203 private: 205 private:
204 // Whether the URL request should be intercepted as a stream. 206 // Whether the URL request should be intercepted as a stream.
205 bool stream_has_handler_; 207 bool stream_has_handler_;
206 bool plugin_available_; 208 bool plugin_available_;
207 bool plugin_stale_; 209 bool plugin_stale_;
208 210
209 TestBrowserThreadBundle thread_bundle_; 211 TestBrowserThreadBundle thread_bundle_;
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 EXPECT_LT(host.intercepted_as_stream_count(), 2); 307 EXPECT_LT(host.intercepted_as_stream_count(), 2);
306 if (allow_download) 308 if (allow_download)
307 EXPECT_TRUE(intercepting_handler->new_handler_for_testing()); 309 EXPECT_TRUE(intercepting_handler->new_handler_for_testing());
308 return host.intercepted_as_stream(); 310 return host.intercepted_as_stream();
309 } 311 }
310 312
311 void MimeSniffingResourceHandlerTest::TestHandlerSniffing( 313 void MimeSniffingResourceHandlerTest::TestHandlerSniffing(
312 bool response_started, 314 bool response_started,
313 bool defer_response_started, 315 bool defer_response_started,
314 bool will_read, 316 bool will_read,
317 bool defer_will_read,
315 bool read_completed, 318 bool read_completed,
316 bool defer_read_completed) { 319 bool defer_read_completed) {
317 net::URLRequestContext context; 320 net::URLRequestContext context;
318 std::unique_ptr<net::URLRequest> request(context.CreateRequest( 321 std::unique_ptr<net::URLRequest> request(context.CreateRequest(
319 GURL("http://www.google.com"), net::DEFAULT_PRIORITY, nullptr)); 322 GURL("http://www.google.com"), net::DEFAULT_PRIORITY, nullptr));
320 ResourceRequestInfo::AllocateForTesting(request.get(), 323 ResourceRequestInfo::AllocateForTesting(request.get(),
321 RESOURCE_TYPE_MAIN_FRAME, 324 RESOURCE_TYPE_MAIN_FRAME,
322 nullptr, // context 325 nullptr, // context
323 0, // render_process_id 326 0, // render_process_id
324 0, // render_view_id 327 0, // render_view_id
(...skipping 11 matching lines...) Expand all
336 TestFakePluginService plugin_service(plugin_available_, plugin_stale_); 339 TestFakePluginService plugin_service(plugin_available_, plugin_stale_);
337 std::unique_ptr<InterceptingResourceHandler> intercepting_handler( 340 std::unique_ptr<InterceptingResourceHandler> intercepting_handler(
338 new InterceptingResourceHandler(base::MakeUnique<TestResourceHandler>(), 341 new InterceptingResourceHandler(base::MakeUnique<TestResourceHandler>(),
339 nullptr)); 342 nullptr));
340 343
341 std::unique_ptr<TestResourceHandler> scoped_test_handler( 344 std::unique_ptr<TestResourceHandler> scoped_test_handler(
342 new TestResourceHandler()); 345 new TestResourceHandler());
343 scoped_test_handler->set_on_response_started_result(response_started); 346 scoped_test_handler->set_on_response_started_result(response_started);
344 scoped_test_handler->set_defer_on_response_started(defer_response_started); 347 scoped_test_handler->set_defer_on_response_started(defer_response_started);
345 scoped_test_handler->set_on_will_read_result(will_read); 348 scoped_test_handler->set_on_will_read_result(will_read);
349 scoped_test_handler->set_defer_on_will_read(defer_will_read);
346 scoped_test_handler->set_on_read_completed_result(read_completed); 350 scoped_test_handler->set_on_read_completed_result(read_completed);
347 scoped_test_handler->set_defer_on_read_completed(defer_read_completed); 351 scoped_test_handler->set_defer_on_read_completed(defer_read_completed);
348 TestResourceHandler* test_handler = scoped_test_handler.get(); 352 TestResourceHandler* test_handler = scoped_test_handler.get();
349 MimeSniffingResourceHandler mime_sniffing_handler( 353 MimeSniffingResourceHandler mime_sniffing_handler(
350 std::move(scoped_test_handler), &host, &plugin_service, 354 std::move(scoped_test_handler), &host, &plugin_service,
351 intercepting_handler.get(), request.get(), 355 intercepting_handler.get(), request.get(),
352 REQUEST_CONTEXT_TYPE_UNSPECIFIED); 356 REQUEST_CONTEXT_TYPE_UNSPECIFIED);
353 357
354 MockResourceLoader mock_loader(&mime_sniffing_handler); 358 MockResourceLoader mock_loader(&mime_sniffing_handler);
355 359
(...skipping 21 matching lines...) Expand all
377 EXPECT_EQ(0, test_handler->on_request_redirected_called()); 381 EXPECT_EQ(0, test_handler->on_request_redirected_called());
378 EXPECT_EQ(0, test_handler->on_response_started_called()); 382 EXPECT_EQ(0, test_handler->on_response_started_called());
379 EXPECT_EQ(1, test_handler->on_will_read_called()); 383 EXPECT_EQ(1, test_handler->on_will_read_called());
380 EXPECT_EQ(0, test_handler->on_read_completed_called()); 384 EXPECT_EQ(0, test_handler->on_read_completed_called());
381 385
382 // Process all messages to ensure proper test teardown. 386 // Process all messages to ensure proper test teardown.
383 content::RunAllPendingInMessageLoop(); 387 content::RunAllPendingInMessageLoop();
384 return; 388 return;
385 } 389 }
386 390
391 if (defer_will_read) {
392 ASSERT_EQ(MockResourceLoader::Status::CALLBACK_PENDING,
393 mock_loader.status());
394 EXPECT_EQ(MimeSniffingResourceHandler::STATE_WAITING_FOR_BUFFER,
395 mime_sniffing_handler.state_);
396 test_handler->Resume();
397 // MimeSniffingResourceHandler may not synchronously resume the request.
398 base::RunLoop().RunUntilIdle();
399 }
400
387 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader.status()); 401 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader.status());
388 402
389 // Simulate an HTML page. The mime sniffer will identify the MimeType and 403 // Simulate an HTML page. The mime sniffer will identify the MimeType and
390 // proceed with replay. 404 // proceed with replay.
391 const char kData[] = "!DOCTYPE html\n<head>\n<title>Foo</title>\n</head>"; 405 const char kData[] = "!DOCTYPE html\n<head>\n<title>Foo</title>\n</head>";
392 // Construct StringPiece manually, as the terminal null needs to be included, 406 // Construct StringPiece manually, as the terminal null needs to be included,
393 // so it's sniffed as binary (Not important that it's sniffed as binary, but 407 // so it's sniffed as binary (Not important that it's sniffed as binary, but
394 // this gaurantees it's sniffed as something, without waiting for more data). 408 // this gaurantees it's sniffed as something, without waiting for more data).
395 mock_loader.OnReadCompleted(base::StringPiece(kData, sizeof(kData))); 409 mock_loader.OnReadCompleted(base::StringPiece(kData, sizeof(kData)));
396 410
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
455 EXPECT_EQ(1, test_handler->on_read_completed_called()); 469 EXPECT_EQ(1, test_handler->on_read_completed_called());
456 470
457 // Process all messages to ensure proper test teardown. 471 // Process all messages to ensure proper test teardown.
458 content::RunAllPendingInMessageLoop(); 472 content::RunAllPendingInMessageLoop();
459 } 473 }
460 474
461 void MimeSniffingResourceHandlerTest::TestHandlerNoSniffing( 475 void MimeSniffingResourceHandlerTest::TestHandlerNoSniffing(
462 bool response_started, 476 bool response_started,
463 bool defer_response_started, 477 bool defer_response_started,
464 bool will_read, 478 bool will_read,
479 bool defer_will_read,
465 bool read_completed, 480 bool read_completed,
466 bool defer_read_completed) { 481 bool defer_read_completed) {
467 net::URLRequestContext context; 482 net::URLRequestContext context;
468 std::unique_ptr<net::URLRequest> request(context.CreateRequest( 483 std::unique_ptr<net::URLRequest> request(context.CreateRequest(
469 GURL("http://www.google.com"), net::DEFAULT_PRIORITY, nullptr)); 484 GURL("http://www.google.com"), net::DEFAULT_PRIORITY, nullptr));
470 ResourceRequestInfo::AllocateForTesting(request.get(), 485 ResourceRequestInfo::AllocateForTesting(request.get(),
471 RESOURCE_TYPE_MAIN_FRAME, 486 RESOURCE_TYPE_MAIN_FRAME,
472 nullptr, // context 487 nullptr, // context
473 0, // render_process_id 488 0, // render_process_id
474 0, // render_view_id 489 0, // render_view_id
(...skipping 11 matching lines...) Expand all
486 TestFakePluginService plugin_service(plugin_available_, plugin_stale_); 501 TestFakePluginService plugin_service(plugin_available_, plugin_stale_);
487 std::unique_ptr<InterceptingResourceHandler> intercepting_handler( 502 std::unique_ptr<InterceptingResourceHandler> intercepting_handler(
488 new InterceptingResourceHandler(base::MakeUnique<TestResourceHandler>(), 503 new InterceptingResourceHandler(base::MakeUnique<TestResourceHandler>(),
489 nullptr)); 504 nullptr));
490 505
491 std::unique_ptr<TestResourceHandler> scoped_test_handler( 506 std::unique_ptr<TestResourceHandler> scoped_test_handler(
492 new TestResourceHandler()); 507 new TestResourceHandler());
493 scoped_test_handler->set_on_response_started_result(response_started); 508 scoped_test_handler->set_on_response_started_result(response_started);
494 scoped_test_handler->set_defer_on_response_started(defer_response_started); 509 scoped_test_handler->set_defer_on_response_started(defer_response_started);
495 scoped_test_handler->set_on_will_read_result(will_read); 510 scoped_test_handler->set_on_will_read_result(will_read);
511 scoped_test_handler->set_defer_on_will_read(defer_will_read);
496 scoped_test_handler->set_on_read_completed_result(read_completed); 512 scoped_test_handler->set_on_read_completed_result(read_completed);
497 scoped_test_handler->set_defer_on_read_completed(defer_read_completed); 513 scoped_test_handler->set_defer_on_read_completed(defer_read_completed);
498 TestResourceHandler* test_handler = scoped_test_handler.get(); 514 TestResourceHandler* test_handler = scoped_test_handler.get();
499 MimeSniffingResourceHandler mime_sniffing_handler( 515 MimeSniffingResourceHandler mime_sniffing_handler(
500 std::move(scoped_test_handler), &host, &plugin_service, 516 std::move(scoped_test_handler), &host, &plugin_service,
501 intercepting_handler.get(), request.get(), 517 intercepting_handler.get(), request.get(),
502 REQUEST_CONTEXT_TYPE_UNSPECIFIED); 518 REQUEST_CONTEXT_TYPE_UNSPECIFIED);
503 519
504 MockResourceLoader mock_loader(&mime_sniffing_handler); 520 MockResourceLoader mock_loader(&mime_sniffing_handler);
505 521
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
553 EXPECT_EQ(0, test_handler->on_request_redirected_called()); 569 EXPECT_EQ(0, test_handler->on_request_redirected_called());
554 EXPECT_EQ(1, test_handler->on_response_started_called()); 570 EXPECT_EQ(1, test_handler->on_response_started_called());
555 EXPECT_EQ(1, test_handler->on_will_read_called()); 571 EXPECT_EQ(1, test_handler->on_will_read_called());
556 EXPECT_EQ(0, test_handler->on_read_completed_called()); 572 EXPECT_EQ(0, test_handler->on_read_completed_called());
557 573
558 // Process all messages to ensure proper test teardown. 574 // Process all messages to ensure proper test teardown.
559 content::RunAllPendingInMessageLoop(); 575 content::RunAllPendingInMessageLoop();
560 return; 576 return;
561 } 577 }
562 578
579 if (defer_will_read) {
580 ASSERT_EQ(MockResourceLoader::Status::CALLBACK_PENDING,
581 mock_loader.status());
582 EXPECT_EQ(MimeSniffingResourceHandler::STATE_STREAMING,
583 mime_sniffing_handler.state_);
584 test_handler->Resume();
585 // MimeSniffingResourceHandler may not synchronously resume the request.
586 base::RunLoop().RunUntilIdle();
587 }
588
563 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader.status()); 589 ASSERT_EQ(MockResourceLoader::Status::IDLE, mock_loader.status());
564 590
565 mock_loader.OnReadCompleted(std::string(2000, 'a')); 591 mock_loader.OnReadCompleted(std::string(2000, 'a'));
566 592
567 EXPECT_EQ(1, test_handler->on_will_start_called()); 593 EXPECT_EQ(1, test_handler->on_will_start_called());
568 EXPECT_EQ(0, test_handler->on_request_redirected_called()); 594 EXPECT_EQ(0, test_handler->on_request_redirected_called());
569 EXPECT_EQ(1, test_handler->on_response_started_called()); 595 EXPECT_EQ(1, test_handler->on_response_started_called());
570 EXPECT_EQ(1, test_handler->on_will_read_called()); 596 EXPECT_EQ(1, test_handler->on_will_read_called());
571 EXPECT_EQ(1, test_handler->on_read_completed_called()); 597 EXPECT_EQ(1, test_handler->on_read_completed_called());
572 598
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
715 allow_download = false; 741 allow_download = false;
716 must_download = false; 742 must_download = false;
717 resource_type = RESOURCE_TYPE_OBJECT; 743 resource_type = RESOURCE_TYPE_OBJECT;
718 EXPECT_TRUE( 744 EXPECT_TRUE(
719 TestStreamIsIntercepted(allow_download, must_download, resource_type)); 745 TestStreamIsIntercepted(allow_download, must_download, resource_type));
720 } 746 }
721 #endif 747 #endif
722 748
723 // Test that the MimeSniffingHandler operates properly when it doesn't sniff 749 // Test that the MimeSniffingHandler operates properly when it doesn't sniff
724 // resources. 750 // resources.
751 // TODO(mmenke): None of these test async cancellation. Should they?
725 TEST_F(MimeSniffingResourceHandlerTest, NoSniffing) { 752 TEST_F(MimeSniffingResourceHandlerTest, NoSniffing) {
726 // Test simple case. 753 // Test simple case.
727 TestHandlerNoSniffing( 754 TestHandlerNoSniffing(
728 true /* response_started_succeeds */, 755 true /* response_started_succeeds */, false /* defer_response_started */,
729 false /* defer_response_started */, 756 true /* will_read_succeeds */, false /* defer_will_read */,
730 true /* will_read_succeeds */, 757 true /* read_completed_succeeds */, false /* defer_read_completed */);
731 true /* read_completed_succeeds */,
732 false /* defer_read_completed */);
733 758
734 // Test deferral in OnResponseStarted and/or in OnReadCompleted. 759 // Test deferral.
735 TestHandlerNoSniffing( 760 TestHandlerNoSniffing(
736 true /* response_started_succeeds */, 761 true /* response_started_succeeds */, true /* defer_response_started */,
737 true /* defer_response_started */, 762 true /* will_read_succeeds */, false /* defer_will_read */,
738 true /* will_read_succeeds */, 763 true /* read_completed_succeeds */, false /* defer_read_completed */);
739 true /* read_completed_succeeds */,
740 false /* defer_read_completed */);
741 TestHandlerNoSniffing( 764 TestHandlerNoSniffing(
742 true /* response_started_succeeds */, 765 true /* response_started_succeeds */, false /* defer_response_started */,
743 false /* defer_response_started */, 766 true /* will_read_succeeds */, true /* defer_will_read */,
744 true /* will_read_succeeds */, 767 true /* read_completed_succeeds */, false /* defer_read_completed */);
745 true /* read_completed_succeeds */,
746 true /* defer_read_completed */);
747 TestHandlerNoSniffing( 768 TestHandlerNoSniffing(
748 true /* response_started_succeeds */, 769 true /* response_started_succeeds */, false /* defer_response_started */,
749 true /* defer_response_started */, 770 true /* will_read_succeeds */, false /* defer_will_read */,
750 true /* will_read_succeeds */, 771 true /* read_completed_succeeds */, true /* defer_read_completed */);
751 true /* read_completed_succeeds */, 772 TestHandlerNoSniffing(
752 true /* defer_read_completed */); 773 true /* response_started_succeeds */, true /* defer_response_started */,
774 true /* will_read_succeeds */, true /* defer_will_read */,
775 true /* read_completed_succeeds */, true /* defer_read_completed */);
753 776
754 // Test cancel in OnResponseStarted, OnWillRead, OnReadCompleted. 777 // Test cancel in OnResponseStarted, OnWillRead, OnReadCompleted.
755 TestHandlerNoSniffing( 778 TestHandlerNoSniffing(
756 false /* response_started_succeeds */, 779 false /* response_started_succeeds */, false /* defer_response_started */,
757 false /* defer_response_started */, 780 false /* will_read_succeeds */, false /* defer_will_read */,
758 false /* will_read_succeeds */, 781 false /* read_completed_succeeds */, false /* defer_read_completed */);
759 false /* read_completed_succeeds */,
760 false /* defer_read_completed */);
761 TestHandlerNoSniffing( 782 TestHandlerNoSniffing(
762 true /* response_started_succeeds */, 783 true /* response_started_succeeds */, false /* defer_response_started */,
763 false /* defer_response_started */, 784 false /* will_read_succeeds */, false /* defer_will_read */,
764 false /* will_read_succeeds */, 785 false /* read_completed_succeeds */, false /* defer_read_completed */);
765 false /* read_completed_succeeds */,
766 false /* defer_read_completed */);
767 TestHandlerNoSniffing( 786 TestHandlerNoSniffing(
768 true /* response_started_succeeds */, 787 true /* response_started_succeeds */, false /* defer_response_started */,
769 false /* defer_response_started */, 788 true /* will_read_succeeds */, false /* defer_will_read */,
770 true /* will_read_succeeds */, 789 false /* read_completed_succeeds */, false /* defer_read_completed */);
771 false /* read_completed_succeeds */,
772 false /* defer_read_completed */);
773 790
774 // Test cancel after OnResponseStarted deferral. 791 // Test cancel after deferral.
775 TestHandlerNoSniffing( 792 TestHandlerNoSniffing(
776 true /* response_started_succeeds */, 793 true /* response_started_succeeds */, true /* defer_response_started */,
777 true /* defer_response_started */, 794 false /* will_read_succeeds */, false /* defer_will_read */,
778 false /* will_read_succeeds */, 795 false /* read_completed_succeeds */, false /* defer_read_completed */);
779 false /* read_completed_succeeds */,
780 false /* defer_read_completed */);
781 TestHandlerNoSniffing( 796 TestHandlerNoSniffing(
782 true /* response_started_succeeds */, 797 true /* response_started_succeeds */, true /* defer_response_started */,
783 true /* defer_response_started */, 798 true /* defer_will_read */, true /* will_read_succeeds */,
784 true /* will_read_succeeds */, 799 false /* read_completed_succeeds */, false /* defer_read_completed */);
785 false /* read_completed_succeeds */,
786 false /* defer_read_completed */);
787 800
788 content::RunAllPendingInMessageLoop(); 801 content::RunAllPendingInMessageLoop();
789 } 802 }
790 803
791 // Test that the MimeSniffingHandler operates properly when it sniffs 804 // Test that the MimeSniffingHandler operates properly when it sniffs
792 // resources. 805 // resources.
806 // TODO(mmenke): None of these test async cancellation. Should they?
793 TEST_F(MimeSniffingResourceHandlerTest, Sniffing) { 807 TEST_F(MimeSniffingResourceHandlerTest, Sniffing) {
794 // Test simple case. 808 // Test simple case.
795 TestHandlerSniffing( 809 TestHandlerSniffing(
796 true /* response_started_succeeds */, 810 true /* response_started_succeeds */, false /* defer_response_started */,
797 false /* defer_response_started */, 811 true /* will_read_succeeds */, false /* defer_will_read */,
798 true /* will_read_succeeds */, 812 true /* read_completed_succeeds */, false /* defer_read_completed */);
799 true /* read_completed_succeeds */,
800 false /* defer_read_completed */);
801 813
802 // Test deferral in OnResponseStarted and/or in OnReadCompleted. 814 // Test deferral.
803 TestHandlerSniffing( 815 TestHandlerSniffing(
804 true /* response_started_succeeds */, 816 true /* response_started_succeeds */, true /* defer_response_started */,
805 true /* defer_response_started */, 817 true /* will_read_succeeds */, false /* defer_will_read */,
806 true /* will_read_succeeds */, 818 true /* read_completed_succeeds */, false /* defer_read_completed */);
807 true /* read_completed_succeeds */,
808 false /* defer_read_completed */);
809 TestHandlerSniffing( 819 TestHandlerSniffing(
810 true /* response_started_succeeds */, 820 true /* response_started_succeeds */, false /* defer_response_started */,
811 false /* defer_response_started */, 821 true /* will_read_succeeds */, true /* defer_will_read */,
812 true /* will_read_succeeds */, 822 true /* read_completed_succeeds */, false /* defer_read_completed */);
813 true /* read_completed_succeeds */,
814 true /* defer_read_completed */);
815 TestHandlerSniffing( 823 TestHandlerSniffing(
816 true /* response_started_succeeds */, 824 true /* response_started_succeeds */, false /* defer_response_started */,
817 true /* defer_response_started */, 825 true /* will_read_succeeds */, false /* defer_will_read */,
818 true /* will_read_succeeds */, 826 true /* read_completed_succeeds */, true /* defer_read_completed */);
819 true /* read_completed_succeeds */, 827 TestHandlerSniffing(
820 true /* defer_read_completed */); 828 true /* response_started_succeeds */, true /* defer_response_started */,
829 true /* will_read_succeeds */, true /* defer_will_read */,
830 true /* read_completed_succeeds */, true /* defer_read_completed */);
821 831
822 // Test cancel in OnResponseStarted, OnWillRead, OnReadCompleted. 832 // Test cancel in OnResponseStarted, OnWillRead, OnReadCompleted.
823 TestHandlerSniffing( 833 TestHandlerSniffing(
824 false /* response_started_succeeds */, 834 false /* response_started_succeeds */, false /* defer_response_started */,
825 false /* defer_response_started */, 835 false /* will_read_succeeds */, false /* defer_will_read */,
826 false /* will_read_succeeds */, 836 false /* read_completed_succeeds */, false /* defer_read_completed */);
827 false /* read_completed_succeeds */,
828 false /* defer_read_completed */);
829 TestHandlerSniffing( 837 TestHandlerSniffing(
830 true /* response_started_succeeds */, 838 true /* response_started_succeeds */, false /* defer_response_started */,
831 false /* defer_response_started */, 839 false /* will_read_succeeds */, false /* defer_will_read */,
832 false /* will_read_succeeds */, 840 false /* read_completed_succeeds */, false /* defer_read_completed */);
833 false /* read_completed_succeeds */,
834 false /* defer_read_completed */);
835 TestHandlerSniffing( 841 TestHandlerSniffing(
836 true /* response_started_succeeds */, 842 true /* response_started_succeeds */, false /* defer_response_started */,
837 false /* defer_response_started */, 843 true /* will_read_succeeds */, false /* defer_will_read */,
838 true /* will_read_succeeds */, 844 false /* read_completed_succeeds */, false /* defer_read_completed */);
839 false /* read_completed_succeeds */,
840 false /* defer_read_completed */);
841 845
842 // Test cancel after OnResponseStarted deferral. 846 // Test cancel after deferral.
843 TestHandlerSniffing( 847 TestHandlerSniffing(
844 true /* response_started_succeeds */, 848 true /* response_started_succeeds */, true /* defer_response_started */,
845 true /* defer_response_started */, 849 false /* will_read_succeeds */, false /* defer_will_read */,
846 false /* will_read_succeeds */, 850 false /* read_completed_succeeds */, false /* defer_read_completed */);
847 false /* read_completed_succeeds */,
848 false /* defer_read_completed */);
849 TestHandlerSniffing( 851 TestHandlerSniffing(
850 true /* response_started_succeeds */, 852 true /* response_started_succeeds */, true /* defer_response_started */,
851 true /* defer_response_started */, 853 true /* will_read_succeeds */, true /* defer_will_read */,
852 true /* will_read_succeeds */, 854 false /* read_completed_succeeds */, false /* defer_read_completed */);
853 false /* read_completed_succeeds */,
854 false /* defer_read_completed */);
855 855
856 content::RunAllPendingInMessageLoop(); 856 content::RunAllPendingInMessageLoop();
857 } 857 }
858 858
859 // Tests that 304s do not trigger a change in handlers. 859 // Tests that 304s do not trigger a change in handlers.
860 TEST_F(MimeSniffingResourceHandlerTest, 304Handling) { 860 TEST_F(MimeSniffingResourceHandlerTest, 304Handling) {
861 net::URLRequestContext context; 861 net::URLRequestContext context;
862 std::unique_ptr<net::URLRequest> request(context.CreateRequest( 862 std::unique_ptr<net::URLRequest> request(context.CreateRequest(
863 GURL("http://www.google.com"), net::DEFAULT_PRIORITY, nullptr)); 863 GURL("http://www.google.com"), net::DEFAULT_PRIORITY, nullptr));
864 ResourceRequestInfo::AllocateForTesting(request.get(), 864 ResourceRequestInfo::AllocateForTesting(request.get(),
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
952 // on OnResponseStarted. 952 // on OnResponseStarted.
953 EXPECT_EQ(MockResourceLoader::Status::CANCELED, 953 EXPECT_EQ(MockResourceLoader::Status::CANCELED,
954 mock_loader.OnResponseStarted(std::move(response))); 954 mock_loader.OnResponseStarted(std::move(response)));
955 EXPECT_EQ(net::ERR_ABORTED, mock_loader.error_code()); 955 EXPECT_EQ(net::ERR_ABORTED, mock_loader.error_code());
956 956
957 // Process all messages to ensure proper test teardown. 957 // Process all messages to ensure proper test teardown.
958 content::RunAllPendingInMessageLoop(); 958 content::RunAllPendingInMessageLoop();
959 } 959 }
960 960
961 } // namespace content 961 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698