Index: headless/lib/headless_browser_browsertest.cc |
diff --git a/headless/lib/headless_browser_browsertest.cc b/headless/lib/headless_browser_browsertest.cc |
index ffcd39b33445ae7d95177a3695f93e65b08cabd1..93c9cbfaead7e924ec017b1db0a7464c3553aa77 100644 |
--- a/headless/lib/headless_browser_browsertest.cc |
+++ b/headless/lib/headless_browser_browsertest.cc |
@@ -6,6 +6,7 @@ |
#include "headless/public/headless_browser.h" |
#include "headless/public/headless_web_contents.h" |
#include "headless/test/headless_browser_test.h" |
+#include "net/test/spawned_test_server/spawned_test_server.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#include "ui/gfx/geometry/size.h" |
@@ -19,4 +20,42 @@ IN_PROC_BROWSER_TEST_F(HeadlessBrowserTest, CreateAndDestroyWebContents) { |
web_contents.reset(); |
} |
+class HeadlessBrowserTestWithProxy : public HeadlessBrowserTest { |
+ public: |
+ HeadlessBrowserTestWithProxy() |
+ : proxy_server_(net::SpawnedTestServer::TYPE_HTTP, |
+ net::SpawnedTestServer::kLocalhost, |
+ base::FilePath(FILE_PATH_LITERAL("headless/test/data"))) { |
+ } |
+ |
+ void SetUp() override { |
+ ASSERT_TRUE(proxy_server_.Start()); |
+ HeadlessBrowserTest::SetUp(); |
+ } |
+ |
+ void TearDown() override { |
+ proxy_server_.Stop(); |
+ HeadlessBrowserTest::TearDown(); |
+ } |
+ |
+ net::SpawnedTestServer* proxy_server() { return &proxy_server_; } |
+ |
+ private: |
+ net::SpawnedTestServer proxy_server_; |
+}; |
+ |
+IN_PROC_BROWSER_TEST_F(HeadlessBrowserTestWithProxy, SetProxyServer) { |
+ HeadlessBrowser::Options::Builder builder; |
+ builder.SetProxyServer(proxy_server()->host_port_pair()); |
+ SetBrowserOptions(builder.Build()); |
+ |
+ scoped_ptr<HeadlessWebContents> web_contents = |
+ browser()->CreateWebContents(gfx::Size(800, 600)); |
+ |
+ // Load a page which doesn't actually exist, but for which the our proxy |
+ // returns valid content anyway. |
+ EXPECT_TRUE(NavigateAndWaitForLoad( |
+ web_contents.get(), GURL("http://not-an-actual-domain.tld/hello.html"))); |
+} |
+ |
} // namespace headless |