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

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: 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
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 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698