Index: chrome/browser/net/sqlite_persistent_cookie_store_unittest.cc |
diff --git a/chrome/browser/net/sqlite_persistent_cookie_store_unittest.cc b/chrome/browser/net/sqlite_persistent_cookie_store_unittest.cc |
index 98f7163b4d5f0482ba179e202905c742fd3f554c..d2720af3b602e1dbf86da16333f5b5deb77cdec5 100644 |
--- a/chrome/browser/net/sqlite_persistent_cookie_store_unittest.cc |
+++ b/chrome/browser/net/sqlite_persistent_cookie_store_unittest.cc |
@@ -61,7 +61,7 @@ class SQLitePersistentCookieStoreTest : public testing::Test { |
io_thread_.Start(); |
ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); |
store_ = new SQLitePersistentCookieStore( |
- temp_dir_.path().Append(chrome::kCookieFilename)); |
+ temp_dir_.path().Append(chrome::kCookieFilename), false); |
std::vector<net::CookieMonster::CanonicalCookie*> cookies; |
Load(&cookies); |
ASSERT_EQ(0u, cookies.size()); |
@@ -131,7 +131,7 @@ TEST_F(SQLitePersistentCookieStoreTest, TestPersistance) { |
// Make sure we wait until the destructor has run. |
ASSERT_TRUE(helper->Run()); |
store_ = new SQLitePersistentCookieStore( |
- temp_dir_.path().Append(chrome::kCookieFilename)); |
+ temp_dir_.path().Append(chrome::kCookieFilename), false); |
// Reload and test for persistence |
Load(&cookies); |
@@ -148,7 +148,7 @@ TEST_F(SQLitePersistentCookieStoreTest, TestPersistance) { |
STLDeleteContainerPointers(cookies.begin(), cookies.end()); |
cookies.clear(); |
store_ = new SQLitePersistentCookieStore( |
- temp_dir_.path().Append(chrome::kCookieFilename)); |
+ temp_dir_.path().Append(chrome::kCookieFilename), false); |
// Reload and check if the cookie has been removed. |
Load(&cookies); |
@@ -186,7 +186,7 @@ TEST_F(SQLitePersistentCookieStoreTest, TestLoadCookiesForKey) { |
ASSERT_TRUE(helper->Run()); |
store_ = new SQLitePersistentCookieStore( |
- temp_dir_.path().Append(chrome::kCookieFilename)); |
+ temp_dir_.path().Append(chrome::kCookieFilename), false); |
// Posting a blocking task to db_thread_ makes sure that the DB thread waits |
// until both Load and LoadCookiesForKey have been posted to its task queue. |
BrowserThread::PostTask( |
@@ -302,3 +302,95 @@ TEST_F(SQLitePersistentCookieStoreTest, TestFlushCompletionCallback) { |
ASSERT_EQ(1, counter->callback_count()); |
} |
+ |
+// Test loading old session cookies from the disk. |
+TEST_F(SQLitePersistentCookieStoreTest, TestLoadOldSessionCookies) { |
+ std::vector<net::CookieMonster::CanonicalCookie*> cookies; |
+ |
+ // Use a separate cookie store for this test. |
+ ScopedTempDir temp_dir; |
+ ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
+ store_ = new SQLitePersistentCookieStore( |
+ temp_dir.path().Append(chrome::kCookieFilename), true); |
+ // Make sure the database is initialized. |
+ Load(&cookies); |
+ ASSERT_EQ(0u, cookies.size()); |
+ |
+ // Add a session cookie. |
+ store_->AddCookie( |
+ net::CookieMonster::CanonicalCookie( |
+ GURL(), "C", "D", "http://sessioncookie.com", "/", std::string(), |
+ std::string(), base::Time::Now(), base::Time::Now(), |
+ base::Time::Now(), false, false, true, false /*is_persistent*/)); |
+ |
+ // Force the store to write its data to the disk. |
+ store_ = NULL; |
+ scoped_refptr<base::ThreadTestHelper> helper( |
+ new base::ThreadTestHelper( |
+ BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB))); |
+ // Make sure we wait until the destructor has run. |
+ ASSERT_TRUE(helper->Run()); |
+ |
+ // Create a store that loads session cookies. |
+ store_ = new SQLitePersistentCookieStore( |
+ temp_dir.path().Append(chrome::kCookieFilename), true); |
+ |
+ // Reload and test that the session cookie was loaded. |
+ Load(&cookies); |
+ ASSERT_EQ(1U, cookies.size()); |
+ ASSERT_STREQ("http://sessioncookie.com", cookies[0]->Domain().c_str()); |
+ ASSERT_STREQ("C", cookies[0]->Name().c_str()); |
+ ASSERT_STREQ("D", cookies[0]->Value().c_str()); |
+} |
+ |
+// Test loading old session cookies from the disk. |
+TEST_F(SQLitePersistentCookieStoreTest, TestDontLoadOldSessionCookies) { |
+ std::vector<net::CookieMonster::CanonicalCookie*> cookies; |
+ // Use a separate cookie store for this test. |
+ ScopedTempDir temp_dir; |
+ ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
+ store_ = new SQLitePersistentCookieStore( |
+ temp_dir.path().Append(chrome::kCookieFilename), true); |
+ // Make sure the database is initialized. |
+ Load(&cookies); |
+ ASSERT_EQ(0u, cookies.size()); |
+ |
+ // Add a session cookie. |
+ store_->AddCookie( |
+ net::CookieMonster::CanonicalCookie( |
+ GURL(), "C", "D", "http://sessioncookie.com", "/", std::string(), |
+ std::string(), base::Time::Now(), base::Time::Now(), |
+ base::Time::Now(), false, false, true, false /*is_persistent*/)); |
+ |
+ // Force the store to write its data to the disk. |
+ store_ = NULL; |
+ scoped_refptr<base::ThreadTestHelper> helper( |
+ new base::ThreadTestHelper( |
+ BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB))); |
+ // Make sure we wait until the destructor has run. |
+ ASSERT_TRUE(helper->Run()); |
+ |
+ // Create a store that doesn't load old session cookies. |
+ store_ = new SQLitePersistentCookieStore( |
+ temp_dir.path().Append(chrome::kCookieFilename), false); |
+ |
+ // Reload and test that the session cookie was not loaded. |
+ Load(&cookies); |
+ ASSERT_EQ(0U, cookies.size()); |
+ |
+ // The store should also delete the session cookie. Wait until that has been |
+ // done. |
+ store_ = NULL; |
+ helper = |
+ new base::ThreadTestHelper( |
jochen (gone - plz use gerrit)
2011/11/30 12:12:17
fits on last line?
marja
2011/11/30 12:57:48
Done.
|
+ BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB)); |
+ ASSERT_TRUE(helper->Run()); |
+ |
+ // Create a store that loads old session cookies. |
+ store_ = new SQLitePersistentCookieStore( |
+ temp_dir.path().Append(chrome::kCookieFilename), true); |
+ |
+ // Reload and test that the session cookie is gone. |
+ Load(&cookies); |
+ ASSERT_EQ(0U, cookies.size()); |
+} |