Chromium Code Reviews| Index: net/base/cookie_monster_store_test.h |
| diff --git a/net/base/cookie_monster_store_test.h b/net/base/cookie_monster_store_test.h |
| index 84ead744c7ca49cf52ede2918c1e4d675c116d62..fadc91374d21cfad420651179f0b7fa27b47578e 100644 |
| --- a/net/base/cookie_monster_store_test.h |
| +++ b/net/base/cookie_monster_store_test.h |
| @@ -7,12 +7,13 @@ |
| // that need to test out CookieMonster interactions with the backing store. |
| // It should only be included by test code. |
| -#include "base/message_loop.h" |
| -#include "base/time.h" |
| #include "net/base/cookie_monster.h" |
| -#include "testing/gtest/include/gtest/gtest.h" |
| -namespace { |
| +namespace base { |
| +class Time; |
| +} |
| + |
| +namespace net { |
| // Describes a call to one of the 3 functions of PersistentCookieStore. |
| struct CookieStoreCommand { |
| @@ -39,52 +40,32 @@ class MockPersistentCookieStore |
| public: |
| typedef std::vector<CookieStoreCommand> CommandList; |
| - MockPersistentCookieStore() : load_return_value_(true) { |
| + MockPersistentCookieStore(); |
| + virtual ~MockPersistentCookieStore(); |
| + |
| + void SetLoadExpectation( |
| + bool return_value, |
| + const std::vector<net::CookieMonster::CanonicalCookie*>& result); |
| + |
| + const CommandList& commands() const { |
| + return commands_; |
| } |
| virtual bool Load( |
| - std::vector<net::CookieMonster::CanonicalCookie*>* out_cookies) { |
| - bool ok = load_return_value_; |
| - if (ok) |
| - *out_cookies = load_result_; |
| - return ok; |
| - } |
| + std::vector<net::CookieMonster::CanonicalCookie*>* out_cookies); |
| - virtual void AddCookie(const net::CookieMonster::CanonicalCookie& cookie) { |
| - commands_.push_back( |
| - CookieStoreCommand(CookieStoreCommand::ADD, cookie)); |
| - } |
| + virtual void AddCookie(const net::CookieMonster::CanonicalCookie& cookie); |
| virtual void UpdateCookieAccessTime( |
| - const net::CookieMonster::CanonicalCookie& cookie) { |
| - commands_.push_back(CookieStoreCommand( |
| - CookieStoreCommand::UPDATE_ACCESS_TIME, cookie)); |
| - } |
| + const net::CookieMonster::CanonicalCookie& cookie); |
| virtual void DeleteCookie( |
| - const net::CookieMonster::CanonicalCookie& cookie) { |
| - commands_.push_back( |
| - CookieStoreCommand(CookieStoreCommand::REMOVE, cookie)); |
| - } |
| + const net::CookieMonster::CanonicalCookie& cookie); |
| - virtual void Flush(Task* completion_task) { |
| - if (completion_task) |
| - MessageLoop::current()->PostTask(FROM_HERE, completion_task); |
| - } |
| + virtual void Flush(Task* completion_task); |
| // No files are created so nothing to clear either |
| - virtual void SetClearLocalStateOnExit(bool clear_local_state) {} |
| - |
| - void SetLoadExpectation( |
| - bool return_value, |
| - const std::vector<net::CookieMonster::CanonicalCookie*>& result) { |
| - load_return_value_ = return_value; |
| - load_result_ = result; |
| - } |
| - |
| - const CommandList& commands() const { |
| - return commands_; |
| - } |
| + virtual void SetClearLocalStateOnExit(bool clear_local_state); |
| private: |
| CommandList commands_; |
| @@ -102,21 +83,18 @@ class MockCookieMonsterDelegate : public net::CookieMonster::Delegate { |
| typedef std::pair<net::CookieMonster::CanonicalCookie, bool> |
| CookieNotification; |
| - MockCookieMonsterDelegate() {} |
| - |
| - virtual void OnCookieChanged( |
| - const net::CookieMonster::CanonicalCookie& cookie, |
| - bool removed) { |
| - CookieNotification notification(cookie, removed); |
| - changes_.push_back(notification); |
| - } |
| + MockCookieMonsterDelegate(); |
| const std::vector<CookieNotification>& changes() const { return changes_; } |
| void reset() { changes_.clear(); } |
| + virtual void OnCookieChanged( |
| + const net::CookieMonster::CanonicalCookie& cookie, |
| + bool removed); |
| + |
| private: |
| - virtual ~MockCookieMonsterDelegate() {} |
| + virtual ~MockCookieMonsterDelegate(); |
| std::vector<CookieNotification> changes_; |
| @@ -124,84 +102,40 @@ class MockCookieMonsterDelegate : public net::CookieMonster::Delegate { |
| }; |
| // Helper to build a list of CanonicalCookie*s. |
| -static void AddCookieToList( |
| +void AddCookieToList( |
| const std::string& key, |
| const std::string& cookie_line, |
| const base::Time& creation_time, |
| - std::vector<net::CookieMonster::CanonicalCookie*>* out_list) { |
| - |
| - // Parse the cookie line. |
| - net::CookieMonster::ParsedCookie pc(cookie_line); |
| - EXPECT_TRUE(pc.IsValid()); |
| - |
| - // This helper is simplistic in interpreting a parsed cookie, in order to |
| - // avoid duplicated CookieMonster's CanonPath() and CanonExpiration() |
| - // functions. Would be nice to export them, and re-use here. |
| - EXPECT_FALSE(pc.HasMaxAge()); |
| - EXPECT_TRUE(pc.HasPath()); |
| - base::Time cookie_expires = pc.HasExpires() ? |
| - net::CookieMonster::ParseCookieTime(pc.Expires()) : base::Time(); |
| - std::string cookie_path = pc.Path(); |
| - |
| - scoped_ptr<net::CookieMonster::CanonicalCookie> cookie( |
| - new net::CookieMonster::CanonicalCookie( |
| - pc.Name(), pc.Value(), key, cookie_path, |
| - pc.IsSecure(), pc.IsHttpOnly(), |
| - creation_time, creation_time, |
| - !cookie_expires.is_null(), |
| - cookie_expires)); |
| - |
| - out_list->push_back(cookie.release()); |
| -} |
| + std::vector<net::CookieMonster::CanonicalCookie*>* out_list); |
| // Just act like a backing database. Keep cookie information from |
| // Add/Update/Delete and regurgitate it when Load is called. |
| class MockSimplePersistentCookieStore |
| : public net::CookieMonster::PersistentCookieStore { |
| - private: |
| - typedef std::map<int64, net::CookieMonster::CanonicalCookie> |
| - CanonicalCookieMap; |
| - |
| public: |
| + MockSimplePersistentCookieStore(); |
| + virtual ~MockSimplePersistentCookieStore(); |
| + |
| virtual bool Load( |
| - std::vector<net::CookieMonster::CanonicalCookie*>* out_cookies) { |
| - for (CanonicalCookieMap::const_iterator it = cookies_.begin(); |
| - it != cookies_.end(); it++) |
| - out_cookies->push_back( |
| - new net::CookieMonster::CanonicalCookie(it->second)); |
| - return true; |
| - } |
| + std::vector<net::CookieMonster::CanonicalCookie*>* out_cookies); |
| virtual void AddCookie( |
| - const net::CookieMonster::CanonicalCookie& cookie) { |
| - int64 creation_time = cookie.CreationDate().ToInternalValue(); |
| - EXPECT_TRUE(cookies_.find(creation_time) == cookies_.end()); |
| - cookies_[creation_time] = cookie; |
| - } |
| + const net::CookieMonster::CanonicalCookie& cookie); |
| virtual void UpdateCookieAccessTime( |
| - const net::CookieMonster::CanonicalCookie& cookie) { |
| - int64 creation_time = cookie.CreationDate().ToInternalValue(); |
| - ASSERT_TRUE(cookies_.find(creation_time) != cookies_.end()); |
| - cookies_[creation_time].SetLastAccessDate(base::Time::Now()); |
| - } |
| + const net::CookieMonster::CanonicalCookie& cookie); |
| virtual void DeleteCookie( |
| - const net::CookieMonster::CanonicalCookie& cookie) { |
| - int64 creation_time = cookie.CreationDate().ToInternalValue(); |
| - CanonicalCookieMap::iterator it = cookies_.find(creation_time); |
| - ASSERT_TRUE(it != cookies_.end()); |
| - cookies_.erase(it); |
| - } |
| + const net::CookieMonster::CanonicalCookie& cookie); |
| - virtual void Flush(Task* completion_task) { |
| - if (completion_task) |
| - MessageLoop::current()->PostTask(FROM_HERE, completion_task); |
| - } |
| + virtual void Flush(Task* completion_task); |
| virtual void SetClearLocalStateOnExit(bool clear_local_state) {} |
|
Randy Smith (Not in Mondays)
2011/01/25 23:29:02
nit: This is inconsistent; either both SetClearLoc
|
| private: |
| + typedef std::map<int64, net::CookieMonster::CanonicalCookie> |
| + CanonicalCookieMap; |
| + |
| CanonicalCookieMap cookies_; |
| }; |
| @@ -213,32 +147,9 @@ class MockSimplePersistentCookieStore |
| // Do two SetCookies(). Return whether each of the two SetCookies() took |
| // longer than |gc_perf_micros| to complete, and how many cookie were |
| // left in the store afterwards. |
| -static net::CookieMonster* CreateMonsterFromStoreForGC( |
| +net::CookieMonster* CreateMonsterFromStoreForGC( |
| int num_cookies, |
| int num_old_cookies, |
| - int days_old) { |
| - base::Time current(base::Time::Now()); |
| - base::Time past_creation(base::Time::Now() - base::TimeDelta::FromDays(1000)); |
| - scoped_refptr<MockSimplePersistentCookieStore> store( |
| - new MockSimplePersistentCookieStore); |
| - // Must expire to be persistent |
| - for (int i = 0; i < num_old_cookies; i++) { |
| - net::CookieMonster::CanonicalCookie cc( |
| - "a", "1", StringPrintf("h%05d.izzle", i), "/path", false, false, |
| - past_creation + base::TimeDelta::FromMicroseconds(i), |
| - current - base::TimeDelta::FromDays(days_old), |
| - true, current + base::TimeDelta::FromDays(30)); |
| - store->AddCookie(cc); |
| - } |
| - for (int i = num_old_cookies; i < num_cookies; i++) { |
| - net::CookieMonster::CanonicalCookie cc( |
| - "a", "1", StringPrintf("h%05d.izzle", i), "/path", false, false, |
| - past_creation + base::TimeDelta::FromMicroseconds(i), current, |
| - true, current + base::TimeDelta::FromDays(30)); |
| - store->AddCookie(cc); |
| - } |
| - |
| - return new net::CookieMonster(store, NULL); |
| -} |
| + int days_old); |
| -} // namespace |
| +} // namespace net |