| 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/domains/network.h" |
| 8 #include "headless/public/domains/page.h" | 9 #include "headless/public/domains/page.h" |
| 9 #include "headless/public/domains/runtime.h" | 10 #include "headless/public/domains/runtime.h" |
| 10 #include "headless/public/headless_browser.h" | 11 #include "headless/public/headless_browser.h" |
| 11 #include "headless/public/headless_devtools_client.h" | 12 #include "headless/public/headless_devtools_client.h" |
| 12 #include "headless/public/headless_devtools_target.h" | 13 #include "headless/public/headless_devtools_target.h" |
| 13 #include "headless/public/headless_web_contents.h" | 14 #include "headless/public/headless_web_contents.h" |
| 14 #include "headless/test/headless_browser_test.h" | 15 #include "headless/test/headless_browser_test.h" |
| 15 #include "testing/gtest/include/gtest/gtest.h" | 16 #include "testing/gtest/include/gtest/gtest.h" |
| 16 #include "ui/gfx/geometry/size.h" | 17 #include "ui/gfx/geometry/size.h" |
| 17 #include "url/gurl.h" | 18 #include "url/gurl.h" |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 | 50 |
| 50 web_contents_->GetDevToolsTarget()->DetachClient(devtools_client_.get()); | 51 web_contents_->GetDevToolsTarget()->DetachClient(devtools_client_.get()); |
| 51 web_contents_->RemoveObserver(this); | 52 web_contents_->RemoveObserver(this); |
| 52 web_contents_ = nullptr; | 53 web_contents_ = nullptr; |
| 53 } | 54 } |
| 54 | 55 |
| 55 std::unique_ptr<HeadlessWebContents> web_contents_; | 56 std::unique_ptr<HeadlessWebContents> web_contents_; |
| 56 std::unique_ptr<HeadlessDevToolsClient> devtools_client_; | 57 std::unique_ptr<HeadlessDevToolsClient> devtools_client_; |
| 57 }; | 58 }; |
| 58 | 59 |
| 59 class HeadlessDevToolsClientNavigationTest : public HeadlessDevToolsClientTest { | 60 class HeadlessDevToolsClientNavigationTest : public HeadlessDevToolsClientTest, |
| 61 page::Observer { |
| 60 public: | 62 public: |
| 61 void RunDevToolsClientTest() override { | 63 void RunDevToolsClientTest() override { |
| 62 EXPECT_TRUE(embedded_test_server()->Start()); | 64 EXPECT_TRUE(embedded_test_server()->Start()); |
| 63 std::unique_ptr<page::NavigateParams> params = | 65 std::unique_ptr<page::NavigateParams> params = |
| 64 page::NavigateParams::Builder() | 66 page::NavigateParams::Builder() |
| 65 .SetUrl(embedded_test_server()->GetURL("/hello.html").spec()) | 67 .SetUrl(embedded_test_server()->GetURL("/hello.html").spec()) |
| 66 .Build(); | 68 .Build(); |
| 69 devtools_client_->GetPage()->AddObserver(this); |
| 70 devtools_client_->GetPage()->Enable(); |
| 67 devtools_client_->GetPage()->Navigate(std::move(params)); | 71 devtools_client_->GetPage()->Navigate(std::move(params)); |
| 68 } | 72 } |
| 69 | 73 |
| 70 // TODO(skyostil): Wait for a load event once we support them. | 74 void OnLoadEventFired(const page::LoadEventFiredParams& params) override { |
| 71 void DidFinishNavigation(bool success) override { | 75 devtools_client_->GetPage()->RemoveObserver(this); |
| 72 EXPECT_TRUE(success); | |
| 73 FinishAsynchronousTest(); | 76 FinishAsynchronousTest(); |
| 74 } | 77 } |
| 75 }; | 78 }; |
| 76 | 79 |
| 77 DEVTOOLS_CLIENT_TEST_F(HeadlessDevToolsClientNavigationTest); | 80 DEVTOOLS_CLIENT_TEST_F(HeadlessDevToolsClientNavigationTest); |
| 78 | 81 |
| 79 class HeadlessDevToolsClientEvalTest : public HeadlessDevToolsClientTest { | 82 class HeadlessDevToolsClientEvalTest : public HeadlessDevToolsClientTest { |
| 80 public: | 83 public: |
| 81 void RunDevToolsClientTest() override { | 84 void RunDevToolsClientTest() override { |
| 82 std::unique_ptr<runtime::EvaluateParams> params = | 85 std::unique_ptr<runtime::EvaluateParams> params = |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 138 EXPECT_TRUE(first_result_received_); | 141 EXPECT_TRUE(first_result_received_); |
| 139 FinishAsynchronousTest(); | 142 FinishAsynchronousTest(); |
| 140 } | 143 } |
| 141 | 144 |
| 142 private: | 145 private: |
| 143 bool first_result_received_; | 146 bool first_result_received_; |
| 144 }; | 147 }; |
| 145 | 148 |
| 146 DEVTOOLS_CLIENT_TEST_F(HeadlessDevToolsClientCallbackTest); | 149 DEVTOOLS_CLIENT_TEST_F(HeadlessDevToolsClientCallbackTest); |
| 147 | 150 |
| 151 class HeadlessDevToolsClientObserverTest : public HeadlessDevToolsClientTest, |
| 152 network::Observer { |
| 153 public: |
| 154 void RunDevToolsClientTest() override { |
| 155 EXPECT_TRUE(embedded_test_server()->Start()); |
| 156 devtools_client_->GetNetwork()->AddObserver(this); |
| 157 devtools_client_->GetNetwork()->Enable(); |
| 158 devtools_client_->GetPage()->Navigate( |
| 159 embedded_test_server()->GetURL("/hello.html").spec()); |
| 160 } |
| 161 |
| 162 void OnRequestWillBeSent( |
| 163 const network::RequestWillBeSentParams& params) override { |
| 164 EXPECT_EQ("GET", params.GetRequest()->GetMethod()); |
| 165 EXPECT_EQ(embedded_test_server()->GetURL("/hello.html").spec(), |
| 166 params.GetRequest()->GetUrl()); |
| 167 } |
| 168 |
| 169 void OnResponseReceived( |
| 170 const network::ResponseReceivedParams& params) override { |
| 171 EXPECT_EQ(200, params.GetResponse()->GetStatus()); |
| 172 EXPECT_EQ("OK", params.GetResponse()->GetStatusText()); |
| 173 std::string content_type; |
| 174 EXPECT_TRUE(params.GetResponse()->GetHeaders()->GetString("Content-Type", |
| 175 &content_type)); |
| 176 EXPECT_EQ("text/html", content_type); |
| 177 |
| 178 devtools_client_->GetNetwork()->RemoveObserver(this); |
| 179 FinishAsynchronousTest(); |
| 180 } |
| 181 }; |
| 182 |
| 183 DEVTOOLS_CLIENT_TEST_F(HeadlessDevToolsClientObserverTest); |
| 184 |
| 148 } // namespace headless | 185 } // namespace headless |
| OLD | NEW |