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

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: One bot doesn't like 256 day timers. :( Created 3 years, 10 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 */,
729 false /* defer_response_started */, 756 false /* defer_response_started */,
730 true /* will_read_succeeds */, 757 true /* will_read_succeeds */,
758 false /* defer_will_read */,
731 true /* read_completed_succeeds */, 759 true /* read_completed_succeeds */,
732 false /* defer_read_completed */); 760 false /* defer_read_completed */);
733 761
734 // Test deferral in OnResponseStarted and/or in OnReadCompleted. 762 // Test deferral.
735 TestHandlerNoSniffing( 763 TestHandlerNoSniffing(
736 true /* response_started_succeeds */, 764 true /* response_started_succeeds */,
737 true /* defer_response_started */, 765 true /* defer_response_started */,
738 true /* will_read_succeeds */, 766 true /* will_read_succeeds */,
767 false /* defer_will_read */,
739 true /* read_completed_succeeds */, 768 true /* read_completed_succeeds */,
740 false /* defer_read_completed */); 769 false /* defer_read_completed */);
741 TestHandlerNoSniffing( 770 TestHandlerNoSniffing(
742 true /* response_started_succeeds */, 771 true /* response_started_succeeds */,
743 false /* defer_response_started */, 772 false /* defer_response_started */,
744 true /* will_read_succeeds */, 773 true /* will_read_succeeds */,
774 true /* defer_will_read */,
775 true /* read_completed_succeeds */,
776 false /* defer_read_completed */);
777 TestHandlerNoSniffing(
778 true /* response_started_succeeds */,
779 false /* defer_response_started */,
780 true /* will_read_succeeds */,
781 false /* defer_will_read */,
745 true /* read_completed_succeeds */, 782 true /* read_completed_succeeds */,
746 true /* defer_read_completed */); 783 true /* defer_read_completed */);
747 TestHandlerNoSniffing( 784 TestHandlerNoSniffing(
748 true /* response_started_succeeds */, 785 true /* response_started_succeeds */,
749 true /* defer_response_started */, 786 true /* defer_response_started */,
750 true /* will_read_succeeds */, 787 true /* will_read_succeeds */,
788 true /* defer_will_read */,
751 true /* read_completed_succeeds */, 789 true /* read_completed_succeeds */,
752 true /* defer_read_completed */); 790 true /* defer_read_completed */);
753 791
754 // Test cancel in OnResponseStarted, OnWillRead, OnReadCompleted. 792 // Test cancel in OnResponseStarted, OnWillRead, OnReadCompleted.
755 TestHandlerNoSniffing( 793 TestHandlerNoSniffing(
756 false /* response_started_succeeds */, 794 false /* response_started_succeeds */,
757 false /* defer_response_started */, 795 false /* defer_response_started */,
758 false /* will_read_succeeds */, 796 false /* will_read_succeeds */,
797 false /* defer_will_read */,
759 false /* read_completed_succeeds */, 798 false /* read_completed_succeeds */,
760 false /* defer_read_completed */); 799 false /* defer_read_completed */);
761 TestHandlerNoSniffing( 800 TestHandlerNoSniffing(
762 true /* response_started_succeeds */, 801 true /* response_started_succeeds */,
763 false /* defer_response_started */, 802 false /* defer_response_started */,
764 false /* will_read_succeeds */, 803 false /* will_read_succeeds */,
804 false /* defer_will_read */,
765 false /* read_completed_succeeds */, 805 false /* read_completed_succeeds */,
766 false /* defer_read_completed */); 806 false /* defer_read_completed */);
767 TestHandlerNoSniffing( 807 TestHandlerNoSniffing(
768 true /* response_started_succeeds */, 808 true /* response_started_succeeds */,
769 false /* defer_response_started */, 809 false /* defer_response_started */,
770 true /* will_read_succeeds */, 810 true /* will_read_succeeds */,
811 false /* defer_will_read */,
771 false /* read_completed_succeeds */, 812 false /* read_completed_succeeds */,
772 false /* defer_read_completed */); 813 false /* defer_read_completed */);
773 814
774 // Test cancel after OnResponseStarted deferral. 815 // Test cancel after deferral.
775 TestHandlerNoSniffing( 816 TestHandlerNoSniffing(
776 true /* response_started_succeeds */, 817 true /* response_started_succeeds */,
777 true /* defer_response_started */, 818 true /* defer_response_started */,
778 false /* will_read_succeeds */, 819 false /* will_read_succeeds */,
820 false /* defer_will_read */,
779 false /* read_completed_succeeds */, 821 false /* read_completed_succeeds */,
780 false /* defer_read_completed */); 822 false /* defer_read_completed */);
781 TestHandlerNoSniffing( 823 TestHandlerNoSniffing(
782 true /* response_started_succeeds */, 824 true /* response_started_succeeds */,
783 true /* defer_response_started */, 825 true /* defer_response_started */,
826 true /* defer_will_read */,
784 true /* will_read_succeeds */, 827 true /* will_read_succeeds */,
785 false /* read_completed_succeeds */, 828 false /* read_completed_succeeds */,
786 false /* defer_read_completed */); 829 false /* defer_read_completed */);
787 830
788 content::RunAllPendingInMessageLoop(); 831 content::RunAllPendingInMessageLoop();
789 } 832 }
790 833
791 // Test that the MimeSniffingHandler operates properly when it sniffs 834 // Test that the MimeSniffingHandler operates properly when it sniffs
792 // resources. 835 // resources.
836 // TODO(mmenke): None of these test async cancellation. Should they?
793 TEST_F(MimeSniffingResourceHandlerTest, Sniffing) { 837 TEST_F(MimeSniffingResourceHandlerTest, Sniffing) {
794 // Test simple case. 838 // Test simple case.
795 TestHandlerSniffing( 839 TestHandlerSniffing(
796 true /* response_started_succeeds */, 840 true /* response_started_succeeds */,
797 false /* defer_response_started */, 841 false /* defer_response_started */,
798 true /* will_read_succeeds */, 842 true /* will_read_succeeds */,
843 false /* defer_will_read */,
799 true /* read_completed_succeeds */, 844 true /* read_completed_succeeds */,
800 false /* defer_read_completed */); 845 false /* defer_read_completed */);
801 846
802 // Test deferral in OnResponseStarted and/or in OnReadCompleted. 847 // Test deferral.
803 TestHandlerSniffing( 848 TestHandlerSniffing(
804 true /* response_started_succeeds */, 849 true /* response_started_succeeds */,
805 true /* defer_response_started */, 850 true /* defer_response_started */,
806 true /* will_read_succeeds */, 851 true /* will_read_succeeds */,
852 false /* defer_will_read */,
807 true /* read_completed_succeeds */, 853 true /* read_completed_succeeds */,
808 false /* defer_read_completed */); 854 false /* defer_read_completed */);
809 TestHandlerSniffing( 855 TestHandlerSniffing(
810 true /* response_started_succeeds */, 856 true /* response_started_succeeds */,
811 false /* defer_response_started */, 857 false /* defer_response_started */,
812 true /* will_read_succeeds */, 858 true /* will_read_succeeds */,
859 true /* defer_will_read */,
860 true /* read_completed_succeeds */,
861 false /* defer_read_completed */);
862 TestHandlerSniffing(
863 true /* response_started_succeeds */,
864 false /* defer_response_started */,
865 true /* will_read_succeeds */,
866 false /* defer_will_read */,
813 true /* read_completed_succeeds */, 867 true /* read_completed_succeeds */,
814 true /* defer_read_completed */); 868 true /* defer_read_completed */);
815 TestHandlerSniffing( 869 TestHandlerSniffing(
816 true /* response_started_succeeds */, 870 true /* response_started_succeeds */,
817 true /* defer_response_started */, 871 true /* defer_response_started */,
818 true /* will_read_succeeds */, 872 true /* will_read_succeeds */,
873 true /* defer_will_read */,
819 true /* read_completed_succeeds */, 874 true /* read_completed_succeeds */,
820 true /* defer_read_completed */); 875 true /* defer_read_completed */);
821 876
822 // Test cancel in OnResponseStarted, OnWillRead, OnReadCompleted. 877 // Test cancel in OnResponseStarted, OnWillRead, OnReadCompleted.
823 TestHandlerSniffing( 878 TestHandlerSniffing(
824 false /* response_started_succeeds */, 879 false /* response_started_succeeds */,
825 false /* defer_response_started */, 880 false /* defer_response_started */,
826 false /* will_read_succeeds */, 881 false /* will_read_succeeds */,
882 false /* defer_will_read */,
827 false /* read_completed_succeeds */, 883 false /* read_completed_succeeds */,
828 false /* defer_read_completed */); 884 false /* defer_read_completed */);
829 TestHandlerSniffing( 885 TestHandlerSniffing(
830 true /* response_started_succeeds */, 886 true /* response_started_succeeds */,
831 false /* defer_response_started */, 887 false /* defer_response_started */,
832 false /* will_read_succeeds */, 888 false /* will_read_succeeds */,
889 false /* defer_will_read */,
833 false /* read_completed_succeeds */, 890 false /* read_completed_succeeds */,
834 false /* defer_read_completed */); 891 false /* defer_read_completed */);
835 TestHandlerSniffing( 892 TestHandlerSniffing(
836 true /* response_started_succeeds */, 893 true /* response_started_succeeds */,
837 false /* defer_response_started */, 894 false /* defer_response_started */,
838 true /* will_read_succeeds */, 895 true /* will_read_succeeds */,
896 false /* defer_will_read */,
839 false /* read_completed_succeeds */, 897 false /* read_completed_succeeds */,
840 false /* defer_read_completed */); 898 false /* defer_read_completed */);
841 899
842 // Test cancel after OnResponseStarted deferral. 900 // Test cancel after deferral.
843 TestHandlerSniffing( 901 TestHandlerSniffing(
844 true /* response_started_succeeds */, 902 true /* response_started_succeeds */,
845 true /* defer_response_started */, 903 true /* defer_response_started */,
846 false /* will_read_succeeds */, 904 false /* will_read_succeeds */,
905 false /* defer_will_read */,
847 false /* read_completed_succeeds */, 906 false /* read_completed_succeeds */,
848 false /* defer_read_completed */); 907 false /* defer_read_completed */);
849 TestHandlerSniffing( 908 TestHandlerSniffing(
850 true /* response_started_succeeds */, 909 true /* response_started_succeeds */,
851 true /* defer_response_started */, 910 true /* defer_response_started */,
852 true /* will_read_succeeds */, 911 true /* will_read_succeeds */,
912 true /* defer_will_read */,
853 false /* read_completed_succeeds */, 913 false /* read_completed_succeeds */,
854 false /* defer_read_completed */); 914 false /* defer_read_completed */);
855 915
856 content::RunAllPendingInMessageLoop(); 916 content::RunAllPendingInMessageLoop();
857 } 917 }
858 918
859 // Tests that 304s do not trigger a change in handlers. 919 // Tests that 304s do not trigger a change in handlers.
860 TEST_F(MimeSniffingResourceHandlerTest, 304Handling) { 920 TEST_F(MimeSniffingResourceHandlerTest, 304Handling) {
861 net::URLRequestContext context; 921 net::URLRequestContext context;
862 std::unique_ptr<net::URLRequest> request(context.CreateRequest( 922 std::unique_ptr<net::URLRequest> request(context.CreateRequest(
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
952 // on OnResponseStarted. 1012 // on OnResponseStarted.
953 EXPECT_EQ(MockResourceLoader::Status::CANCELED, 1013 EXPECT_EQ(MockResourceLoader::Status::CANCELED,
954 mock_loader.OnResponseStarted(std::move(response))); 1014 mock_loader.OnResponseStarted(std::move(response)));
955 EXPECT_EQ(net::ERR_ABORTED, mock_loader.error_code()); 1015 EXPECT_EQ(net::ERR_ABORTED, mock_loader.error_code());
956 1016
957 // Process all messages to ensure proper test teardown. 1017 // Process all messages to ensure proper test teardown.
958 content::RunAllPendingInMessageLoop(); 1018 content::RunAllPendingInMessageLoop();
959 } 1019 }
960 1020
961 } // namespace content 1021 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698