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 d67682a60f8dc117d152cc270ff89e60a629384b..5c3807f4835463da5924214d043d9f80448584ee 100644 |
--- a/headless/lib/headless_devtools_client_browsertest.cc |
+++ b/headless/lib/headless_devtools_client_browsertest.cc |
@@ -110,4 +110,39 @@ class HeadlessDevToolsClientEvalTest : public HeadlessDevToolsClientTest { |
DEVTOOLS_CLIENT_TEST_F(HeadlessDevToolsClientEvalTest); |
+class HeadlessDevToolsClientCallbackTest : public HeadlessDevToolsClientTest { |
+ public: |
+ HeadlessDevToolsClientCallbackTest() : first_result_received_(false) {} |
+ |
+ void RunDevToolsClientTest() override { |
+ // Null callback without parameters. |
+ devtools_client_->GetRuntime()->Run(); |
+ // Null callback with parameters. |
+ devtools_client_->GetRuntime()->Evaluate("true"); |
+ // Non-null callback without parameters. |
+ devtools_client_->GetRuntime()->Disable( |
+ base::Bind(&HeadlessDevToolsClientCallbackTest::OnFirstResult, |
+ base::Unretained(this))); |
+ // Non-null callback with parameters. |
+ devtools_client_->GetRuntime()->Evaluate( |
+ "true", base::Bind(&HeadlessDevToolsClientCallbackTest::OnSecondResult, |
+ base::Unretained(this))); |
+ } |
+ |
+ void OnFirstResult() { |
+ EXPECT_FALSE(first_result_received_); |
+ first_result_received_ = true; |
+ } |
+ |
+ void OnSecondResult(std::unique_ptr<runtime::EvaluateResult> result) { |
+ EXPECT_TRUE(first_result_received_); |
+ FinishAsynchronousTest(); |
+ } |
+ |
+ private: |
+ bool first_result_received_; |
+}; |
+ |
+DEVTOOLS_CLIENT_TEST_F(HeadlessDevToolsClientCallbackTest); |
+ |
} // namespace headless |