OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <memory> | 5 #include <memory> |
6 | 6 |
7 #include "content/public/test/browser_test.h" | 7 #include "content/public/test/browser_test.h" |
8 #include "headless/public/headless_browser.h" | 8 #include "headless/public/headless_browser.h" |
9 #include "headless/public/headless_web_contents.h" | 9 #include "headless/public/headless_web_contents.h" |
10 #include "headless/test/headless_browser_test.h" | 10 #include "headless/test/headless_browser_test.h" |
11 #include "net/test/spawned_test_server/spawned_test_server.h" | 11 #include "net/test/spawned_test_server/spawned_test_server.h" |
12 #include "testing/gtest/include/gtest/gtest.h" | 12 #include "testing/gtest/include/gtest/gtest.h" |
13 #include "ui/gfx/geometry/size.h" | 13 #include "ui/gfx/geometry/size.h" |
14 | 14 |
15 namespace headless { | 15 namespace headless { |
16 | 16 |
17 IN_PROC_BROWSER_TEST_F(HeadlessBrowserTest, CreateAndDestroyWebContents) { | 17 IN_PROC_BROWSER_TEST_F(HeadlessBrowserTest, CreateAndDestroyWebContents) { |
18 std::unique_ptr<HeadlessWebContents> web_contents = | 18 std::unique_ptr<HeadlessWebContents> web_contents = |
19 browser()->CreateWebContents(gfx::Size(800, 600)); | 19 browser()->CreateWebContents(GURL("about:blank"), gfx::Size(800, 600)); |
20 EXPECT_TRUE(web_contents); | 20 EXPECT_TRUE(web_contents); |
21 // TODO(skyostil): Verify viewport dimensions once we can. | 21 // TODO(skyostil): Verify viewport dimensions once we can. |
22 web_contents.reset(); | 22 web_contents.reset(); |
23 } | 23 } |
24 | 24 |
| 25 IN_PROC_BROWSER_TEST_F(HeadlessBrowserTest, CreateWithBadURL) { |
| 26 GURL bad_url("not_valid"); |
| 27 std::unique_ptr<HeadlessWebContents> web_contents = |
| 28 browser()->CreateWebContents(bad_url, gfx::Size(800, 600)); |
| 29 EXPECT_FALSE(web_contents); |
| 30 } |
| 31 |
25 class HeadlessBrowserTestWithProxy : public HeadlessBrowserTest { | 32 class HeadlessBrowserTestWithProxy : public HeadlessBrowserTest { |
26 public: | 33 public: |
27 HeadlessBrowserTestWithProxy() | 34 HeadlessBrowserTestWithProxy() |
28 : proxy_server_(net::SpawnedTestServer::TYPE_HTTP, | 35 : proxy_server_(net::SpawnedTestServer::TYPE_HTTP, |
29 net::SpawnedTestServer::kLocalhost, | 36 net::SpawnedTestServer::kLocalhost, |
30 base::FilePath(FILE_PATH_LITERAL("headless/test/data"))) { | 37 base::FilePath(FILE_PATH_LITERAL("headless/test/data"))) { |
31 } | 38 } |
32 | 39 |
33 void SetUp() override { | 40 void SetUp() override { |
34 ASSERT_TRUE(proxy_server_.Start()); | 41 ASSERT_TRUE(proxy_server_.Start()); |
35 HeadlessBrowserTest::SetUp(); | 42 HeadlessBrowserTest::SetUp(); |
36 } | 43 } |
37 | 44 |
38 void TearDown() override { | 45 void TearDown() override { |
39 proxy_server_.Stop(); | 46 proxy_server_.Stop(); |
40 HeadlessBrowserTest::TearDown(); | 47 HeadlessBrowserTest::TearDown(); |
41 } | 48 } |
42 | 49 |
43 net::SpawnedTestServer* proxy_server() { return &proxy_server_; } | 50 net::SpawnedTestServer* proxy_server() { return &proxy_server_; } |
44 | 51 |
45 private: | 52 private: |
46 net::SpawnedTestServer proxy_server_; | 53 net::SpawnedTestServer proxy_server_; |
47 }; | 54 }; |
48 | 55 |
49 IN_PROC_BROWSER_TEST_F(HeadlessBrowserTestWithProxy, SetProxyServer) { | 56 IN_PROC_BROWSER_TEST_F(HeadlessBrowserTestWithProxy, SetProxyServer) { |
50 HeadlessBrowser::Options::Builder builder; | 57 HeadlessBrowser::Options::Builder builder; |
51 builder.SetProxyServer(proxy_server()->host_port_pair()); | 58 builder.SetProxyServer(proxy_server()->host_port_pair()); |
52 SetBrowserOptions(builder.Build()); | 59 SetBrowserOptions(builder.Build()); |
53 | 60 |
54 std::unique_ptr<HeadlessWebContents> web_contents = | |
55 browser()->CreateWebContents(gfx::Size(800, 600)); | |
56 | |
57 // Load a page which doesn't actually exist, but for which the our proxy | 61 // Load a page which doesn't actually exist, but for which the our proxy |
58 // returns valid content anyway. | 62 // returns valid content anyway. |
59 EXPECT_TRUE(NavigateAndWaitForLoad( | 63 std::unique_ptr<HeadlessWebContents> web_contents = |
60 web_contents.get(), GURL("http://not-an-actual-domain.tld/hello.html"))); | 64 browser()->CreateWebContents( |
| 65 GURL("http://not-an-actual-domain.tld/hello.html"), |
| 66 gfx::Size(800, 600)); |
| 67 EXPECT_TRUE(WaitForLoad(web_contents.get())); |
61 } | 68 } |
62 | 69 |
63 } // namespace headless | 70 } // namespace headless |
OLD | NEW |