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 "base/json/json_reader.h" | 7 #include "base/json/json_reader.h" |
8 #include "content/public/test/browser_test.h" | 8 #include "content/public/test/browser_test.h" |
9 #include "headless/public/domains/browser.h" | 9 #include "headless/public/domains/browser.h" |
| 10 #include "headless/public/domains/emulation.h" |
10 #include "headless/public/domains/network.h" | 11 #include "headless/public/domains/network.h" |
11 #include "headless/public/domains/page.h" | 12 #include "headless/public/domains/page.h" |
12 #include "headless/public/domains/runtime.h" | 13 #include "headless/public/domains/runtime.h" |
13 #include "headless/public/headless_browser.h" | 14 #include "headless/public/headless_browser.h" |
14 #include "headless/public/headless_devtools_client.h" | 15 #include "headless/public/headless_devtools_client.h" |
| 16 #include "headless/public/headless_devtools_target.h" |
15 #include "headless/test/headless_browser_test.h" | 17 #include "headless/test/headless_browser_test.h" |
16 #include "testing/gtest/include/gtest/gtest.h" | 18 #include "testing/gtest/include/gtest/gtest.h" |
17 #include "url/gurl.h" | 19 #include "url/gurl.h" |
18 | 20 |
19 namespace headless { | 21 namespace headless { |
20 | 22 |
21 namespace { | 23 namespace { |
22 | 24 |
23 std::vector<HeadlessWebContents*> GetAllWebContents(HeadlessBrowser* browser) { | 25 std::vector<HeadlessWebContents*> GetAllWebContents(HeadlessBrowser* browser) { |
24 std::vector<HeadlessWebContents*> result; | 26 std::vector<HeadlessWebContents*> result; |
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
204 .SetWidth(1) | 206 .SetWidth(1) |
205 .SetHeight(1) | 207 .SetHeight(1) |
206 .Build(), | 208 .Build(), |
207 base::Bind(&BrowserDomainCreateAndDeletePageTest::OnCreateTargetResult, | 209 base::Bind(&BrowserDomainCreateAndDeletePageTest::OnCreateTargetResult, |
208 base::Unretained(this))); | 210 base::Unretained(this))); |
209 } | 211 } |
210 | 212 |
211 void OnCreateTargetResult( | 213 void OnCreateTargetResult( |
212 std::unique_ptr<browser::CreateTargetResult> result) { | 214 std::unique_ptr<browser::CreateTargetResult> result) { |
213 EXPECT_EQ(2u, GetAllWebContents(browser()).size()); | 215 EXPECT_EQ(2u, GetAllWebContents(browser()).size()); |
| 216 EXPECT_TRUE(GetAllWebContents(browser()).back()->GetDevToolsTarget()); |
| 217 |
| 218 if (GetAllWebContents(browser()).size() < 2 || |
| 219 !GetAllWebContents(browser()).back()->GetDevToolsTarget()) { |
| 220 OnGetFrameSizeResult(result->GetTargetId(), nullptr); |
| 221 } |
| 222 |
| 223 target_devtools_client_ = HeadlessDevToolsClient::Create(); |
| 224 GetAllWebContents(browser()).back()->GetDevToolsTarget()->AttachClient( |
| 225 target_devtools_client_.get()); |
| 226 target_devtools_client_->GetEmulation()->GetExperimental()->GetFrameSize( |
| 227 emulation::GetFrameSizeParams::Builder().Build(), |
| 228 base::Bind(&BrowserDomainCreateAndDeletePageTest::OnGetFrameSizeResult, |
| 229 base::Unretained(this), result->GetTargetId())); |
| 230 } |
| 231 |
| 232 void OnGetFrameSizeResult( |
| 233 std::string target_id, |
| 234 std::unique_ptr<emulation::GetFrameSizeResult> result) { |
| 235 if (result) { |
| 236 EXPECT_EQ(1, result->GetWidth()); |
| 237 EXPECT_EQ(1, result->GetHeight()); |
| 238 |
| 239 GetAllWebContents(browser()).back()->GetDevToolsTarget()->DetachClient( |
| 240 target_devtools_client_.get()); |
| 241 } |
214 | 242 |
215 devtools_client_->GetBrowser()->GetExperimental()->CloseTarget( | 243 devtools_client_->GetBrowser()->GetExperimental()->CloseTarget( |
216 browser::CloseTargetParams::Builder() | 244 browser::CloseTargetParams::Builder().SetTargetId(target_id).Build(), |
217 .SetTargetId(result->GetTargetId()) | |
218 .Build(), | |
219 base::Bind(&BrowserDomainCreateAndDeletePageTest::OnCloseTargetResult, | 245 base::Bind(&BrowserDomainCreateAndDeletePageTest::OnCloseTargetResult, |
220 base::Unretained(this))); | 246 base::Unretained(this))); |
221 } | 247 } |
222 | 248 |
223 void OnCloseTargetResult(std::unique_ptr<browser::CloseTargetResult> result) { | 249 void OnCloseTargetResult(std::unique_ptr<browser::CloseTargetResult> result) { |
224 EXPECT_TRUE(result->GetSuccess()); | 250 EXPECT_TRUE(result->GetSuccess()); |
225 EXPECT_EQ(1u, GetAllWebContents(browser()).size()); | 251 EXPECT_EQ(1u, GetAllWebContents(browser()).size()); |
226 FinishAsynchronousTest(); | 252 FinishAsynchronousTest(); |
227 } | 253 } |
| 254 |
| 255 private: |
| 256 std::unique_ptr<HeadlessDevToolsClient> target_devtools_client_; |
228 }; | 257 }; |
229 | 258 |
230 HEADLESS_ASYNC_DEVTOOLED_TEST_F(BrowserDomainCreateAndDeletePageTest); | 259 HEADLESS_ASYNC_DEVTOOLED_TEST_F(BrowserDomainCreateAndDeletePageTest); |
231 | 260 |
232 class BrowserDomainCreateAndDeleteBrowserContextTest | 261 class BrowserDomainCreateAndDeleteBrowserContextTest |
233 : public HeadlessAsyncDevTooledBrowserTest { | 262 : public HeadlessAsyncDevTooledBrowserTest { |
234 void RunDevTooledTest() override { | 263 void RunDevTooledTest() override { |
235 EXPECT_TRUE(embedded_test_server()->Start()); | 264 EXPECT_TRUE(embedded_test_server()->Start()); |
236 | 265 |
237 EXPECT_EQ(1u, GetAllWebContents(browser()).size()); | 266 EXPECT_EQ(1u, GetAllWebContents(browser()).size()); |
(...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
613 FinishAsynchronousTest(); | 642 FinishAsynchronousTest(); |
614 } | 643 } |
615 | 644 |
616 private: | 645 private: |
617 bool navigation_requested_ = false; | 646 bool navigation_requested_ = false; |
618 }; | 647 }; |
619 | 648 |
620 HEADLESS_ASYNC_DEVTOOLED_TEST_F(HeadlessDevToolsNavigationControlTest); | 649 HEADLESS_ASYNC_DEVTOOLED_TEST_F(HeadlessDevToolsNavigationControlTest); |
621 | 650 |
622 } // namespace headless | 651 } // namespace headless |
OLD | NEW |