| 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 |