summaryrefslogtreecommitdiff
path: root/chromium/net/url_request/url_request_context_builder_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/net/url_request/url_request_context_builder_unittest.cc')
-rw-r--r--chromium/net/url_request/url_request_context_builder_unittest.cc83
1 files changed, 83 insertions, 0 deletions
diff --git a/chromium/net/url_request/url_request_context_builder_unittest.cc b/chromium/net/url_request/url_request_context_builder_unittest.cc
new file mode 100644
index 00000000000..f747b4de705
--- /dev/null
+++ b/chromium/net/url_request/url_request_context_builder_unittest.cc
@@ -0,0 +1,83 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "net/url_request/url_request_context_builder.h"
+
+#include "build/build_config.h"
+#include "net/test/spawned_test_server/spawned_test_server.h"
+#include "net/url_request/url_request.h"
+#include "net/url_request/url_request_test_util.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "testing/platform_test.h"
+
+#if defined(OS_LINUX) || defined(OS_ANDROID)
+#include "net/proxy/proxy_config.h"
+#include "net/proxy/proxy_config_service_fixed.h"
+#endif // defined(OS_LINUX) || defined(OS_ANDROID)
+
+namespace net {
+
+namespace {
+
+// A subclass of SpawnedTestServer that uses a statically-configured hostname.
+// This is to work around mysterious failures in chrome_frame_net_tests. See:
+// http://crbug.com/114369
+class LocalHttpTestServer : public SpawnedTestServer {
+ public:
+ explicit LocalHttpTestServer(const base::FilePath& document_root)
+ : SpawnedTestServer(SpawnedTestServer::TYPE_HTTP,
+ ScopedCustomUrlRequestTestHttpHost::value(),
+ document_root) {}
+ LocalHttpTestServer()
+ : SpawnedTestServer(SpawnedTestServer::TYPE_HTTP,
+ ScopedCustomUrlRequestTestHttpHost::value(),
+ base::FilePath()) {}
+};
+
+class URLRequestContextBuilderTest : public PlatformTest {
+ protected:
+ URLRequestContextBuilderTest()
+ : test_server_(
+ base::FilePath(FILE_PATH_LITERAL("net/data/url_request_unittest"))) {
+#if defined(OS_LINUX) || defined(OS_ANDROID)
+ builder_.set_proxy_config_service(
+ new ProxyConfigServiceFixed(ProxyConfig::CreateDirect()));
+#endif // defined(OS_LINUX) || defined(OS_ANDROID)
+ }
+
+ LocalHttpTestServer test_server_;
+ URLRequestContextBuilder builder_;
+};
+
+TEST_F(URLRequestContextBuilderTest, DefaultSettings) {
+ ASSERT_TRUE(test_server_.Start());
+
+ scoped_ptr<URLRequestContext> context(builder_.Build());
+ TestDelegate delegate;
+ URLRequest request(
+ test_server_.GetURL("echoheader?Foo"), &delegate, context.get());
+ request.set_method("GET");
+ request.SetExtraRequestHeaderByName("Foo", "Bar", false);
+ request.Start();
+ base::MessageLoop::current()->Run();
+ EXPECT_EQ("Bar", delegate.data_received());
+}
+
+TEST_F(URLRequestContextBuilderTest, UserAgent) {
+ ASSERT_TRUE(test_server_.Start());
+
+ builder_.set_user_agent("Bar");
+ scoped_ptr<URLRequestContext> context(builder_.Build());
+ TestDelegate delegate;
+ URLRequest request(
+ test_server_.GetURL("echoheader?User-Agent"), &delegate, context.get());
+ request.set_method("GET");
+ request.Start();
+ base::MessageLoop::current()->Run();
+ EXPECT_EQ("Bar", delegate.data_received());
+}
+
+} // namespace
+
+} // namespace net