Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // This file contains test infrastructure for multiple files | 5 // This file contains test infrastructure for multiple files |
| 6 // (current cookie_monster_unittest.cc and cookie_monster_perftest.cc) | 6 // (current cookie_monster_unittest.cc and cookie_monster_perftest.cc) |
| 7 // that need to test out CookieMonster interactions with the backing store. | 7 // that need to test out CookieMonster interactions with the backing store. |
| 8 // It should only be included by test code. | 8 // It should only be included by test code. |
| 9 | 9 |
| 10 #ifndef NET_COOKIES_COOKIE_MONSTER_STORE_TEST_H_ | 10 #ifndef NET_COOKIES_COOKIE_MONSTER_STORE_TEST_H_ |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 25 class GURL; | 25 class GURL; |
| 26 | 26 |
| 27 namespace base { | 27 namespace base { |
| 28 class Time; | 28 class Time; |
| 29 } | 29 } |
| 30 | 30 |
| 31 namespace net { | 31 namespace net { |
| 32 | 32 |
| 33 // Wrapper class for posting a loaded callback. Since the Callback class is not | 33 // Wrapper class for posting a loaded callback. Since the Callback class is not |
| 34 // reference counted, we cannot post a callback to the message loop directly, | 34 // reference counted, we cannot post a callback to the message loop directly, |
| 35 // instead we post a LoadedCallbackTask. | 35 // instead we post a LoadedCallbackTask. |
|
davidben
2016/10/10 23:05:00
Existing problem, but this comment seems a little
Avi (use Gerrit)
2016/10/11 00:57:48
Let's give that a try.
| |
| 36 class LoadedCallbackTask | 36 class LoadedCallbackTask |
| 37 : public base::RefCountedThreadSafe<LoadedCallbackTask> { | 37 : public base::RefCountedThreadSafe<LoadedCallbackTask> { |
| 38 public: | 38 public: |
| 39 typedef CookieMonster::PersistentCookieStore::LoadedCallback LoadedCallback; | 39 typedef CookieMonster::PersistentCookieStore::LoadedCallback LoadedCallback; |
| 40 | 40 |
| 41 LoadedCallbackTask(LoadedCallback loaded_callback, | 41 LoadedCallbackTask(LoadedCallback loaded_callback, |
| 42 std::vector<CanonicalCookie*> cookies); | 42 std::vector<std::unique_ptr<CanonicalCookie>> cookies); |
| 43 | 43 |
| 44 void Run() { loaded_callback_.Run(cookies_); } | 44 void Run() { loaded_callback_.Run(std::move(cookies_)); } |
| 45 | 45 |
| 46 private: | 46 private: |
| 47 friend class base::RefCountedThreadSafe<LoadedCallbackTask>; | 47 friend class base::RefCountedThreadSafe<LoadedCallbackTask>; |
| 48 ~LoadedCallbackTask(); | 48 ~LoadedCallbackTask(); |
| 49 | 49 |
| 50 LoadedCallback loaded_callback_; | 50 LoadedCallback loaded_callback_; |
| 51 std::vector<CanonicalCookie*> cookies_; | 51 std::vector<std::unique_ptr<CanonicalCookie>> cookies_; |
| 52 | 52 |
| 53 DISALLOW_COPY_AND_ASSIGN(LoadedCallbackTask); | 53 DISALLOW_COPY_AND_ASSIGN(LoadedCallbackTask); |
| 54 }; // Wrapper class LoadedCallbackTask | 54 }; // Wrapper class LoadedCallbackTask |
| 55 | 55 |
| 56 // Describes a call to one of the 5 functions of PersistentCookieStore. | 56 // Describes a call to one of the 5 functions of PersistentCookieStore. |
| 57 struct CookieStoreCommand { | 57 struct CookieStoreCommand { |
| 58 enum Type { | 58 enum Type { |
| 59 LOAD, | 59 LOAD, |
| 60 LOAD_COOKIES_FOR_KEY, | 60 LOAD_COOKIES_FOR_KEY, |
| 61 // UPDATE_ACCESS_TIME is not included in this list, because get cookie | 61 // UPDATE_ACCESS_TIME is not included in this list, because get cookie |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 100 | 100 |
| 101 MockPersistentCookieStore(); | 101 MockPersistentCookieStore(); |
| 102 | 102 |
| 103 // When set, Load() and LoadCookiesForKey() calls are store in the command | 103 // When set, Load() and LoadCookiesForKey() calls are store in the command |
| 104 // list, rather than being automatically executed. Defaults to false. | 104 // list, rather than being automatically executed. Defaults to false. |
| 105 void set_store_load_commands(bool store_load_commands) { | 105 void set_store_load_commands(bool store_load_commands) { |
| 106 store_load_commands_ = store_load_commands; | 106 store_load_commands_ = store_load_commands; |
| 107 } | 107 } |
| 108 | 108 |
| 109 void SetLoadExpectation(bool return_value, | 109 void SetLoadExpectation(bool return_value, |
| 110 const std::vector<CanonicalCookie*>& result); | 110 std::vector<std::unique_ptr<CanonicalCookie>> result); |
| 111 | 111 |
| 112 const CommandList& commands() const { return commands_; } | 112 const CommandList& commands() const { return commands_; } |
| 113 | 113 |
| 114 void Load(const LoadedCallback& loaded_callback) override; | 114 void Load(const LoadedCallback& loaded_callback) override; |
| 115 | 115 |
| 116 void LoadCookiesForKey(const std::string& key, | 116 void LoadCookiesForKey(const std::string& key, |
| 117 const LoadedCallback& loaded_callback) override; | 117 const LoadedCallback& loaded_callback) override; |
| 118 | 118 |
| 119 void AddCookie(const CanonicalCookie& cookie) override; | 119 void AddCookie(const CanonicalCookie& cookie) override; |
| 120 | 120 |
| 121 void UpdateCookieAccessTime(const CanonicalCookie& cookie) override; | 121 void UpdateCookieAccessTime(const CanonicalCookie& cookie) override; |
| 122 | 122 |
| 123 void DeleteCookie(const CanonicalCookie& cookie) override; | 123 void DeleteCookie(const CanonicalCookie& cookie) override; |
| 124 | 124 |
| 125 void Flush(const base::Closure& callback) override; | 125 void Flush(const base::Closure& callback) override; |
| 126 | 126 |
| 127 void SetForceKeepSessionState() override; | 127 void SetForceKeepSessionState() override; |
| 128 | 128 |
| 129 protected: | 129 protected: |
| 130 ~MockPersistentCookieStore() override; | 130 ~MockPersistentCookieStore() override; |
| 131 | 131 |
| 132 private: | 132 private: |
| 133 CommandList commands_; | 133 CommandList commands_; |
| 134 | 134 |
| 135 bool store_load_commands_; | 135 bool store_load_commands_; |
| 136 | 136 |
| 137 // Deferred result to use when Load() is called. | 137 // Deferred result to use when Load() is called. |
| 138 bool load_return_value_; | 138 bool load_return_value_; |
| 139 std::vector<CanonicalCookie*> load_result_; | 139 std::vector<std::unique_ptr<CanonicalCookie>> load_result_; |
| 140 // Indicates if the store has been fully loaded to avoid returning duplicate | 140 // Indicates if the store has been fully loaded to avoid returning duplicate |
| 141 // cookies. | 141 // cookies. |
| 142 bool loaded_; | 142 bool loaded_; |
| 143 | 143 |
| 144 DISALLOW_COPY_AND_ASSIGN(MockPersistentCookieStore); | 144 DISALLOW_COPY_AND_ASSIGN(MockPersistentCookieStore); |
| 145 }; | 145 }; |
| 146 | 146 |
| 147 // Mock for CookieMonsterDelegate | 147 // Mock for CookieMonsterDelegate |
| 148 class MockCookieMonsterDelegate : public CookieMonsterDelegate { | 148 class MockCookieMonsterDelegate : public CookieMonsterDelegate { |
| 149 public: | 149 public: |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 170 // Helper to build a single CanonicalCookie. | 170 // Helper to build a single CanonicalCookie. |
| 171 std::unique_ptr<CanonicalCookie> BuildCanonicalCookie( | 171 std::unique_ptr<CanonicalCookie> BuildCanonicalCookie( |
| 172 const GURL& url, | 172 const GURL& url, |
| 173 const std::string& cookie_line, | 173 const std::string& cookie_line, |
| 174 const base::Time& creation_time); | 174 const base::Time& creation_time); |
| 175 | 175 |
| 176 // Helper to build a list of CanonicalCookie*s. | 176 // Helper to build a list of CanonicalCookie*s. |
| 177 void AddCookieToList(const GURL& url, | 177 void AddCookieToList(const GURL& url, |
| 178 const std::string& cookie_line, | 178 const std::string& cookie_line, |
| 179 const base::Time& creation_time, | 179 const base::Time& creation_time, |
| 180 std::vector<CanonicalCookie*>* out_list); | 180 std::vector<std::unique_ptr<CanonicalCookie>>* out_list); |
| 181 | 181 |
| 182 // Just act like a backing database. Keep cookie information from | 182 // Just act like a backing database. Keep cookie information from |
| 183 // Add/Update/Delete and regurgitate it when Load is called. | 183 // Add/Update/Delete and regurgitate it when Load is called. |
| 184 class MockSimplePersistentCookieStore | 184 class MockSimplePersistentCookieStore |
| 185 : public CookieMonster::PersistentCookieStore { | 185 : public CookieMonster::PersistentCookieStore { |
| 186 public: | 186 public: |
| 187 MockSimplePersistentCookieStore(); | 187 MockSimplePersistentCookieStore(); |
| 188 | 188 |
| 189 void Load(const LoadedCallback& loaded_callback) override; | 189 void Load(const LoadedCallback& loaded_callback) override; |
| 190 | 190 |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 226 std::unique_ptr<CookieMonster> CreateMonsterFromStoreForGC( | 226 std::unique_ptr<CookieMonster> CreateMonsterFromStoreForGC( |
| 227 int num_secure_cookies, | 227 int num_secure_cookies, |
| 228 int num_old_secure_cookies, | 228 int num_old_secure_cookies, |
| 229 int num_non_secure_cookies, | 229 int num_non_secure_cookies, |
| 230 int num_old_non_secure_cookies, | 230 int num_old_non_secure_cookies, |
| 231 int days_old); | 231 int days_old); |
| 232 | 232 |
| 233 } // namespace net | 233 } // namespace net |
| 234 | 234 |
| 235 #endif // NET_COOKIES_COOKIE_MONSTER_STORE_TEST_H_ | 235 #endif // NET_COOKIES_COOKIE_MONSTER_STORE_TEST_H_ |
| OLD | NEW |