| 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 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 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_->Close(); | 53 web_contents_->Close(); |
| 53 web_contents_ = nullptr; | 54 web_contents_ = nullptr; |
| 54 } | 55 } |
| 55 | 56 |
| 56 HeadlessWebContents* web_contents_; | 57 HeadlessWebContents* web_contents_; |
| 57 std::unique_ptr<HeadlessDevToolsClient> devtools_client_; | 58 std::unique_ptr<HeadlessDevToolsClient> devtools_client_; |
| 58 }; | 59 }; |
| 59 | 60 |
| 60 class HeadlessDevToolsClientNavigationTest : public HeadlessDevToolsClientTest { | 61 class HeadlessDevToolsClientNavigationTest : public HeadlessDevToolsClientTest, |
| 62 page::Observer { |
| 61 public: | 63 public: |
| 62 void RunDevToolsClientTest() override { | 64 void RunDevToolsClientTest() override { |
| 63 EXPECT_TRUE(embedded_test_server()->Start()); | 65 EXPECT_TRUE(embedded_test_server()->Start()); |
| 64 std::unique_ptr<page::NavigateParams> params = | 66 std::unique_ptr<page::NavigateParams> params = |
| 65 page::NavigateParams::Builder() | 67 page::NavigateParams::Builder() |
| 66 .SetUrl(embedded_test_server()->GetURL("/hello.html").spec()) | 68 .SetUrl(embedded_test_server()->GetURL("/hello.html").spec()) |
| 67 .Build(); | 69 .Build(); |
| 70 devtools_client_->GetPage()->AddObserver(this); |
| 71 devtools_client_->GetPage()->Enable(); |
| 68 devtools_client_->GetPage()->Navigate(std::move(params)); | 72 devtools_client_->GetPage()->Navigate(std::move(params)); |
| 69 } | 73 } |
| 70 | 74 |
| 71 // TODO(skyostil): Wait for a load event once we support them. | 75 void OnLoadEventFired(const page::LoadEventFiredParams& params) override { |
| 72 void DidFinishNavigation(bool success) override { | 76 devtools_client_->GetPage()->RemoveObserver(this); |
| 73 EXPECT_TRUE(success); | |
| 74 FinishAsynchronousTest(); | 77 FinishAsynchronousTest(); |
| 75 } | 78 } |
| 79 |
| 80 // Check that events with no parameters still get a parameters object. |
| 81 void OnFrameResized(const page::FrameResizedParams& params) override {} |
| 76 }; | 82 }; |
| 77 | 83 |
| 78 DEVTOOLS_CLIENT_TEST_F(HeadlessDevToolsClientNavigationTest); | 84 DEVTOOLS_CLIENT_TEST_F(HeadlessDevToolsClientNavigationTest); |
| 79 | 85 |
| 80 class HeadlessDevToolsClientEvalTest : public HeadlessDevToolsClientTest { | 86 class HeadlessDevToolsClientEvalTest : public HeadlessDevToolsClientTest { |
| 81 public: | 87 public: |
| 82 void RunDevToolsClientTest() override { | 88 void RunDevToolsClientTest() override { |
| 83 std::unique_ptr<runtime::EvaluateParams> params = | 89 std::unique_ptr<runtime::EvaluateParams> params = |
| 84 runtime::EvaluateParams::Builder().SetExpression("1 + 2").Build(); | 90 runtime::EvaluateParams::Builder().SetExpression("1 + 2").Build(); |
| 85 devtools_client_->GetRuntime()->Evaluate( | 91 devtools_client_->GetRuntime()->Evaluate( |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 139 EXPECT_TRUE(first_result_received_); | 145 EXPECT_TRUE(first_result_received_); |
| 140 FinishAsynchronousTest(); | 146 FinishAsynchronousTest(); |
| 141 } | 147 } |
| 142 | 148 |
| 143 private: | 149 private: |
| 144 bool first_result_received_; | 150 bool first_result_received_; |
| 145 }; | 151 }; |
| 146 | 152 |
| 147 DEVTOOLS_CLIENT_TEST_F(HeadlessDevToolsClientCallbackTest); | 153 DEVTOOLS_CLIENT_TEST_F(HeadlessDevToolsClientCallbackTest); |
| 148 | 154 |
| 155 class HeadlessDevToolsClientObserverTest : public HeadlessDevToolsClientTest, |
| 156 network::Observer { |
| 157 public: |
| 158 void RunDevToolsClientTest() override { |
| 159 EXPECT_TRUE(embedded_test_server()->Start()); |
| 160 devtools_client_->GetNetwork()->AddObserver(this); |
| 161 devtools_client_->GetNetwork()->Enable(); |
| 162 devtools_client_->GetPage()->Navigate( |
| 163 embedded_test_server()->GetURL("/hello.html").spec()); |
| 164 } |
| 165 |
| 166 void OnRequestWillBeSent( |
| 167 const network::RequestWillBeSentParams& params) override { |
| 168 EXPECT_EQ("GET", params.GetRequest()->GetMethod()); |
| 169 EXPECT_EQ(embedded_test_server()->GetURL("/hello.html").spec(), |
| 170 params.GetRequest()->GetUrl()); |
| 171 } |
| 172 |
| 173 void OnResponseReceived( |
| 174 const network::ResponseReceivedParams& params) override { |
| 175 EXPECT_EQ(200, params.GetResponse()->GetStatus()); |
| 176 EXPECT_EQ("OK", params.GetResponse()->GetStatusText()); |
| 177 std::string content_type; |
| 178 EXPECT_TRUE(params.GetResponse()->GetHeaders()->GetString("Content-Type", |
| 179 &content_type)); |
| 180 EXPECT_EQ("text/html", content_type); |
| 181 |
| 182 devtools_client_->GetNetwork()->RemoveObserver(this); |
| 183 FinishAsynchronousTest(); |
| 184 } |
| 185 }; |
| 186 |
| 187 DEVTOOLS_CLIENT_TEST_F(HeadlessDevToolsClientObserverTest); |
| 188 |
| 149 } // namespace headless | 189 } // namespace headless |
| OLD | NEW |