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

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

Issue 2441293003: Merge TestResourceHandlers used by two different test fixtures. (Closed)
Patch Set: Response to comments Created 4 years, 1 month 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
11 #include "base/files/file_path.h" 11 #include "base/files/file_path.h"
12 #include "base/location.h" 12 #include "base/location.h"
13 #include "base/logging.h" 13 #include "base/logging.h"
14 #include "base/macros.h" 14 #include "base/macros.h"
15 #include "base/memory/ptr_util.h" 15 #include "base/memory/ptr_util.h"
16 #include "base/single_thread_task_runner.h" 16 #include "base/single_thread_task_runner.h"
17 #include "base/threading/thread_task_runner_handle.h" 17 #include "base/threading/thread_task_runner_handle.h"
18 #include "content/browser/loader/intercepting_resource_handler.h" 18 #include "content/browser/loader/intercepting_resource_handler.h"
19 #include "content/browser/loader/resource_dispatcher_host_impl.h" 19 #include "content/browser/loader/resource_dispatcher_host_impl.h"
20 #include "content/browser/loader/test_resource_handler.h"
20 #include "content/public/browser/resource_controller.h" 21 #include "content/public/browser/resource_controller.h"
21 #include "content/public/browser/resource_dispatcher_host_delegate.h" 22 #include "content/public/browser/resource_dispatcher_host_delegate.h"
22 #include "content/public/browser/resource_request_info.h" 23 #include "content/public/browser/resource_request_info.h"
23 #include "content/public/common/resource_response.h" 24 #include "content/public/common/resource_response.h"
24 #include "content/public/common/webplugininfo.h" 25 #include "content/public/common/webplugininfo.h"
25 #include "content/public/test/test_browser_thread_bundle.h" 26 #include "content/public/test/test_browser_thread_bundle.h"
26 #include "content/public/test/test_utils.h" 27 #include "content/public/test/test_utils.h"
27 #include "content/test/fake_plugin_service.h" 28 #include "content/test/fake_plugin_service.h"
28 #include "net/url_request/url_request_context.h" 29 #include "net/url_request/url_request_context.h"
29 #include "testing/gtest/include/gtest/gtest.h" 30 #include "testing/gtest/include/gtest/gtest.h"
30 #include "url/gurl.h" 31 #include "url/gurl.h"
31 #include "url/origin.h" 32 #include "url/origin.h"
32 33
33 namespace content { 34 namespace content {
34 35
35 namespace { 36 namespace {
36 37
37 class TestResourceHandler : public ResourceHandler {
38 public:
39 TestResourceHandler(bool response_started_succeeds,
40 bool defer_on_response_started,
41 bool will_read_succeeds,
42 bool read_completed_succeeds,
43 bool defer_on_read_completed)
44 : ResourceHandler(nullptr),
45 buffer_(new net::IOBuffer(2048)),
46 response_started_succeeds_(response_started_succeeds),
47 defer_on_response_started_(defer_on_response_started),
48 will_read_succeeds_(will_read_succeeds),
49 read_completed_succeeds_(read_completed_succeeds),
50 defer_on_read_completed_(defer_on_read_completed),
51 on_will_start_called_(0),
52 on_request_redirected_called_(0),
53 on_response_started_called_(0),
54 on_will_read_called_(0),
55 on_read_completed_called_(0) {}
56
57 void SetController(ResourceController* controller) override {}
58
59 bool OnRequestRedirected(const net::RedirectInfo& redirect_info,
60 ResourceResponse* response,
61 bool* defer) override {
62 on_request_redirected_called_++;
63 NOTREACHED();
64 return false;
65 }
66
67 bool OnResponseStarted(ResourceResponse* response, bool* defer) override {
68 on_response_started_called_++;
69 if (defer_on_response_started_)
70 *defer = true;
71 return response_started_succeeds_;
72 }
73
74 bool OnWillStart(const GURL& url, bool* defer) override {
75 on_will_start_called_++;
76 return false;
77 }
78
79 bool OnWillRead(scoped_refptr<net::IOBuffer>* buf,
80 int* buf_size,
81 int min_size) override {
82 on_will_read_called_++;
83 *buf = buffer_;
84 *buf_size = 2048;
85 return will_read_succeeds_;
86 }
87
88 bool OnReadCompleted(int bytes_read, bool* defer) override {
89 DCHECK_LT(bytes_read, 2048);
90 on_read_completed_called_++;
91 if (defer_on_read_completed_)
92 *defer = true;
93 return read_completed_succeeds_;
94 }
95
96 void OnResponseCompleted(const net::URLRequestStatus& status,
97 bool* defer) override {}
98
99 void OnDataDownloaded(int bytes_downloaded) override { NOTREACHED(); }
100
101 scoped_refptr<net::IOBuffer> buffer() { return buffer_; }
102
103 int on_will_start_called() const { return on_will_start_called_; }
104 int on_request_redirected_called() const {
105 return on_request_redirected_called_;
106 }
107 int on_response_started_called() const { return on_response_started_called_; }
108 int on_will_read_called() const { return on_will_read_called_; }
109 int on_read_completed_called() const { return on_read_completed_called_; }
110
111 private:
112 scoped_refptr<net::IOBuffer> buffer_;
113 bool response_started_succeeds_;
114 bool defer_on_response_started_;
115 bool will_read_succeeds_;
116 bool read_completed_succeeds_;
117 bool defer_on_read_completed_;
118
119 int on_will_start_called_;
120 int on_request_redirected_called_;
121 int on_response_started_called_;
122 int on_will_read_called_;
123 int on_read_completed_called_;
124
125 DISALLOW_COPY_AND_ASSIGN(TestResourceHandler);
126 };
127
128 class TestResourceDispatcherHostDelegate 38 class TestResourceDispatcherHostDelegate
129 : public ResourceDispatcherHostDelegate { 39 : public ResourceDispatcherHostDelegate {
130 public: 40 public:
131 explicit TestResourceDispatcherHostDelegate(bool must_download) 41 explicit TestResourceDispatcherHostDelegate(bool must_download)
132 : must_download_(must_download) {} 42 : must_download_(must_download) {}
133 43
134 bool ShouldForceDownloadResource(const GURL& url, 44 bool ShouldForceDownloadResource(const GURL& url,
135 const std::string& mime_type) override { 45 const std::string& mime_type) override {
136 return must_download_; 46 return must_download_;
137 } 47 }
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 return intercepted_as_stream_count_; 83 return intercepted_as_stream_count_;
174 } 84 }
175 85
176 TestResourceHandler* new_resource_handler() const { 86 TestResourceHandler* new_resource_handler() const {
177 return new_resource_handler_; 87 return new_resource_handler_;
178 } 88 }
179 89
180 private: 90 private:
181 std::unique_ptr<ResourceHandler> CreateNewResourceHandler() { 91 std::unique_ptr<ResourceHandler> CreateNewResourceHandler() {
182 std::unique_ptr<TestResourceHandler> new_resource_handler( 92 std::unique_ptr<TestResourceHandler> new_resource_handler(
183 new TestResourceHandler(false, false, true, true, false)); 93 new TestResourceHandler());
94 new_resource_handler->set_on_response_started_result(false);
184 new_resource_handler_ = new_resource_handler.get(); 95 new_resource_handler_ = new_resource_handler.get();
185 return std::move(new_resource_handler); 96 return std::move(new_resource_handler);
186 } 97 }
187 98
188 // Whether the URL request should be intercepted as a stream. 99 // Whether the URL request should be intercepted as a stream.
189 bool stream_has_handler_; 100 bool stream_has_handler_;
190 101
191 // Whether the URL request has been intercepted as a stream. 102 // Whether the URL request has been intercepted as a stream.
192 bool intercepted_as_stream_; 103 bool intercepted_as_stream_;
193 104
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
334 nullptr, // context 245 nullptr, // context
335 0, // render_process_id 246 0, // render_process_id
336 0, // render_view_id 247 0, // render_view_id
337 0, // render_frame_id 248 0, // render_frame_id
338 is_main_frame, // is_main_frame 249 is_main_frame, // is_main_frame
339 false, // parent_is_main_frame 250 false, // parent_is_main_frame
340 false, // allow_download 251 false, // allow_download
341 true, // is_async 252 true, // is_async
342 false); // is_using_lofi 253 false); // is_using_lofi
343 254
255 std::unique_ptr<TestResourceHandler> scoped_test_handler(
256 new TestResourceHandler());
257 scoped_test_handler->set_on_response_started_result(false);
258
344 std::unique_ptr<ResourceHandler> mime_sniffing_handler( 259 std::unique_ptr<ResourceHandler> mime_sniffing_handler(
345 new MimeSniffingResourceHandler( 260 new MimeSniffingResourceHandler(std::move(scoped_test_handler), nullptr,
346 std::unique_ptr<ResourceHandler>( 261 nullptr, nullptr, request,
347 new TestResourceHandler(false, false, false, false, false)), 262 REQUEST_CONTEXT_TYPE_UNSPECIFIED));
348 nullptr, nullptr, nullptr, request,
349 REQUEST_CONTEXT_TYPE_UNSPECIFIED));
350 263
351 bool defer = false; 264 bool defer = false;
352 mime_sniffing_handler->OnWillStart(request->url(), &defer); 265 mime_sniffing_handler->OnWillStart(request->url(), &defer);
353 content::RunAllPendingInMessageLoop(); 266 content::RunAllPendingInMessageLoop();
354 267
355 std::string accept_header; 268 std::string accept_header;
356 request->extra_request_headers().GetHeader("Accept", &accept_header); 269 request->extra_request_headers().GetHeader("Accept", &accept_header);
357 return accept_header; 270 return accept_header;
358 } 271 }
359 272
(...skipping 14 matching lines...) Expand all
374 false, // parent_is_main_frame 287 false, // parent_is_main_frame
375 allow_download, // allow_download 288 allow_download, // allow_download
376 true, // is_async 289 true, // is_async
377 false); // is_using_lofi 290 false); // is_using_lofi
378 291
379 TestResourceDispatcherHost host(stream_has_handler_); 292 TestResourceDispatcherHost host(stream_has_handler_);
380 TestResourceDispatcherHostDelegate host_delegate(must_download); 293 TestResourceDispatcherHostDelegate host_delegate(must_download);
381 host.SetDelegate(&host_delegate); 294 host.SetDelegate(&host_delegate);
382 295
383 TestFakePluginService plugin_service(plugin_available_, plugin_stale_); 296 TestFakePluginService plugin_service(plugin_available_, plugin_stale_);
297
384 std::unique_ptr<InterceptingResourceHandler> intercepting_handler( 298 std::unique_ptr<InterceptingResourceHandler> intercepting_handler(
385 new InterceptingResourceHandler(base::MakeUnique<TestResourceHandler>( 299 new InterceptingResourceHandler(base::MakeUnique<TestResourceHandler>(),
386 true, // response_started_succeeds
387 false, // defer_response_started
388 true, // will_read_succeeds,
389 true, // read_completed_succeeds,
390 false), // defer_read_completed
391 nullptr)); 300 nullptr));
301 std::unique_ptr<TestResourceHandler> scoped_test_handler(
302 new TestResourceHandler());
303 scoped_test_handler->set_on_response_started_result(false);
392 std::unique_ptr<ResourceHandler> mime_handler(new MimeSniffingResourceHandler( 304 std::unique_ptr<ResourceHandler> mime_handler(new MimeSniffingResourceHandler(
393 std::unique_ptr<ResourceHandler>( 305 std::unique_ptr<ResourceHandler>(std::move(scoped_test_handler)), &host,
394 new TestResourceHandler(false, false, false, false, false)), 306 &plugin_service, intercepting_handler.get(), request.get(),
395 &host, &plugin_service, intercepting_handler.get(), request.get(),
396 REQUEST_CONTEXT_TYPE_UNSPECIFIED)); 307 REQUEST_CONTEXT_TYPE_UNSPECIFIED));
397 308
398 TestResourceController resource_controller; 309 TestResourceController resource_controller;
399 mime_handler->SetController(&resource_controller); 310 mime_handler->SetController(&resource_controller);
400 311
401 scoped_refptr<ResourceResponse> response(new ResourceResponse); 312 scoped_refptr<ResourceResponse> response(new ResourceResponse);
402 // The MIME type isn't important but it shouldn't be empty. 313 // The MIME type isn't important but it shouldn't be empty.
403 response->head.mime_type = "application/pdf"; 314 response->head.mime_type = "application/pdf";
404 315
405 bool defer = false; 316 bool defer = false;
317 mime_handler->OnWillStart(request->url(), &defer);
318 EXPECT_FALSE(defer);
319
406 mime_handler->OnResponseStarted(response.get(), &defer); 320 mime_handler->OnResponseStarted(response.get(), &defer);
407 321
408 content::RunAllPendingInMessageLoop(); 322 content::RunAllPendingInMessageLoop();
409 EXPECT_LT(host.intercepted_as_stream_count(), 2); 323 EXPECT_LT(host.intercepted_as_stream_count(), 2);
410 if (allow_download) 324 if (allow_download)
411 EXPECT_TRUE(intercepting_handler->new_handler_for_testing()); 325 EXPECT_TRUE(intercepting_handler->new_handler_for_testing());
412 return host.intercepted_as_stream(); 326 return host.intercepted_as_stream();
413 } 327 }
414 328
415 void MimeSniffingResourceHandlerTest::TestHandlerSniffing( 329 void MimeSniffingResourceHandlerTest::TestHandlerSniffing(
(...skipping 16 matching lines...) Expand all
432 false, // allow_download 346 false, // allow_download
433 true, // is_async 347 true, // is_async
434 false); // is_using_lofi 348 false); // is_using_lofi
435 349
436 TestResourceDispatcherHost host(false); 350 TestResourceDispatcherHost host(false);
437 TestResourceDispatcherHostDelegate host_delegate(false); 351 TestResourceDispatcherHostDelegate host_delegate(false);
438 host.SetDelegate(&host_delegate); 352 host.SetDelegate(&host_delegate);
439 353
440 TestFakePluginService plugin_service(plugin_available_, plugin_stale_); 354 TestFakePluginService plugin_service(plugin_available_, plugin_stale_);
441 std::unique_ptr<InterceptingResourceHandler> intercepting_handler( 355 std::unique_ptr<InterceptingResourceHandler> intercepting_handler(
442 new InterceptingResourceHandler(base::MakeUnique<TestResourceHandler>( 356 new InterceptingResourceHandler(base::MakeUnique<TestResourceHandler>(),
443 true, // response_started_succeeds
444 false, // defer_on_response_started
445 true, // will_read_succeeds
446 true, // read_completed_succeeds
447 false), // defer_on_read_completed
448 nullptr)); 357 nullptr));
449 std::unique_ptr<TestResourceHandler> scoped_test_handler = 358
450 std::unique_ptr<TestResourceHandler>(new TestResourceHandler( 359 std::unique_ptr<TestResourceHandler> scoped_test_handler(
451 response_started, defer_response_started, will_read, read_completed, 360 new TestResourceHandler());
452 defer_read_completed)); 361 scoped_test_handler->set_on_response_started_result(response_started);
362 scoped_test_handler->set_defer_on_response_started(defer_response_started);
363 scoped_test_handler->set_on_will_read_result(will_read);
364 scoped_test_handler->set_on_read_completed_result(read_completed);
365 scoped_test_handler->set_defer_on_read_completed(defer_read_completed);
453 TestResourceHandler* test_handler = scoped_test_handler.get(); 366 TestResourceHandler* test_handler = scoped_test_handler.get();
454 std::unique_ptr<MimeSniffingResourceHandler> mime_sniffing_handler( 367 std::unique_ptr<MimeSniffingResourceHandler> mime_sniffing_handler(
455 new MimeSniffingResourceHandler(std::move(scoped_test_handler), &host, 368 new MimeSniffingResourceHandler(std::move(scoped_test_handler), &host,
456 &plugin_service, 369 &plugin_service,
457 intercepting_handler.get(), request.get(), 370 intercepting_handler.get(), request.get(),
458 REQUEST_CONTEXT_TYPE_UNSPECIFIED)); 371 REQUEST_CONTEXT_TYPE_UNSPECIFIED));
459 372
460 TestResourceController resource_controller; 373 TestResourceController resource_controller;
461 mime_sniffing_handler->SetController(&resource_controller); 374 mime_sniffing_handler->SetController(&resource_controller);
462 375
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
598 false, // allow_download 511 false, // allow_download
599 true, // is_async 512 true, // is_async
600 false); // is_using_lofi 513 false); // is_using_lofi
601 514
602 TestResourceDispatcherHost host(false); 515 TestResourceDispatcherHost host(false);
603 TestResourceDispatcherHostDelegate host_delegate(false); 516 TestResourceDispatcherHostDelegate host_delegate(false);
604 host.SetDelegate(&host_delegate); 517 host.SetDelegate(&host_delegate);
605 518
606 TestFakePluginService plugin_service(plugin_available_, plugin_stale_); 519 TestFakePluginService plugin_service(plugin_available_, plugin_stale_);
607 std::unique_ptr<InterceptingResourceHandler> intercepting_handler( 520 std::unique_ptr<InterceptingResourceHandler> intercepting_handler(
608 new InterceptingResourceHandler(base::MakeUnique<TestResourceHandler>( 521 new InterceptingResourceHandler(base::MakeUnique<TestResourceHandler>(),
609 true, // response_started_succeeds
610 false, // defer_response_started
611 true, // will_read_succeeds,
612 true, // read_completed_succeeds,
613 false), // defer_read_completed
614 nullptr)); 522 nullptr));
615 523
616 std::unique_ptr<TestResourceHandler> scoped_test_handler = 524 std::unique_ptr<TestResourceHandler> scoped_test_handler(
617 std::unique_ptr<TestResourceHandler>(new TestResourceHandler( 525 new TestResourceHandler());
618 response_started, defer_response_started, will_read, read_completed, 526 scoped_test_handler->set_on_response_started_result(response_started);
619 defer_read_completed)); 527 scoped_test_handler->set_defer_on_response_started(defer_response_started);
528 scoped_test_handler->set_on_will_read_result(will_read);
529 scoped_test_handler->set_on_read_completed_result(read_completed);
530 scoped_test_handler->set_defer_on_read_completed(defer_read_completed);
620 TestResourceHandler* test_handler = scoped_test_handler.get(); 531 TestResourceHandler* test_handler = scoped_test_handler.get();
621 std::unique_ptr<MimeSniffingResourceHandler> mime_sniffing_handler( 532 std::unique_ptr<MimeSniffingResourceHandler> mime_sniffing_handler(
622 new MimeSniffingResourceHandler(std::move(scoped_test_handler), &host, 533 new MimeSniffingResourceHandler(std::move(scoped_test_handler), &host,
623 &plugin_service, 534 &plugin_service,
624 intercepting_handler.get(), request.get(), 535 intercepting_handler.get(), request.get(),
625 REQUEST_CONTEXT_TYPE_UNSPECIFIED)); 536 REQUEST_CONTEXT_TYPE_UNSPECIFIED));
626 537
627 TestResourceController resource_controller; 538 TestResourceController resource_controller;
628 mime_sniffing_handler->SetController(&resource_controller); 539 mime_sniffing_handler->SetController(&resource_controller);
629 540
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after
997 true, // allow_download 908 true, // allow_download
998 true, // is_async 909 true, // is_async
999 false); // is_using_lofi 910 false); // is_using_lofi
1000 911
1001 TestResourceDispatcherHost host(false); 912 TestResourceDispatcherHost host(false);
1002 TestResourceDispatcherHostDelegate host_delegate(false); 913 TestResourceDispatcherHostDelegate host_delegate(false);
1003 host.SetDelegate(&host_delegate); 914 host.SetDelegate(&host_delegate);
1004 915
1005 TestFakePluginService plugin_service(false, false); 916 TestFakePluginService plugin_service(false, false);
1006 std::unique_ptr<ResourceHandler> intercepting_handler( 917 std::unique_ptr<ResourceHandler> intercepting_handler(
1007 new InterceptingResourceHandler(base::MakeUnique<TestResourceHandler>( 918 new InterceptingResourceHandler(base::MakeUnique<TestResourceHandler>(),
1008 true, // response_started_succeeds
1009 false, // defer_response_started
1010 true, // will_read_succeeds,
1011 true, // read_completed_succeeds,
1012 false), // defer_read_completed
1013 nullptr)); 919 nullptr));
1014 std::unique_ptr<ResourceHandler> mime_handler(new MimeSniffingResourceHandler( 920 std::unique_ptr<ResourceHandler> mime_handler(new MimeSniffingResourceHandler(
1015 std::unique_ptr<ResourceHandler>( 921 std::unique_ptr<ResourceHandler>(new TestResourceHandler()), &host,
1016 new TestResourceHandler(true, false, true, true, false)), 922 &plugin_service,
1017 &host, &plugin_service,
1018 static_cast<InterceptingResourceHandler*>(intercepting_handler.get()), 923 static_cast<InterceptingResourceHandler*>(intercepting_handler.get()),
1019 request.get(), REQUEST_CONTEXT_TYPE_UNSPECIFIED)); 924 request.get(), REQUEST_CONTEXT_TYPE_UNSPECIFIED));
1020 925
1021 TestResourceController resource_controller; 926 TestResourceController resource_controller;
1022 mime_handler->SetController(&resource_controller); 927 mime_handler->SetController(&resource_controller);
1023 928
929 // Request starts.
930 bool defer = false;
931 mime_handler->OnWillStart(request->url(), &defer);
932 EXPECT_FALSE(defer);
933
1024 // Simulate a 304 response. 934 // Simulate a 304 response.
1025 scoped_refptr<ResourceResponse> response(new ResourceResponse); 935 scoped_refptr<ResourceResponse> response(new ResourceResponse);
1026 // The MIME type isn't important but it shouldn't be empty. 936 // The MIME type isn't important but it shouldn't be empty.
1027 response->head.mime_type = "application/pdf"; 937 response->head.mime_type = "application/pdf";
1028 response->head.headers = new net::HttpResponseHeaders("HTTP/1.x 304 OK"); 938 response->head.headers = new net::HttpResponseHeaders("HTTP/1.x 304 OK");
1029 939
1030 // The response is received. No new ResourceHandler should be created to 940 // The response is received. No new ResourceHandler should be created to
1031 // handle the download. 941 // handle the download.
1032 bool defer = false;
1033 mime_handler->OnResponseStarted(response.get(), &defer); 942 mime_handler->OnResponseStarted(response.get(), &defer);
1034 EXPECT_FALSE(defer); 943 EXPECT_FALSE(defer);
1035 EXPECT_FALSE(host.new_resource_handler()); 944 EXPECT_FALSE(host.new_resource_handler());
1036 945
1037 content::RunAllPendingInMessageLoop(); 946 content::RunAllPendingInMessageLoop();
1038 } 947 }
1039 948
1040 TEST_F(MimeSniffingResourceHandlerTest, FetchShouldDisableMimeSniffing) { 949 TEST_F(MimeSniffingResourceHandlerTest, FetchShouldDisableMimeSniffing) {
1041 net::URLRequestContext context; 950 net::URLRequestContext context;
1042 std::unique_ptr<net::URLRequest> request(context.CreateRequest( 951 std::unique_ptr<net::URLRequest> request(context.CreateRequest(
1043 GURL("http://www.google.com"), net::DEFAULT_PRIORITY, nullptr)); 952 GURL("http://www.google.com"), net::DEFAULT_PRIORITY, nullptr));
1044 ResourceRequestInfo::AllocateForTesting(request.get(), 953 ResourceRequestInfo::AllocateForTesting(request.get(),
1045 RESOURCE_TYPE_MAIN_FRAME, 954 RESOURCE_TYPE_MAIN_FRAME,
1046 nullptr, // context 955 nullptr, // context
1047 0, // render_process_id 956 0, // render_process_id
1048 0, // render_view_id 957 0, // render_view_id
1049 0, // render_frame_id 958 0, // render_frame_id
1050 true, // is_main_frame 959 true, // is_main_frame
1051 false, // parent_is_main_frame 960 false, // parent_is_main_frame
1052 false, // allow_download 961 false, // allow_download
1053 true, // is_async 962 true, // is_async
1054 false); // is_using_lofi 963 false); // is_using_lofi
1055 964
1056 TestResourceDispatcherHost host(false); 965 TestResourceDispatcherHost host(false);
1057 966
1058 TestFakePluginService plugin_service(false, false); 967 TestFakePluginService plugin_service(false, false);
1059 std::unique_ptr<InterceptingResourceHandler> intercepting_handler( 968 std::unique_ptr<InterceptingResourceHandler> intercepting_handler(
1060 new InterceptingResourceHandler(base::MakeUnique<TestResourceHandler>( 969 new InterceptingResourceHandler(base::MakeUnique<TestResourceHandler>(),
1061 true, // response_started_succeeds
1062 false, // defer_response_started
1063 true, // will_read_succeeds,
1064 true, // read_completed_succeeds,
1065 false), // defer_read_completed
1066 nullptr)); 970 nullptr));
1067 971
1068 std::unique_ptr<TestResourceHandler> scoped_test_handler( 972 std::unique_ptr<TestResourceHandler> scoped_test_handler(
1069 new TestResourceHandler(false, // response_started 973 new TestResourceHandler());
1070 false, // defer_response_started 974 scoped_test_handler->set_on_response_started_result(false);
1071 true, // will_read,
1072 true, // read_completed,
1073 false)); // defer_read_completed
1074 std::unique_ptr<ResourceHandler> mime_sniffing_handler( 975 std::unique_ptr<ResourceHandler> mime_sniffing_handler(
1075 new MimeSniffingResourceHandler(std::move(scoped_test_handler), &host, 976 new MimeSniffingResourceHandler(std::move(scoped_test_handler), &host,
1076 &plugin_service, 977 &plugin_service,
1077 intercepting_handler.get(), request.get(), 978 intercepting_handler.get(), request.get(),
1078 REQUEST_CONTEXT_TYPE_FETCH)); 979 REQUEST_CONTEXT_TYPE_FETCH));
1079 980
1080 TestResourceController resource_controller; 981 TestResourceController resource_controller;
1081 mime_sniffing_handler->SetController(&resource_controller); 982 mime_sniffing_handler->SetController(&resource_controller);
1082 983
1083 bool defer = false; 984 bool defer = false;
1084 mime_sniffing_handler->OnWillStart(GURL(), &defer); 985 mime_sniffing_handler->OnWillStart(GURL(), &defer);
1085 ASSERT_FALSE(defer); 986 ASSERT_FALSE(defer);
1086 987
1087 scoped_refptr<ResourceResponse> response(new ResourceResponse); 988 scoped_refptr<ResourceResponse> response(new ResourceResponse);
1088 response->head.mime_type = "text/plain"; 989 response->head.mime_type = "text/plain";
1089 990
1090 // |mime_sniffing_handler->OnResponseStarted| should return false because 991 // |mime_sniffing_handler->OnResponseStarted| should return false because
1091 // mime sniffing is disabled and the wrapped resource handler returns false 992 // mime sniffing is disabled and the wrapped resource handler returns false
1092 // on OnResponseStarted. 993 // on OnResponseStarted.
1093 EXPECT_FALSE( 994 EXPECT_FALSE(
1094 mime_sniffing_handler->OnResponseStarted(response.get(), &defer)); 995 mime_sniffing_handler->OnResponseStarted(response.get(), &defer));
1095 996
1096 // Process all messages to ensure proper test teardown. 997 // Process all messages to ensure proper test teardown.
1097 content::RunAllPendingInMessageLoop(); 998 content::RunAllPendingInMessageLoop();
1098 } 999 }
1099 1000
1100 } // namespace content 1001 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/loader/mime_sniffing_resource_handler.cc ('k') | content/browser/loader/test_resource_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698