Index: content/browser/devtools/protocol/devtools_protocol_browsertest.cc |
diff --git a/content/browser/devtools/protocol/devtools_protocol_browsertest.cc b/content/browser/devtools/protocol/devtools_protocol_browsertest.cc |
index 0c577b651df47ac9e6df319f0b71e1cd4f610cc1..105f22b6a293f8a663b2119028373fe74ac61dea 100644 |
--- a/content/browser/devtools/protocol/devtools_protocol_browsertest.cc |
+++ b/content/browser/devtools/protocol/devtools_protocol_browsertest.cc |
@@ -685,14 +685,44 @@ IN_PROC_BROWSER_TEST_F(DevToolsProtocolTest, JavaScriptDialogNotifications) { |
dialog_manager.Handle(); |
} |
-IN_PROC_BROWSER_TEST_F(DevToolsProtocolTest, BrowserCreateTarget) { |
+IN_PROC_BROWSER_TEST_F(DevToolsProtocolTest, BrowserCreateAndCloseTarget) { |
NavigateToURLBlockUntilNavigationsComplete(shell(), GURL("about:blank"), 1); |
Attach(); |
EXPECT_EQ(1u, shell()->windows().size()); |
std::unique_ptr<base::DictionaryValue> params(new base::DictionaryValue()); |
params->SetString("url", "about:blank"); |
SendCommand("Browser.createTarget", std::move(params), true); |
+ std::string target_id; |
+ EXPECT_TRUE(result_->GetString("targetId", &target_id)); |
EXPECT_EQ(2u, shell()->windows().size()); |
+ |
+ // TODO(eseckler): Since the RenderView is closed asynchronously, we currently |
+ // don't verify that the command actually closes the shell. |
+ bool success; |
+ params.reset(new base::DictionaryValue()); |
+ params->SetString("targetId", target_id); |
+ SendCommand("Browser.closeTarget", std::move(params), true); |
+ EXPECT_TRUE(result_->GetBoolean("success", &success)); |
+ EXPECT_TRUE(success); |
+} |
+ |
+IN_PROC_BROWSER_TEST_F(DevToolsProtocolTest, BrowserGetTargets) { |
+ NavigateToURLBlockUntilNavigationsComplete(shell(), GURL("about:blank"), 1); |
+ Attach(); |
+ SendCommand("Browser.getTargets", nullptr, true); |
+ base::ListValue* target_infos; |
+ EXPECT_TRUE(result_->GetList("targetInfo", &target_infos)); |
+ EXPECT_EQ(1u, target_infos->GetSize()); |
+ base::DictionaryValue* target_info; |
+ EXPECT_TRUE(target_infos->GetDictionary(0u, &target_info)); |
+ std::string target_id, type, title, url; |
+ EXPECT_TRUE(target_info->GetString("targetId", &target_id)); |
+ EXPECT_TRUE(target_info->GetString("type", &type)); |
+ EXPECT_TRUE(target_info->GetString("title", &title)); |
+ EXPECT_TRUE(target_info->GetString("url", &url)); |
+ EXPECT_EQ(type, "web_contents"); |
+ EXPECT_EQ(title, "about:blank"); |
+ EXPECT_EQ(url, "about:blank"); |
} |
namespace { |