Index: content/browser/loader/mime_sniffing_resource_handler_unittest.cc |
diff --git a/content/browser/loader/mime_sniffing_resource_handler_unittest.cc b/content/browser/loader/mime_sniffing_resource_handler_unittest.cc |
index 6a8bf3653aa815645c476c4c08ed47e797e400c2..92a8a1fca76519caf57d34f99a5fb77efd5ef542 100644 |
--- a/content/browser/loader/mime_sniffing_resource_handler_unittest.cc |
+++ b/content/browser/loader/mime_sniffing_resource_handler_unittest.cc |
@@ -17,6 +17,7 @@ |
#include "base/threading/thread_task_runner_handle.h" |
#include "content/browser/loader/intercepting_resource_handler.h" |
#include "content/browser/loader/resource_dispatcher_host_impl.h" |
+#include "content/browser/loader/test_resource_handler.h" |
#include "content/public/browser/resource_controller.h" |
#include "content/public/browser/resource_dispatcher_host_delegate.h" |
#include "content/public/browser/resource_request_info.h" |
@@ -34,97 +35,6 @@ namespace content { |
namespace { |
-class TestResourceHandler : public ResourceHandler { |
- public: |
- TestResourceHandler(bool response_started_succeeds, |
- bool defer_on_response_started, |
- bool will_read_succeeds, |
- bool read_completed_succeeds, |
- bool defer_on_read_completed) |
- : ResourceHandler(nullptr), |
- buffer_(new net::IOBuffer(2048)), |
- response_started_succeeds_(response_started_succeeds), |
- defer_on_response_started_(defer_on_response_started), |
- will_read_succeeds_(will_read_succeeds), |
- read_completed_succeeds_(read_completed_succeeds), |
- defer_on_read_completed_(defer_on_read_completed), |
- on_will_start_called_(0), |
- on_request_redirected_called_(0), |
- on_response_started_called_(0), |
- on_will_read_called_(0), |
- on_read_completed_called_(0) {} |
- |
- void SetController(ResourceController* controller) override {} |
- |
- bool OnRequestRedirected(const net::RedirectInfo& redirect_info, |
- ResourceResponse* response, |
- bool* defer) override { |
- on_request_redirected_called_++; |
- NOTREACHED(); |
- return false; |
- } |
- |
- bool OnResponseStarted(ResourceResponse* response, bool* defer) override { |
- on_response_started_called_++; |
- if (defer_on_response_started_) |
- *defer = true; |
- return response_started_succeeds_; |
- } |
- |
- bool OnWillStart(const GURL& url, bool* defer) override { |
- on_will_start_called_++; |
- return false; |
- } |
- |
- bool OnWillRead(scoped_refptr<net::IOBuffer>* buf, |
- int* buf_size, |
- int min_size) override { |
- on_will_read_called_++; |
- *buf = buffer_; |
- *buf_size = 2048; |
- return will_read_succeeds_; |
- } |
- |
- bool OnReadCompleted(int bytes_read, bool* defer) override { |
- DCHECK_LT(bytes_read, 2048); |
- on_read_completed_called_++; |
- if (defer_on_read_completed_) |
- *defer = true; |
- return read_completed_succeeds_; |
- } |
- |
- void OnResponseCompleted(const net::URLRequestStatus& status, |
- bool* defer) override {} |
- |
- void OnDataDownloaded(int bytes_downloaded) override { NOTREACHED(); } |
- |
- scoped_refptr<net::IOBuffer> buffer() { return buffer_; } |
- |
- int on_will_start_called() const { return on_will_start_called_; } |
- int on_request_redirected_called() const { |
- return on_request_redirected_called_; |
- } |
- int on_response_started_called() const { return on_response_started_called_; } |
- int on_will_read_called() const { return on_will_read_called_; } |
- int on_read_completed_called() const { return on_read_completed_called_; } |
- |
- private: |
- scoped_refptr<net::IOBuffer> buffer_; |
- bool response_started_succeeds_; |
- bool defer_on_response_started_; |
- bool will_read_succeeds_; |
- bool read_completed_succeeds_; |
- bool defer_on_read_completed_; |
- |
- int on_will_start_called_; |
- int on_request_redirected_called_; |
- int on_response_started_called_; |
- int on_will_read_called_; |
- int on_read_completed_called_; |
- |
- DISALLOW_COPY_AND_ASSIGN(TestResourceHandler); |
-}; |
- |
class TestResourceDispatcherHostDelegate |
: public ResourceDispatcherHostDelegate { |
public: |
@@ -180,7 +90,8 @@ class TestResourceDispatcherHost : public ResourceDispatcherHostImpl { |
private: |
std::unique_ptr<ResourceHandler> CreateNewResourceHandler() { |
std::unique_ptr<TestResourceHandler> new_resource_handler( |
- new TestResourceHandler(false, false, true, true, false)); |
+ new TestResourceHandler()); |
+ new_resource_handler->set_on_response_started_result(false); |
new_resource_handler_ = new_resource_handler.get(); |
return std::move(new_resource_handler); |
} |
@@ -341,12 +252,14 @@ MimeSniffingResourceHandlerTest::TestAcceptHeaderSettingWithURLRequest( |
true, // is_async |
false); // is_using_lofi |
+ std::unique_ptr<TestResourceHandler> scoped_test_handler( |
+ new TestResourceHandler()); |
+ scoped_test_handler->set_on_response_started_result(false); |
+ |
std::unique_ptr<ResourceHandler> mime_sniffing_handler( |
- new MimeSniffingResourceHandler( |
- std::unique_ptr<ResourceHandler>( |
- new TestResourceHandler(false, false, false, false, false)), |
- nullptr, nullptr, nullptr, request, |
- REQUEST_CONTEXT_TYPE_UNSPECIFIED)); |
+ new MimeSniffingResourceHandler(std::move(scoped_test_handler), nullptr, |
+ nullptr, nullptr, request, |
+ REQUEST_CONTEXT_TYPE_UNSPECIFIED)); |
bool defer = false; |
mime_sniffing_handler->OnWillStart(request->url(), &defer); |
@@ -381,18 +294,16 @@ bool MimeSniffingResourceHandlerTest::TestStreamIsIntercepted( |
host.SetDelegate(&host_delegate); |
TestFakePluginService plugin_service(plugin_available_, plugin_stale_); |
+ |
std::unique_ptr<InterceptingResourceHandler> intercepting_handler( |
- new InterceptingResourceHandler(base::MakeUnique<TestResourceHandler>( |
- true, // response_started_succeeds |
- false, // defer_response_started |
- true, // will_read_succeeds, |
- true, // read_completed_succeeds, |
- false), // defer_read_completed |
+ new InterceptingResourceHandler(base::MakeUnique<TestResourceHandler>(), |
nullptr)); |
+ std::unique_ptr<TestResourceHandler> scoped_test_handler( |
+ new TestResourceHandler()); |
+ scoped_test_handler->set_on_response_started_result(false); |
std::unique_ptr<ResourceHandler> mime_handler(new MimeSniffingResourceHandler( |
- std::unique_ptr<ResourceHandler>( |
- new TestResourceHandler(false, false, false, false, false)), |
- &host, &plugin_service, intercepting_handler.get(), request.get(), |
+ std::unique_ptr<ResourceHandler>(std::move(scoped_test_handler)), &host, |
+ &plugin_service, intercepting_handler.get(), request.get(), |
REQUEST_CONTEXT_TYPE_UNSPECIFIED)); |
TestResourceController resource_controller; |
@@ -403,6 +314,9 @@ bool MimeSniffingResourceHandlerTest::TestStreamIsIntercepted( |
response->head.mime_type = "application/pdf"; |
bool defer = false; |
+ mime_handler->OnWillStart(request->url(), &defer); |
+ EXPECT_FALSE(defer); |
+ |
mime_handler->OnResponseStarted(response.get(), &defer); |
content::RunAllPendingInMessageLoop(); |
@@ -439,17 +353,16 @@ void MimeSniffingResourceHandlerTest::TestHandlerSniffing( |
TestFakePluginService plugin_service(plugin_available_, plugin_stale_); |
std::unique_ptr<InterceptingResourceHandler> intercepting_handler( |
- new InterceptingResourceHandler(base::MakeUnique<TestResourceHandler>( |
- true, // response_started_succeeds |
- false, // defer_on_response_started |
- true, // will_read_succeeds |
- true, // read_completed_succeeds |
- false), // defer_on_read_completed |
+ new InterceptingResourceHandler(base::MakeUnique<TestResourceHandler>(), |
nullptr)); |
- std::unique_ptr<TestResourceHandler> scoped_test_handler = |
- std::unique_ptr<TestResourceHandler>(new TestResourceHandler( |
- response_started, defer_response_started, will_read, read_completed, |
- defer_read_completed)); |
+ |
+ std::unique_ptr<TestResourceHandler> scoped_test_handler( |
+ new TestResourceHandler()); |
+ scoped_test_handler->set_on_response_started_result(response_started); |
+ scoped_test_handler->set_defer_on_response_started(defer_response_started); |
+ scoped_test_handler->set_on_will_read_result(will_read); |
+ scoped_test_handler->set_on_read_completed_result(read_completed); |
+ scoped_test_handler->set_defer_on_read_completed(defer_read_completed); |
TestResourceHandler* test_handler = scoped_test_handler.get(); |
std::unique_ptr<MimeSniffingResourceHandler> mime_sniffing_handler( |
new MimeSniffingResourceHandler(std::move(scoped_test_handler), &host, |
@@ -605,18 +518,16 @@ void MimeSniffingResourceHandlerTest::TestHandlerNoSniffing( |
TestFakePluginService plugin_service(plugin_available_, plugin_stale_); |
std::unique_ptr<InterceptingResourceHandler> intercepting_handler( |
- new InterceptingResourceHandler(base::MakeUnique<TestResourceHandler>( |
- true, // response_started_succeeds |
- false, // defer_response_started |
- true, // will_read_succeeds, |
- true, // read_completed_succeeds, |
- false), // defer_read_completed |
+ new InterceptingResourceHandler(base::MakeUnique<TestResourceHandler>(), |
nullptr)); |
- std::unique_ptr<TestResourceHandler> scoped_test_handler = |
- std::unique_ptr<TestResourceHandler>(new TestResourceHandler( |
- response_started, defer_response_started, will_read, read_completed, |
- defer_read_completed)); |
+ std::unique_ptr<TestResourceHandler> scoped_test_handler( |
+ new TestResourceHandler()); |
+ scoped_test_handler->set_on_response_started_result(response_started); |
+ scoped_test_handler->set_defer_on_response_started(defer_response_started); |
+ scoped_test_handler->set_on_will_read_result(will_read); |
+ scoped_test_handler->set_on_read_completed_result(read_completed); |
+ scoped_test_handler->set_defer_on_read_completed(defer_read_completed); |
TestResourceHandler* test_handler = scoped_test_handler.get(); |
std::unique_ptr<MimeSniffingResourceHandler> mime_sniffing_handler( |
new MimeSniffingResourceHandler(std::move(scoped_test_handler), &host, |
@@ -1004,23 +915,22 @@ TEST_F(MimeSniffingResourceHandlerTest, 304Handling) { |
TestFakePluginService plugin_service(false, false); |
std::unique_ptr<ResourceHandler> intercepting_handler( |
- new InterceptingResourceHandler(base::MakeUnique<TestResourceHandler>( |
- true, // response_started_succeeds |
- false, // defer_response_started |
- true, // will_read_succeeds, |
- true, // read_completed_succeeds, |
- false), // defer_read_completed |
+ new InterceptingResourceHandler(base::MakeUnique<TestResourceHandler>(), |
nullptr)); |
std::unique_ptr<ResourceHandler> mime_handler(new MimeSniffingResourceHandler( |
- std::unique_ptr<ResourceHandler>( |
- new TestResourceHandler(true, false, true, true, false)), |
- &host, &plugin_service, |
+ std::unique_ptr<ResourceHandler>(new TestResourceHandler()), &host, |
+ &plugin_service, |
static_cast<InterceptingResourceHandler*>(intercepting_handler.get()), |
request.get(), REQUEST_CONTEXT_TYPE_UNSPECIFIED)); |
TestResourceController resource_controller; |
mime_handler->SetController(&resource_controller); |
+ // Request starts. |
+ bool defer = false; |
+ mime_handler->OnWillStart(request->url(), &defer); |
+ EXPECT_FALSE(defer); |
+ |
// Simulate a 304 response. |
scoped_refptr<ResourceResponse> response(new ResourceResponse); |
// The MIME type isn't important but it shouldn't be empty. |
@@ -1029,7 +939,6 @@ TEST_F(MimeSniffingResourceHandlerTest, 304Handling) { |
// The response is received. No new ResourceHandler should be created to |
// handle the download. |
- bool defer = false; |
mime_handler->OnResponseStarted(response.get(), &defer); |
EXPECT_FALSE(defer); |
EXPECT_FALSE(host.new_resource_handler()); |
@@ -1057,20 +966,12 @@ TEST_F(MimeSniffingResourceHandlerTest, FetchShouldDisableMimeSniffing) { |
TestFakePluginService plugin_service(false, false); |
std::unique_ptr<InterceptingResourceHandler> intercepting_handler( |
- new InterceptingResourceHandler(base::MakeUnique<TestResourceHandler>( |
- true, // response_started_succeeds |
- false, // defer_response_started |
- true, // will_read_succeeds, |
- true, // read_completed_succeeds, |
- false), // defer_read_completed |
+ new InterceptingResourceHandler(base::MakeUnique<TestResourceHandler>(), |
nullptr)); |
std::unique_ptr<TestResourceHandler> scoped_test_handler( |
- new TestResourceHandler(false, // response_started |
- false, // defer_response_started |
- true, // will_read, |
- true, // read_completed, |
- false)); // defer_read_completed |
+ new TestResourceHandler()); |
+ scoped_test_handler->set_on_response_started_result(false); |
std::unique_ptr<ResourceHandler> mime_sniffing_handler( |
new MimeSniffingResourceHandler(std::move(scoped_test_handler), &host, |
&plugin_service, |