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 1ccba74e81e61d515c8803e66120020aadebe042..dfec9edd30c369d5b796bafc3f4bce57ce56e080 100644 |
--- a/net/extras/sqlite/sqlite_persistent_cookie_store_unittest.cc |
+++ b/net/extras/sqlite/sqlite_persistent_cookie_store_unittest.cc |
@@ -5,6 +5,7 @@ |
#include "net/extras/sqlite/sqlite_persistent_cookie_store.h" |
#include <map> |
+#include <memory> |
#include <set> |
#include "base/bind.h" |
@@ -14,7 +15,6 @@ |
#include "base/location.h" |
#include "base/memory/ref_counted.h" |
#include "base/sequenced_task_runner.h" |
-#include "base/stl_util.h" |
#include "base/synchronization/waitable_event.h" |
#include "base/test/sequenced_worker_pool_owner.h" |
#include "base/threading/sequenced_worker_pool.h" |
@@ -80,7 +80,7 @@ bool CookieCryptor::DecryptString(const std::string& ciphertext, |
} // namespace |
-typedef std::vector<CanonicalCookie*> CanonicalCookieVector; |
+typedef std::vector<std::unique_ptr<CanonicalCookie>> CanonicalCookieVector; |
class SQLitePersistentCookieStoreTest : public testing::Test { |
public: |
@@ -93,13 +93,13 @@ class SQLitePersistentCookieStoreTest : public testing::Test { |
db_thread_event_(base::WaitableEvent::ResetPolicy::AUTOMATIC, |
base::WaitableEvent::InitialState::NOT_SIGNALED) {} |
- void OnLoaded(const CanonicalCookieVector& cookies) { |
- cookies_ = cookies; |
+ void OnLoaded(CanonicalCookieVector cookies) { |
+ cookies_.swap(cookies); |
loaded_event_.Signal(); |
} |
- void OnKeyLoaded(const CanonicalCookieVector& cookies) { |
- cookies_ = cookies; |
+ void OnKeyLoaded(CanonicalCookieVector cookies) { |
+ cookies_.swap(cookies); |
key_loaded_event_.Signal(); |
} |
@@ -108,7 +108,7 @@ class SQLitePersistentCookieStoreTest : public testing::Test { |
store_->Load(base::Bind(&SQLitePersistentCookieStoreTest::OnLoaded, |
base::Unretained(this))); |
loaded_event_.Wait(); |
- *cookies = cookies_; |
+ cookies->swap(cookies_); |
} |
void Flush() { |
@@ -229,7 +229,7 @@ TEST_F(SQLitePersistentCookieStoreTest, TestInvalidMetaTableRecovery) { |
ASSERT_STREQ("A", cookies[0]->Name().c_str()); |
ASSERT_STREQ("B", cookies[0]->Value().c_str()); |
DestroyStore(); |
- base::STLDeleteElements(&cookies); |
+ cookies.clear(); |
// Now corrupt the meta table. |
{ |
@@ -254,7 +254,7 @@ TEST_F(SQLitePersistentCookieStoreTest, TestInvalidMetaTableRecovery) { |
ASSERT_STREQ("foo.bar", cookies[0]->Domain().c_str()); |
ASSERT_STREQ("X", cookies[0]->Name().c_str()); |
ASSERT_STREQ("Y", cookies[0]->Value().c_str()); |
- base::STLDeleteElements(&cookies); |
+ cookies.clear(); |
} |
// Test if data is stored as expected in the SQLite database. |
@@ -277,7 +277,7 @@ TEST_F(SQLitePersistentCookieStoreTest, TestPersistance) { |
// Now delete the cookie and check persistence again. |
store_->DeleteCookie(*cookies[0]); |
DestroyStore(); |
- base::STLDeleteElements(&cookies); |
+ cookies.clear(); |
// Reload and check if the cookie has been removed. |
CreateAndLoad(false, false, &cookies); |
@@ -346,7 +346,7 @@ TEST_F(SQLitePersistentCookieStoreTest, TestSessionCookiesDeletedOnStartup) { |
db_thread_event_.Signal(); |
event.Wait(); |
loaded_event_.Wait(); |
- base::STLDeleteElements(&cookies_); |
+ cookies_.clear(); |
DestroyStore(); |
// Load the store a third time, this time restoring session cookies. The |
@@ -359,7 +359,7 @@ TEST_F(SQLitePersistentCookieStoreTest, TestSessionCookiesDeletedOnStartup) { |
base::Unretained(this))); |
loaded_event_.Wait(); |
ASSERT_EQ(4u, cookies_.size()); |
- base::STLDeleteElements(&cookies_); |
+ cookies_.clear(); |
} |
// Test that priority load of cookies for a specfic domain key could be |
@@ -409,7 +409,7 @@ TEST_F(SQLitePersistentCookieStoreTest, TestLoadCookiesForKey) { |
it != cookies_.end(); ++it) { |
cookies_loaded.insert((*it)->Domain().c_str()); |
} |
- base::STLDeleteElements(&cookies_); |
+ cookies_.clear(); |
ASSERT_GT(4U, cookies_loaded.size()); |
ASSERT_EQ(true, cookies_loaded.find("www.aaa.com") != cookies_loaded.end()); |
ASSERT_EQ(true, |
@@ -424,7 +424,7 @@ TEST_F(SQLitePersistentCookieStoreTest, TestLoadCookiesForKey) { |
ASSERT_EQ(4U, cookies_loaded.size()); |
ASSERT_EQ(cookies_loaded.find("foo.bar") != cookies_loaded.end(), true); |
ASSERT_EQ(cookies_loaded.find("www.bbb.com") != cookies_loaded.end(), true); |
- base::STLDeleteElements(&cookies_); |
+ cookies_.clear(); |
} |
// Test that we can force the database to be written by calling Flush(). |
@@ -477,7 +477,7 @@ TEST_F(SQLitePersistentCookieStoreTest, TestLoadOldSessionCookies) { |
ASSERT_STREQ("D", cookies[0]->Value().c_str()); |
ASSERT_EQ(COOKIE_PRIORITY_DEFAULT, cookies[0]->Priority()); |
- base::STLDeleteElements(&cookies); |
+ cookies.clear(); |
} |
// Test loading old session cookies from the disk. |
@@ -536,13 +536,10 @@ TEST_F(SQLitePersistentCookieStoreTest, PersistIsPersistent) { |
ASSERT_EQ(2U, cookies.size()); |
std::map<std::string, CanonicalCookie*> cookie_map; |
- for (CanonicalCookieVector::const_iterator it = cookies.begin(); |
- it != cookies.end(); ++it) { |
- cookie_map[(*it)->Name()] = *it; |
- } |
+ for (const auto& cookie : cookies) |
+ cookie_map[cookie->Name()] = cookie.get(); |
- std::map<std::string, CanonicalCookie*>::const_iterator it = |
- cookie_map.find(kSessionName); |
+ auto it = cookie_map.find(kSessionName); |
ASSERT_TRUE(it != cookie_map.end()); |
EXPECT_FALSE(cookie_map[kSessionName]->IsPersistent()); |
@@ -550,7 +547,7 @@ TEST_F(SQLitePersistentCookieStoreTest, PersistIsPersistent) { |
ASSERT_TRUE(it != cookie_map.end()); |
EXPECT_TRUE(cookie_map[kPersistentName]->IsPersistent()); |
- base::STLDeleteElements(&cookies); |
+ cookies.clear(); |
} |
TEST_F(SQLitePersistentCookieStoreTest, PriorityIsPersistent) { |
@@ -595,14 +592,11 @@ TEST_F(SQLitePersistentCookieStoreTest, PriorityIsPersistent) { |
// Put the cookies into a map, by name, so we can easily find them. |
std::map<std::string, CanonicalCookie*> cookie_map; |
- for (CanonicalCookieVector::const_iterator it = cookies.begin(); |
- it != cookies.end(); ++it) { |
- cookie_map[(*it)->Name()] = *it; |
- } |
+ for (const auto& cookie : cookies) |
+ cookie_map[cookie->Name()] = cookie.get(); |
// Validate that each cookie has the correct priority. |
- std::map<std::string, CanonicalCookie*>::const_iterator it = |
- cookie_map.find(kLowName); |
+ auto it = cookie_map.find(kLowName); |
ASSERT_TRUE(it != cookie_map.end()); |
EXPECT_EQ(COOKIE_PRIORITY_LOW, cookie_map[kLowName]->Priority()); |
@@ -614,7 +608,7 @@ TEST_F(SQLitePersistentCookieStoreTest, PriorityIsPersistent) { |
ASSERT_TRUE(it != cookie_map.end()); |
EXPECT_EQ(COOKIE_PRIORITY_HIGH, cookie_map[kHighName]->Priority()); |
- base::STLDeleteElements(&cookies); |
+ cookies.clear(); |
} |
TEST_F(SQLitePersistentCookieStoreTest, SameSiteIsPersistent) { |
@@ -641,7 +635,7 @@ TEST_F(SQLitePersistentCookieStoreTest, SameSiteIsPersistent) { |
base::Time::Now() + base::TimeDelta::FromDays(1), false, false, |
CookieSameSite::LAX_MODE, false, COOKIE_PRIORITY_DEFAULT)); |
- // Add a strict-samesite peristent cookie. |
+ // Add a strict-samesite persistent cookie. |
store_->AddCookie(*CanonicalCookie::Create( |
GURL(kURL), kStrictName, kCookieValue, std::string(), kCookiePath, |
base::Time::Now() - base::TimeDelta::FromMinutes(3), |
@@ -659,8 +653,8 @@ TEST_F(SQLitePersistentCookieStoreTest, SameSiteIsPersistent) { |
// Put the cookies into a map, by name, for comparison below. |
std::map<std::string, CanonicalCookie*> cookie_map; |
- for (auto* cookie : cookies) |
- cookie_map[cookie->Name()] = cookie; |
+ for (const auto& cookie : cookies) |
+ cookie_map[cookie->Name()] = cookie.get(); |
// Validate that each cookie has the correct SameSite. |
ASSERT_EQ(1u, cookie_map.count(kNoneName)); |
@@ -672,7 +666,7 @@ TEST_F(SQLitePersistentCookieStoreTest, SameSiteIsPersistent) { |
ASSERT_EQ(1u, cookie_map.count(kStrictName)); |
EXPECT_EQ(CookieSameSite::STRICT_MODE, cookie_map[kStrictName]->SameSite()); |
- base::STLDeleteElements(&cookies); |
+ cookies.clear(); |
} |
TEST_F(SQLitePersistentCookieStoreTest, UpdateToEncryption) { |
@@ -691,36 +685,36 @@ TEST_F(SQLitePersistentCookieStoreTest, UpdateToEncryption) { |
EXPECT_NE(contents.find("value123XYZ"), std::string::npos); |
// Create encrypted cookie store and ensure old cookie still reads. |
- base::STLDeleteElements(&cookies_); |
- EXPECT_EQ(0U, cookies_.size()); |
+ cookies.clear(); |
+ EXPECT_EQ(0U, cookies.size()); |
CreateAndLoad(true, false, &cookies); |
- EXPECT_EQ(1U, cookies_.size()); |
- EXPECT_EQ("name", cookies_[0]->Name()); |
- EXPECT_EQ("value123XYZ", cookies_[0]->Value()); |
+ EXPECT_EQ(1U, cookies.size()); |
+ EXPECT_EQ("name", cookies[0]->Name()); |
+ EXPECT_EQ("value123XYZ", cookies[0]->Value()); |
// Make sure we can update existing cookie and add new cookie as encrypted. |
- store_->DeleteCookie(*(cookies_[0])); |
+ store_->DeleteCookie(*(cookies[0])); |
AddCookie(GURL("http://foo.bar"), "name", "encrypted_value123XYZ", |
std::string(), "/", base::Time::Now()); |
AddCookie(GURL("http://foo.bar"), "other", "something456ABC", std::string(), |
"/", base::Time::Now() + base::TimeDelta::FromInternalValue(10)); |
DestroyStore(); |
- base::STLDeleteElements(&cookies_); |
+ cookies.clear(); |
CreateAndLoad(true, false, &cookies); |
- EXPECT_EQ(2U, cookies_.size()); |
+ EXPECT_EQ(2U, cookies.size()); |
CanonicalCookie* cookie_name = nullptr; |
CanonicalCookie* cookie_other = nullptr; |
- if (cookies_[0]->Name() == "name") { |
- cookie_name = cookies_[0]; |
- cookie_other = cookies_[1]; |
+ if (cookies[0]->Name() == "name") { |
+ cookie_name = cookies[0].get(); |
+ cookie_other = cookies[1].get(); |
} else { |
- cookie_name = cookies_[1]; |
- cookie_other = cookies_[0]; |
+ cookie_name = cookies[1].get(); |
+ cookie_other = cookies[0].get(); |
} |
EXPECT_EQ("encrypted_value123XYZ", cookie_name->Value()); |
EXPECT_EQ("something456ABC", cookie_other->Value()); |
DestroyStore(); |
- base::STLDeleteElements(&cookies_); |
+ cookies.clear(); |
// Examine the real record to make sure plaintext version doesn't exist. |
sql::Connection db; |
@@ -762,37 +756,37 @@ TEST_F(SQLitePersistentCookieStoreTest, UpdateFromEncryption) { |
EXPECT_EQ(contents.find("value123XYZ"), std::string::npos); |
// Create encrypted cookie store and ensure old cookie still reads. |
- base::STLDeleteElements(&cookies_); |
- EXPECT_EQ(0U, cookies_.size()); |
+ cookies.clear(); |
+ EXPECT_EQ(0U, cookies.size()); |
CreateAndLoad(true, false, &cookies); |
- EXPECT_EQ(1U, cookies_.size()); |
- EXPECT_EQ("name", cookies_[0]->Name()); |
- EXPECT_EQ("value123XYZ", cookies_[0]->Value()); |
+ EXPECT_EQ(1U, cookies.size()); |
+ EXPECT_EQ("name", cookies[0]->Name()); |
+ EXPECT_EQ("value123XYZ", cookies[0]->Value()); |
// Make sure we can update existing cookie and it writes unencrypted. |
cookie_crypto_delegate_->should_encrypt_ = false; |
- store_->DeleteCookie(*(cookies_[0])); |
+ store_->DeleteCookie(*(cookies[0])); |
AddCookie(GURL("http://foo.bar"), "name", "plaintext_value123XYZ", |
std::string(), "/", base::Time::Now()); |
AddCookie(GURL("http://foo.bar"), "other", "something456ABC", std::string(), |
"/", base::Time::Now() + base::TimeDelta::FromInternalValue(10)); |
DestroyStore(); |
- base::STLDeleteElements(&cookies_); |
+ cookies.clear(); |
CreateAndLoad(true, false, &cookies); |
- EXPECT_EQ(2U, cookies_.size()); |
+ EXPECT_EQ(2U, cookies.size()); |
CanonicalCookie* cookie_name = nullptr; |
CanonicalCookie* cookie_other = nullptr; |
- if (cookies_[0]->Name() == "name") { |
- cookie_name = cookies_[0]; |
- cookie_other = cookies_[1]; |
+ if (cookies[0]->Name() == "name") { |
+ cookie_name = cookies[0].get(); |
+ cookie_other = cookies[1].get(); |
} else { |
- cookie_name = cookies_[1]; |
- cookie_other = cookies_[0]; |
+ cookie_name = cookies[1].get(); |
+ cookie_other = cookies[0].get(); |
} |
EXPECT_EQ("plaintext_value123XYZ", cookie_name->Value()); |
EXPECT_EQ("something456ABC", cookie_other->Value()); |
DestroyStore(); |
- base::STLDeleteElements(&cookies_); |
+ cookies.clear(); |
// Verify that "value" is now visible in the file. |
contents = ReadRawDBContents(); |
@@ -801,8 +795,9 @@ TEST_F(SQLitePersistentCookieStoreTest, UpdateFromEncryption) { |
} |
namespace { |
-void WasCalledWithNoCookies(bool* was_called_with_no_cookies, |
- const std::vector<CanonicalCookie*>& cookies) { |
+void WasCalledWithNoCookies( |
+ bool* was_called_with_no_cookies, |
+ std::vector<std::unique_ptr<CanonicalCookie>> cookies) { |
*was_called_with_no_cookies = cookies.empty(); |
} |
} |