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

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

Issue 2226323002: Resize DevTools target frames. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: move command to Emulation, pull out other fixes into separate patch. Created 4 years, 4 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 "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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698