Chromium Code Reviews| Index: net/url_request/url_request_unittest.cc |
| diff --git a/net/url_request/url_request_unittest.cc b/net/url_request/url_request_unittest.cc |
| index 402b7733ff245b81b3e6e7a01a5272fd6b4e8f55..8ddc5cdf27332a845d798046ca23b10614333de3 100644 |
| --- a/net/url_request/url_request_unittest.cc |
| +++ b/net/url_request/url_request_unittest.cc |
| @@ -53,6 +53,7 @@ |
| #include "net/socket/ssl_client_socket.h" |
| #include "net/test/test_server.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" |
| @@ -3477,10 +3478,11 @@ TEST_F(URLRequestTestHTTP, InterceptPost307RedirectPost) { |
| TEST_F(URLRequestTestHTTP, DefaultAcceptLanguage) { |
| ASSERT_TRUE(test_server_.Start()); |
| + StaticHttpUserAgentSettings settings("en", EmptyString(), EmptyString()); |
| TestNetworkDelegate network_delegate; // must outlive URLRequests |
| TestURLRequestContext context(true); |
| context.set_network_delegate(&network_delegate); |
| - context.set_accept_language("en"); |
| + context.set_http_user_agent_settings(&settings); |
| context.Init(); |
| TestDelegate d; |
| @@ -3495,13 +3497,14 @@ TEST_F(URLRequestTestHTTP, DefaultAcceptLanguage) { |
| TEST_F(URLRequestTestHTTP, EmptyAcceptLanguage) { |
| ASSERT_TRUE(test_server_.Start()); |
| + StaticHttpUserAgentSettings settings("", EmptyString(), EmptyString()); |
|
mmenke
2012/10/25 18:06:33
Shouldn't "" just be EmptyString()? Suppose using
|
| TestNetworkDelegate network_delegate; // must outlive URLRequests |
| TestURLRequestContext context(true); |
| context.set_network_delegate(&network_delegate); |
| context.Init(); |
| // We override the language after initialization because empty entries |
| // get overridden by Init(). |
| - context.set_accept_language(""); |
| + context.set_http_user_agent_settings(&settings); |
| TestDelegate d; |
| URLRequest req( |
| @@ -3565,10 +3568,11 @@ TEST_F(URLRequestTestHTTP, OverrideAcceptEncoding) { |
| TEST_F(URLRequestTestHTTP, DefaultAcceptCharset) { |
| ASSERT_TRUE(test_server_.Start()); |
| + StaticHttpUserAgentSettings settings(EmptyString(), "en", EmptyString()); |
| TestNetworkDelegate network_delegate; // must outlive URLRequests |
| TestURLRequestContext context(true); |
| context.set_network_delegate(&network_delegate); |
| - context.set_accept_charset("en"); |
| + context.set_http_user_agent_settings(&settings); |
| context.Init(); |
| TestDelegate d; |
| @@ -3584,13 +3588,14 @@ TEST_F(URLRequestTestHTTP, DefaultAcceptCharset) { |
| TEST_F(URLRequestTestHTTP, EmptyAcceptCharset) { |
| ASSERT_TRUE(test_server_.Start()); |
| + StaticHttpUserAgentSettings settings(EmptyString(), "", EmptyString()); |
| TestNetworkDelegate network_delegate; // must outlive URLRequests |
| TestURLRequestContext context(true); |
| context.set_network_delegate(&network_delegate); |
| context.Init(); |
| // We override the accepted charset after initialization because empty |
| // entries get overridden otherwise. |
| - context.set_accept_charset(""); |
| + context.set_http_user_agent_settings(&settings); |
| TestDelegate d; |
| URLRequest req(test_server_.GetURL("echoheader?Accept-Charset"), |
| @@ -3651,6 +3656,36 @@ TEST_F(URLRequestTestHTTP, OverrideUserAgent) { |
| EXPECT_TRUE(StartsWithASCII(d.data_received(), "Lynx (textmode", true)); |
| } |
| +// Check that a NULL HttpUserAgentSettings causes the corresponding empty |
| +// headers to be sent. |
|
mmenke
2012/10/25 18:06:33
That should be "corresponding header to not be sen
pauljensen
2012/10/25 21:30:25
Its a mix of both empty or missing headers. We al
|
| +TEST_F(URLRequestTestHTTP, EmptyHttpUserAgentSettings) { |
| + ASSERT_TRUE(test_server_.Start()); |
| + |
| + TestNetworkDelegate network_delegate; // must outlive URLRequests |
| + TestURLRequestContext context(true); |
| + context.set_network_delegate(&network_delegate); |
| + context.Init(); |
| + // We override the HttpUserAgentSettings after initialization because empty |
| + // entries get overridden by Init(). |
| + context.set_http_user_agent_settings(NULL); |
| + |
| + struct { |
| + const char* request; |
| + const char* expected_response; |
| + } tests[] = { { "echoheader?Accept-Language", "None" }, |
| + { "echoheader?Accept-Charset", "None" }, |
| + { "echoheader?User-Agent", "" } }; |
| + |
| + for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); i++) { |
| + TestDelegate d; |
| + URLRequest req(test_server_.GetURL(tests[i].request), &d, &context); |
| + req.Start(); |
| + MessageLoop::current()->Run(); |
| + EXPECT_EQ(tests[i].expected_response, d.data_received()) |
| + << " Request = \"" << tests[i].request << "\""; |
| + } |
| +} |
| + |
| class HTTPSRequestTest : public testing::Test { |
| public: |
| HTTPSRequestTest() : default_context_(true) { |