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

Unified Diff: net/extras/sqlite/sqlite_persistent_cookie_store_unittest.cc

Issue 2882063002: Add a SetCanonicalCookie method for CookieMonster. (Closed)
Patch Set: Fix try jobs and do some cleanup. Created 3 years, 7 months 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: net/extras/sqlite/sqlite_persistent_cookie_store_unittest.cc
diff --git a/net/extras/sqlite/sqlite_persistent_cookie_store_unittest.cc b/net/extras/sqlite/sqlite_persistent_cookie_store_unittest.cc
index e80c5cd454755c425db920b5d6ad0b1066aed480..b59c28ca63216e6c9d67bd179ddced4f836bda8a 100644
--- a/net/extras/sqlite/sqlite_persistent_cookie_store_unittest.cc
+++ b/net/extras/sqlite/sqlite_persistent_cookie_store_unittest.cc
@@ -13,6 +13,7 @@
#include "base/files/file_util.h"
#include "base/files/scoped_temp_dir.h"
#include "base/location.h"
+#include "base/memory/ptr_util.h"
#include "base/memory/ref_counted.h"
#include "base/sequenced_task_runner.h"
#include "base/synchronization/waitable_event.h"
@@ -469,7 +470,7 @@ TEST_F(SQLitePersistentCookieStoreTest, TestLoadOldSessionCookies) {
cookies.clear();
}
-// Test loading old session cookies from the disk.
+// Test refusing to load old session cookies from the disk.
TEST_F(SQLitePersistentCookieStoreTest, TestDontLoadOldSessionCookies) {
InitializeStore(false, true);
@@ -498,6 +499,60 @@ TEST_F(SQLitePersistentCookieStoreTest, TestDontLoadOldSessionCookies) {
ASSERT_EQ(0U, cookies.size());
}
+// Confirm bad cookies on disk don't get looaded
+TEST_F(SQLitePersistentCookieStoreTest, FilterBadCookies) {
+ // Create an on-disk store.
+ InitializeStore(false, true);
+ DestroyStore();
+
+ // Add some cookies in by hand.
+ base::FilePath store_name(temp_dir_.GetPath().Append(kCookieFilename));
+ std::unique_ptr<sql::Connection> db(base::MakeUnique<sql::Connection>());
+ ASSERT_TRUE(db->Open(store_name));
+ sql::Statement stmt(db->GetUniqueStatement(
+ "INSERT INTO cookies (creation_utc, host_key, name, value, "
+ "encrypted_value, path, expires_utc, secure, httponly, "
+ "firstpartyonly, last_access_utc, has_expires, persistent, priority) "
+ "VALUES (?,'google.izzle',?,?,'',?,0,0,0,0,0,1,1,0)"));
+ ASSERT_TRUE(stmt.is_valid());
+
+ struct CookieInfo {
+ const char* name;
+ const char* value;
+ const char* path;
+ } cookies_info[] = {// A couple non-canonical cookies.
+ {"", "B", "/path"},
+ {"C ", "D", "/path"},
+
+ // A canonical cookie.
+ {"E", "F", "/path"}};
+
+ int64_t creation_time = 1;
+ for (int i = 0;
+ static_cast<unsigned int>(i) < sizeof(cookies_info) / sizeof(CookieInfo);
+ i++) {
+ stmt.Reset(true);
+
+ stmt.BindInt64(0, creation_time++);
+ stmt.BindString(1, cookies_info[i].name);
+ stmt.BindString(2, cookies_info[i].value);
+ stmt.BindString(3, cookies_info[i].path);
+ ASSERT_TRUE(stmt.Run());
+ }
+ stmt.Clear();
+ db.reset();
+
+ // Reopen the store and confirm that the only cookie loaded is the
+ // canonical one.
+ CanonicalCookieVector cookies;
+ CreateAndLoad(false, false, &cookies);
+ ASSERT_EQ(1U, cookies.size());
+ EXPECT_STREQ("E", cookies[0]->Name().c_str());
+ EXPECT_STREQ("F", cookies[0]->Value().c_str());
+ EXPECT_STREQ("/path", cookies[0]->Path().c_str());
+ DestroyStore();
+}
+
TEST_F(SQLitePersistentCookieStoreTest, PersistIsPersistent) {
InitializeStore(false, true);
static const char kSessionName[] = "session";

Powered by Google App Engine
This is Rietveld 408576698