Chromium Code Reviews| 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 bcbf2b4d8e74b68d6cde093e8cb824131682df76..f4aae0107a1927cd404e4e87dc413b473c79caf3 100644 |
| --- a/content/browser/devtools/protocol/devtools_protocol_browsertest.cc |
| +++ b/content/browser/devtools/protocol/devtools_protocol_browsertest.cc |
| @@ -1448,4 +1448,64 @@ IN_PROC_BROWSER_TEST_F(SitePerProcessDevToolsProtocolTest, TargetNoDiscovery) { |
| EXPECT_EQ(target_id, temp); |
| } |
| +IN_PROC_BROWSER_TEST_F(DevToolsProtocolTest, SetAndGetCookies) { |
| + ASSERT_TRUE(embedded_test_server()->Start()); |
| + GURL test_url = embedded_test_server()->GetURL("/title1.html"); |
| + NavigateToURLBlockUntilNavigationsComplete(shell(), test_url, 1); |
| + Attach(); |
| + |
| + // Set two cookies, one of which matches the loaded URL and another that |
| + // doesn't. |
| + std::unique_ptr<base::DictionaryValue> command_params; |
| + command_params.reset(new base::DictionaryValue()); |
| + command_params->SetString("url", test_url.spec()); |
| + command_params->SetString("name", "cookie_for_this_url"); |
| + command_params->SetString("value", "mendacious"); |
| + SendCommand("Network.setCookie", std::move(command_params), false); |
| + |
| + command_params.reset(new base::DictionaryValue()); |
| + command_params->SetString("url", "https://www.chromium.org"); |
| + command_params->SetString("name", "cookie_for_another_url"); |
| + command_params->SetString("value", "polyglottal"); |
| + SendCommand("Network.setCookie", std::move(command_params), false); |
| + |
| + // First get the cookies for just the loaded URL. |
| + SendCommand("Network.getCookies", nullptr, true); |
| + |
| + base::ListValue* cookies; |
| + EXPECT_TRUE(result_->HasKey("cookies")); |
| + EXPECT_TRUE(result_->GetList("cookies", &cookies)); |
| + EXPECT_EQ(1u, cookies->GetSize()); |
| + |
| + base::DictionaryValue* cookie; |
| + std::string name; |
| + std::string value; |
| + EXPECT_TRUE(cookies->GetDictionary(0, &cookie)); |
| + EXPECT_TRUE(cookie->GetString("name", &name)); |
| + EXPECT_TRUE(cookie->GetString("value", &value)); |
| + EXPECT_EQ("cookie_for_this_url", name); |
| + EXPECT_EQ("mendacious", value); |
| + |
| + // Then get all the cookies in the cookie jar. |
| + command_params.reset(new base::DictionaryValue()); |
| + command_params->SetBoolean("global", true); |
| + SendCommand("Network.getCookies", std::move(command_params), true); |
| + |
| + EXPECT_TRUE(result_->HasKey("cookies")); |
| + EXPECT_TRUE(result_->GetList("cookies", &cookies)); |
| + EXPECT_EQ(2u, cookies->GetSize()); |
| + |
| + EXPECT_TRUE(cookies->GetDictionary(0, &cookie)); |
|
dgozman
2016/12/07 19:25:05
Bots show that order is unpredictable here :-)
Sami
2016/12/08 10:52:10
So it seems :) Fixed.
|
| + EXPECT_TRUE(cookie->GetString("name", &name)); |
| + EXPECT_TRUE(cookie->GetString("value", &value)); |
| + EXPECT_EQ("cookie_for_this_url", name); |
| + EXPECT_EQ("mendacious", value); |
| + |
| + EXPECT_TRUE(cookies->GetDictionary(1, &cookie)); |
| + EXPECT_TRUE(cookie->GetString("name", &name)); |
| + EXPECT_TRUE(cookie->GetString("value", &value)); |
| + EXPECT_EQ("cookie_for_another_url", name); |
| + EXPECT_EQ("polyglottal", value); |
| +} |
| + |
| } // namespace content |