Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(182)

Side by Side Diff: headless/lib/headless_devtools_client_browsertest.cc

Issue 1907533002: headless: Implement DevTools events (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add parameters to all events Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « headless/lib/browser/types_h.template ('k') | headless/public/internal/message_dispatcher.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « headless/lib/browser/types_h.template ('k') | headless/public/internal/message_dispatcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698