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

Unified Diff: content/browser/devtools/protocol/devtools_protocol_browsertest.cc

Issue 2554293002: devtools: Make it possible to retrieve all cookies (Closed)
Patch Set: Update front-end Created 4 years 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 side-by-side diff with in-line comments
Download patch
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..c6e228fae207390fa561739e6ec6cebed0e89054 100644
--- a/content/browser/devtools/protocol/devtools_protocol_browsertest.cc
+++ b/content/browser/devtools/protocol/devtools_protocol_browsertest.cc
@@ -1448,4 +1448,71 @@ 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());
+
+ // Note: the cookies will be returned in unspecified order.
+ size_t found = 0;
+ for (size_t i = 0; i < cookies->GetSize(); i++) {
+ EXPECT_TRUE(cookies->GetDictionary(i, &cookie));
+ EXPECT_TRUE(cookie->GetString("name", &name));
+ if (name == "cookie_for_this_url") {
+ EXPECT_TRUE(cookie->GetString("value", &value));
+ EXPECT_EQ("mendacious", value);
+ found++;
+ } else if (name == "cookie_for_another_url") {
+ EXPECT_TRUE(cookie->GetString("value", &value));
+ EXPECT_EQ("polyglottal", value);
+ found++;
+ } else {
+ FAIL();
+ }
+ }
+ EXPECT_EQ(2u, found);
+}
+
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698