| Index: net/url_request/url_request_unittest.cc
|
| ===================================================================
|
| --- net/url_request/url_request_unittest.cc (revision 268640)
|
| +++ net/url_request/url_request_unittest.cc (working copy)
|
| @@ -66,11 +66,8 @@
|
| #include "net/test/cert_test_util.h"
|
| #include "net/test/spawned_test_server/spawned_test_server.h"
|
| #include "net/url_request/data_protocol_handler.h"
|
| -#include "net/url_request/file_protocol_handler.h"
|
| -#include "net/url_request/ftp_protocol_handler.h"
|
| #include "net/url_request/static_http_user_agent_settings.h"
|
| #include "net/url_request/url_request.h"
|
| -#include "net/url_request/url_request_file_dir_job.h"
|
| #include "net/url_request/url_request_http_job.h"
|
| #include "net/url_request/url_request_job_factory_impl.h"
|
| #include "net/url_request/url_request_redirect_job.h"
|
| @@ -79,6 +76,15 @@
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "testing/platform_test.h"
|
|
|
| +#if !defined(DISABLE_FILE_SUPPORT)
|
| +#include "net/url_request/file_protocol_handler.h"
|
| +#include "net/url_request/url_request_file_dir_job.h"
|
| +#endif
|
| +
|
| +#if !defined(DISABLE_FTP_SUPPORT)
|
| +#include "net/url_request/ftp_protocol_handler.h"
|
| +#endif
|
| +
|
| #if defined(OS_WIN)
|
| #include "base/win/scoped_com_initializer.h"
|
| #include "base/win/scoped_comptr.h"
|
| @@ -598,8 +604,10 @@
|
| default_context_.set_network_delegate(&default_network_delegate_);
|
| default_context_.set_net_log(&net_log_);
|
| job_factory_.SetProtocolHandler("data", new DataProtocolHandler);
|
| +#if !defined(DISABLE_FILE_SUPPORT)
|
| job_factory_.SetProtocolHandler(
|
| "file", new FileProtocolHandler(base::MessageLoopProxy::current()));
|
| +#endif
|
| default_context_.set_job_factory(&job_factory_);
|
| default_context_.Init();
|
| }
|
| @@ -5148,20 +5156,27 @@
|
| req.Cancel();
|
| }
|
|
|
| -TEST_F(URLRequestTestHTTP, ProtocolHandlerAndFactoryRestrictRedirects) {
|
| +TEST_F(URLRequestTestHTTP, ProtocolHandlerAndFactoryRestrictDataRedirects) {
|
| // Test URLRequestJobFactory::ProtocolHandler::IsSafeRedirectTarget().
|
| - GURL file_url("file:///foo.txt");
|
| GURL data_url("data:,foo");
|
| - FileProtocolHandler file_protocol_handler(base::MessageLoopProxy::current());
|
| - EXPECT_FALSE(file_protocol_handler.IsSafeRedirectTarget(file_url));
|
| DataProtocolHandler data_protocol_handler;
|
| EXPECT_FALSE(data_protocol_handler.IsSafeRedirectTarget(data_url));
|
|
|
| // Test URLRequestJobFactoryImpl::IsSafeRedirectTarget().
|
| - EXPECT_FALSE(job_factory_.IsSafeRedirectTarget(file_url));
|
| EXPECT_FALSE(job_factory_.IsSafeRedirectTarget(data_url));
|
| }
|
|
|
| +#if !defined(DISABLE_FILE_SUPPORT)
|
| +TEST_F(URLRequestTestHTTP, ProtocolHandlerAndFactoryRestrictFileRedirects) {
|
| + // Test URLRequestJobFactory::ProtocolHandler::IsSafeRedirectTarget().
|
| + GURL file_url("file:///foo.txt");
|
| + FileProtocolHandler file_protocol_handler(base::MessageLoopProxy::current());
|
| + EXPECT_FALSE(file_protocol_handler.IsSafeRedirectTarget(file_url));
|
| +
|
| + // Test URLRequestJobFactoryImpl::IsSafeRedirectTarget().
|
| + EXPECT_FALSE(job_factory_.IsSafeRedirectTarget(file_url));
|
| +}
|
| +
|
| TEST_F(URLRequestTestHTTP, RestrictFileRedirects) {
|
| ASSERT_TRUE(test_server_.Start());
|
|
|
| @@ -5176,6 +5191,7 @@
|
| EXPECT_EQ(URLRequestStatus::FAILED, req.status().status());
|
| EXPECT_EQ(ERR_UNSAFE_REDIRECT, req.status().error());
|
| }
|
| +#endif // !defined(DISABLE_FILE_SUPPORT)
|
|
|
| TEST_F(URLRequestTestHTTP, RestrictDataRedirects) {
|
| ASSERT_TRUE(test_server_.Start());
|
|
|