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 "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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |