Index: headless/lib/headless_devtools_client_browsertest.cc |
diff --git a/headless/lib/headless_devtools_client_browsertest.cc b/headless/lib/headless_devtools_client_browsertest.cc |
index 9eb22d10abb2367addd18a2beb2fab4c4f411a7d..c7a991e7dc27e3d37d5fa79ddd8d45779a58d6a2 100644 |
--- a/headless/lib/headless_devtools_client_browsertest.cc |
+++ b/headless/lib/headless_devtools_client_browsertest.cc |
@@ -7,11 +7,13 @@ |
#include "base/json/json_reader.h" |
#include "content/public/test/browser_test.h" |
#include "headless/public/domains/browser.h" |
+#include "headless/public/domains/emulation.h" |
#include "headless/public/domains/network.h" |
#include "headless/public/domains/page.h" |
#include "headless/public/domains/runtime.h" |
#include "headless/public/headless_browser.h" |
#include "headless/public/headless_devtools_client.h" |
+#include "headless/public/headless_devtools_target.h" |
#include "headless/test/headless_browser_test.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#include "url/gurl.h" |
@@ -211,11 +213,35 @@ class BrowserDomainCreateAndDeletePageTest |
void OnCreateTargetResult( |
std::unique_ptr<browser::CreateTargetResult> result) { |
EXPECT_EQ(2u, GetAllWebContents(browser()).size()); |
+ EXPECT_TRUE(GetAllWebContents(browser()).back()->GetDevToolsTarget()); |
+ |
+ if (GetAllWebContents(browser()).size() < 2 || |
+ !GetAllWebContents(browser()).back()->GetDevToolsTarget()) { |
+ OnGetFrameSizeResult(result->GetTargetId(), nullptr); |
+ } |
+ |
+ target_devtools_client_ = HeadlessDevToolsClient::Create(); |
+ GetAllWebContents(browser()).back()->GetDevToolsTarget()->AttachClient( |
+ target_devtools_client_.get()); |
+ target_devtools_client_->GetEmulation()->GetExperimental()->GetFrameSize( |
+ emulation::GetFrameSizeParams::Builder().Build(), |
+ base::Bind(&BrowserDomainCreateAndDeletePageTest::OnGetFrameSizeResult, |
+ base::Unretained(this), result->GetTargetId())); |
+ } |
+ |
+ void OnGetFrameSizeResult( |
+ std::string target_id, |
+ std::unique_ptr<emulation::GetFrameSizeResult> result) { |
+ if (result) { |
+ EXPECT_EQ(1, result->GetWidth()); |
+ EXPECT_EQ(1, result->GetHeight()); |
+ |
+ GetAllWebContents(browser()).back()->GetDevToolsTarget()->DetachClient( |
+ target_devtools_client_.get()); |
+ } |
devtools_client_->GetBrowser()->GetExperimental()->CloseTarget( |
- browser::CloseTargetParams::Builder() |
- .SetTargetId(result->GetTargetId()) |
- .Build(), |
+ browser::CloseTargetParams::Builder().SetTargetId(target_id).Build(), |
base::Bind(&BrowserDomainCreateAndDeletePageTest::OnCloseTargetResult, |
base::Unretained(this))); |
} |
@@ -225,6 +251,9 @@ class BrowserDomainCreateAndDeletePageTest |
EXPECT_EQ(1u, GetAllWebContents(browser()).size()); |
FinishAsynchronousTest(); |
} |
+ |
+ private: |
+ std::unique_ptr<HeadlessDevToolsClient> target_devtools_client_; |
}; |
HEADLESS_ASYNC_DEVTOOLED_TEST_F(BrowserDomainCreateAndDeletePageTest); |