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

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

Issue 2720543002: Fix headless_browsertests failures with PlzNavigate. (Closed)
Patch Set: review comments Created 3 years, 9 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 "base/run_loop.h"
8 #include "content/public/browser/render_widget_host_view.h" 9 #include "content/public/browser/render_widget_host_view.h"
9 #include "content/public/browser/web_contents.h" 10 #include "content/public/browser/web_contents.h"
10 #include "content/public/common/url_constants.h" 11 #include "content/public/common/url_constants.h"
11 #include "content/public/test/browser_test.h" 12 #include "content/public/test/browser_test.h"
12 #include "headless/lib/browser/headless_web_contents_impl.h" 13 #include "headless/lib/browser/headless_web_contents_impl.h"
13 #include "headless/public/devtools/domains/dom.h" 14 #include "headless/public/devtools/domains/dom.h"
14 #include "headless/public/devtools/domains/emulation.h" 15 #include "headless/public/devtools/domains/emulation.h"
15 #include "headless/public/devtools/domains/inspector.h" 16 #include "headless/public/devtools/domains/inspector.h"
16 #include "headless/public/devtools/domains/network.h" 17 #include "headless/public/devtools/domains/network.h"
17 #include "headless/public/devtools/domains/page.h" 18 #include "headless/public/devtools/domains/page.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 : public HeadlessAsyncDevTooledBrowserTest, 57 : public HeadlessAsyncDevTooledBrowserTest,
57 page::ExperimentalObserver { 58 page::ExperimentalObserver {
58 public: 59 public:
59 void RunDevTooledTest() override { 60 void RunDevTooledTest() override {
60 EXPECT_TRUE(embedded_test_server()->Start()); 61 EXPECT_TRUE(embedded_test_server()->Start());
61 std::unique_ptr<page::NavigateParams> params = 62 std::unique_ptr<page::NavigateParams> params =
62 page::NavigateParams::Builder() 63 page::NavigateParams::Builder()
63 .SetUrl(embedded_test_server()->GetURL("/hello.html").spec()) 64 .SetUrl(embedded_test_server()->GetURL("/hello.html").spec())
64 .Build(); 65 .Build();
65 devtools_client_->GetPage()->GetExperimental()->AddObserver(this); 66 devtools_client_->GetPage()->GetExperimental()->AddObserver(this);
66 devtools_client_->GetPage()->Enable(); 67 base::RunLoop run_loop;
68 base::MessageLoop::ScopedNestableTaskAllower nest_loop(
69 base::MessageLoop::current());
70 devtools_client_->GetPage()->Enable(run_loop.QuitClosure());
71 run_loop.Run();
67 devtools_client_->GetPage()->Navigate(std::move(params)); 72 devtools_client_->GetPage()->Navigate(std::move(params));
68 } 73 }
69 74
70 void OnLoadEventFired(const page::LoadEventFiredParams& params) override { 75 void OnLoadEventFired(const page::LoadEventFiredParams& params) override {
71 devtools_client_->GetPage()->Disable(); 76 devtools_client_->GetPage()->Disable();
72 devtools_client_->GetPage()->GetExperimental()->RemoveObserver(this); 77 devtools_client_->GetPage()->GetExperimental()->RemoveObserver(this);
73 FinishAsynchronousTest(); 78 FinishAsynchronousTest();
74 } 79 }
75 80
76 // Check that events with no parameters still get a parameters object. 81 // Check that events with no parameters still get a parameters object.
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 }; 154 };
150 155
151 HEADLESS_ASYNC_DEVTOOLED_TEST_F(HeadlessDevToolsClientCallbackTest); 156 HEADLESS_ASYNC_DEVTOOLED_TEST_F(HeadlessDevToolsClientCallbackTest);
152 157
153 class HeadlessDevToolsClientObserverTest 158 class HeadlessDevToolsClientObserverTest
154 : public HeadlessAsyncDevTooledBrowserTest, 159 : public HeadlessAsyncDevTooledBrowserTest,
155 network::Observer { 160 network::Observer {
156 public: 161 public:
157 void RunDevTooledTest() override { 162 void RunDevTooledTest() override {
158 EXPECT_TRUE(embedded_test_server()->Start()); 163 EXPECT_TRUE(embedded_test_server()->Start());
164 base::RunLoop run_loop;
159 devtools_client_->GetNetwork()->AddObserver(this); 165 devtools_client_->GetNetwork()->AddObserver(this);
160 devtools_client_->GetNetwork()->Enable(); 166 devtools_client_->GetNetwork()->Enable(run_loop.QuitClosure());
167 base::MessageLoop::ScopedNestableTaskAllower nest_loop(
168 base::MessageLoop::current());
169 run_loop.Run();
170
161 devtools_client_->GetPage()->Navigate( 171 devtools_client_->GetPage()->Navigate(
162 embedded_test_server()->GetURL("/hello.html").spec()); 172 embedded_test_server()->GetURL("/hello.html").spec());
163 } 173 }
164 174
165 void OnRequestWillBeSent( 175 void OnRequestWillBeSent(
166 const network::RequestWillBeSentParams& params) override { 176 const network::RequestWillBeSentParams& params) override {
167 EXPECT_EQ("GET", params.GetRequest()->GetMethod()); 177 EXPECT_EQ("GET", params.GetRequest()->GetMethod());
168 EXPECT_EQ(embedded_test_server()->GetURL("/hello.html").spec(), 178 EXPECT_EQ(embedded_test_server()->GetURL("/hello.html").spec(),
169 params.GetRequest()->GetUrl()); 179 params.GetRequest()->GetUrl());
170 } 180 }
(...skipping 14 matching lines...) Expand all
185 }; 195 };
186 196
187 HEADLESS_ASYNC_DEVTOOLED_TEST_F(HeadlessDevToolsClientObserverTest); 197 HEADLESS_ASYNC_DEVTOOLED_TEST_F(HeadlessDevToolsClientObserverTest);
188 198
189 class HeadlessDevToolsClientExperimentalTest 199 class HeadlessDevToolsClientExperimentalTest
190 : public HeadlessAsyncDevTooledBrowserTest, 200 : public HeadlessAsyncDevTooledBrowserTest,
191 page::ExperimentalObserver { 201 page::ExperimentalObserver {
192 public: 202 public:
193 void RunDevTooledTest() override { 203 void RunDevTooledTest() override {
194 EXPECT_TRUE(embedded_test_server()->Start()); 204 EXPECT_TRUE(embedded_test_server()->Start());
205 base::RunLoop run_loop;
206 devtools_client_->GetPage()->GetExperimental()->AddObserver(this);
207 devtools_client_->GetPage()->Enable(run_loop.QuitClosure());
208 base::MessageLoop::ScopedNestableTaskAllower nest_loop(
209 base::MessageLoop::current());
210 run_loop.Run();
195 // Check that experimental commands require parameter objects. 211 // Check that experimental commands require parameter objects.
196 devtools_client_->GetRuntime() 212 devtools_client_->GetRuntime()
197 ->GetExperimental() 213 ->GetExperimental()
198 ->SetCustomObjectFormatterEnabled( 214 ->SetCustomObjectFormatterEnabled(
199 runtime::SetCustomObjectFormatterEnabledParams::Builder() 215 runtime::SetCustomObjectFormatterEnabledParams::Builder()
200 .SetEnabled(false) 216 .SetEnabled(false)
201 .Build()); 217 .Build());
202 218
203 // Check that a previously experimental command which takes no parameters 219 // Check that a previously experimental command which takes no parameters
204 // still works by giving it a parameter object. 220 // still works by giving it a parameter object.
205 devtools_client_->GetRuntime()->GetExperimental()->RunIfWaitingForDebugger( 221 devtools_client_->GetRuntime()->GetExperimental()->RunIfWaitingForDebugger(
206 runtime::RunIfWaitingForDebuggerParams::Builder().Build()); 222 runtime::RunIfWaitingForDebuggerParams::Builder().Build());
207 223
208 devtools_client_->GetPage()->GetExperimental()->AddObserver(this);
209 devtools_client_->GetPage()->Enable();
210 devtools_client_->GetPage()->Navigate( 224 devtools_client_->GetPage()->Navigate(
211 embedded_test_server()->GetURL("/hello.html").spec()); 225 embedded_test_server()->GetURL("/hello.html").spec());
212 } 226 }
213 227
214 void OnFrameStoppedLoading( 228 void OnFrameStoppedLoading(
215 const page::FrameStoppedLoadingParams& params) override { 229 const page::FrameStoppedLoadingParams& params) override {
216 devtools_client_->GetPage()->Disable(); 230 devtools_client_->GetPage()->Disable();
217 devtools_client_->GetPage()->GetExperimental()->RemoveObserver(this); 231 devtools_client_->GetPage()->GetExperimental()->RemoveObserver(this);
218 232
219 // Check that a non-experimental command which has no return value can be 233 // Check that a non-experimental command which has no return value can be
(...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after
631 }; 645 };
632 646
633 HEADLESS_ASYNC_DEVTOOLED_TEST_F(TargetDomainCreateTwoContexts); 647 HEADLESS_ASYNC_DEVTOOLED_TEST_F(TargetDomainCreateTwoContexts);
634 648
635 class HeadlessDevToolsNavigationControlTest 649 class HeadlessDevToolsNavigationControlTest
636 : public HeadlessAsyncDevTooledBrowserTest, 650 : public HeadlessAsyncDevTooledBrowserTest,
637 page::ExperimentalObserver { 651 page::ExperimentalObserver {
638 public: 652 public:
639 void RunDevTooledTest() override { 653 void RunDevTooledTest() override {
640 EXPECT_TRUE(embedded_test_server()->Start()); 654 EXPECT_TRUE(embedded_test_server()->Start());
655 base::RunLoop run_loop;
641 devtools_client_->GetPage()->GetExperimental()->AddObserver(this); 656 devtools_client_->GetPage()->GetExperimental()->AddObserver(this);
642 devtools_client_->GetPage()->Enable(); 657 devtools_client_->GetPage()->Enable(run_loop.QuitClosure());
658 base::MessageLoop::ScopedNestableTaskAllower nest_loop(
659 base::MessageLoop::current());
660 run_loop.Run();
643 devtools_client_->GetPage()->GetExperimental()->SetControlNavigations( 661 devtools_client_->GetPage()->GetExperimental()->SetControlNavigations(
644 headless::page::SetControlNavigationsParams::Builder() 662 headless::page::SetControlNavigationsParams::Builder()
645 .SetEnabled(true) 663 .SetEnabled(true)
646 .Build()); 664 .Build());
647 devtools_client_->GetPage()->Navigate( 665 devtools_client_->GetPage()->Navigate(
648 embedded_test_server()->GetURL("/hello.html").spec()); 666 embedded_test_server()->GetURL("/hello.html").spec());
649 } 667 }
650 668
651 void OnNavigationRequested( 669 void OnNavigationRequested(
652 const headless::page::NavigationRequestedParams& params) override { 670 const headless::page::NavigationRequestedParams& params) override {
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
754 }; 772 };
755 773
756 HEADLESS_ASYNC_DEVTOOLED_TEST_F(HeadlessDevToolsClientAttachTest); 774 HEADLESS_ASYNC_DEVTOOLED_TEST_F(HeadlessDevToolsClientAttachTest);
757 775
758 class HeadlessDevToolsMethodCallErrorTest 776 class HeadlessDevToolsMethodCallErrorTest
759 : public HeadlessAsyncDevTooledBrowserTest, 777 : public HeadlessAsyncDevTooledBrowserTest,
760 public page::Observer { 778 public page::Observer {
761 public: 779 public:
762 void RunDevTooledTest() override { 780 void RunDevTooledTest() override {
763 EXPECT_TRUE(embedded_test_server()->Start()); 781 EXPECT_TRUE(embedded_test_server()->Start());
782 base::RunLoop run_loop;
764 devtools_client_->GetPage()->AddObserver(this); 783 devtools_client_->GetPage()->AddObserver(this);
765 devtools_client_->GetPage()->Enable(); 784 devtools_client_->GetPage()->Enable(run_loop.QuitClosure());
785 base::MessageLoop::ScopedNestableTaskAllower nest_loop(
786 base::MessageLoop::current());
787 run_loop.Run();
766 devtools_client_->GetPage()->Navigate( 788 devtools_client_->GetPage()->Navigate(
767 embedded_test_server()->GetURL("/hello.html").spec()); 789 embedded_test_server()->GetURL("/hello.html").spec());
768 } 790 }
769 791
770 void OnLoadEventFired(const page::LoadEventFiredParams& params) override { 792 void OnLoadEventFired(const page::LoadEventFiredParams& params) override {
771 devtools_client_->GetPage()->GetExperimental()->RemoveObserver(this); 793 devtools_client_->GetPage()->GetExperimental()->RemoveObserver(this);
772 devtools_client_->GetDOM()->GetDocument( 794 devtools_client_->GetDOM()->GetDocument(
773 base::Bind(&HeadlessDevToolsMethodCallErrorTest::OnGetDocument, 795 base::Bind(&HeadlessDevToolsMethodCallErrorTest::OnGetDocument,
774 base::Unretained(this))); 796 base::Unretained(this)));
775 } 797 }
(...skipping 16 matching lines...) Expand all
792 814
793 HEADLESS_ASYNC_DEVTOOLED_TEST_F(HeadlessDevToolsMethodCallErrorTest); 815 HEADLESS_ASYNC_DEVTOOLED_TEST_F(HeadlessDevToolsMethodCallErrorTest);
794 816
795 class HeadlessDevToolsNetworkBlockedUrlTest 817 class HeadlessDevToolsNetworkBlockedUrlTest
796 : public HeadlessAsyncDevTooledBrowserTest, 818 : public HeadlessAsyncDevTooledBrowserTest,
797 public page::Observer, 819 public page::Observer,
798 public network::Observer { 820 public network::Observer {
799 public: 821 public:
800 void RunDevTooledTest() override { 822 void RunDevTooledTest() override {
801 EXPECT_TRUE(embedded_test_server()->Start()); 823 EXPECT_TRUE(embedded_test_server()->Start());
824 base::RunLoop run_loop;
802 devtools_client_->GetPage()->AddObserver(this); 825 devtools_client_->GetPage()->AddObserver(this);
803 devtools_client_->GetPage()->Enable(); 826 devtools_client_->GetPage()->Enable();
804 devtools_client_->GetNetwork()->AddObserver(this); 827 devtools_client_->GetNetwork()->AddObserver(this);
805 devtools_client_->GetNetwork()->Enable(); 828 devtools_client_->GetNetwork()->Enable(run_loop.QuitClosure());
829 base::MessageLoop::ScopedNestableTaskAllower nest_loop(
830 base::MessageLoop::current());
831 run_loop.Run();
806 devtools_client_->GetNetwork()->GetExperimental()->AddBlockedURL( 832 devtools_client_->GetNetwork()->GetExperimental()->AddBlockedURL(
807 network::AddBlockedURLParams::Builder() 833 network::AddBlockedURLParams::Builder()
808 .SetUrl("dom_tree_test.css") 834 .SetUrl("dom_tree_test.css")
809 .Build()); 835 .Build());
810 devtools_client_->GetPage()->Navigate( 836 devtools_client_->GetPage()->Navigate(
811 embedded_test_server()->GetURL("/dom_tree_test.html").spec()); 837 embedded_test_server()->GetURL("/dom_tree_test.html").spec());
812 } 838 }
813 839
814 std::string GetUrlPath(const std::string& url) const { 840 std::string GetUrlPath(const std::string& url) const {
815 GURL gurl(url); 841 GURL gurl(url);
(...skipping 29 matching lines...) Expand all
845 871
846 std::map<std::string, std::string> request_id_to_path_; 872 std::map<std::string, std::string> request_id_to_path_;
847 std::vector<std::string> requests_to_be_sent_; 873 std::vector<std::string> requests_to_be_sent_;
848 std::vector<std::string> responses_received_; 874 std::vector<std::string> responses_received_;
849 std::vector<std::string> failures_; 875 std::vector<std::string> failures_;
850 }; 876 };
851 877
852 HEADLESS_ASYNC_DEVTOOLED_TEST_F(HeadlessDevToolsNetworkBlockedUrlTest); 878 HEADLESS_ASYNC_DEVTOOLED_TEST_F(HeadlessDevToolsNetworkBlockedUrlTest);
853 879
854 } // namespace headless 880 } // namespace headless
OLDNEW
« no previous file with comments | « headless/lib/headless_browser_context_browsertest.cc ('k') | headless/test/headless_browser_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698