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 12 matching lines...) Expand all Loading... |
23 #include "net/cookies/cookie_monster.h" | 23 #include "net/cookies/cookie_monster.h" |
24 | 24 |
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 | |
34 // reference counted, we cannot post a callback to the message loop directly, | |
35 // instead we post a LoadedCallbackTask. | |
36 class LoadedCallbackTask | |
37 : public base::RefCountedThreadSafe<LoadedCallbackTask> { | |
38 public: | |
39 typedef CookieMonster::PersistentCookieStore::LoadedCallback LoadedCallback; | |
40 | |
41 LoadedCallbackTask(LoadedCallback loaded_callback, | |
42 std::vector<CanonicalCookie*> cookies); | |
43 | |
44 void Run() { loaded_callback_.Run(cookies_); } | |
45 | |
46 private: | |
47 friend class base::RefCountedThreadSafe<LoadedCallbackTask>; | |
48 ~LoadedCallbackTask(); | |
49 | |
50 LoadedCallback loaded_callback_; | |
51 std::vector<CanonicalCookie*> cookies_; | |
52 | |
53 DISALLOW_COPY_AND_ASSIGN(LoadedCallbackTask); | |
54 }; // Wrapper class LoadedCallbackTask | |
55 | |
56 // Describes a call to one of the 5 functions of PersistentCookieStore. | 33 // Describes a call to one of the 5 functions of PersistentCookieStore. |
57 struct CookieStoreCommand { | 34 struct CookieStoreCommand { |
58 enum Type { | 35 enum Type { |
59 LOAD, | 36 LOAD, |
60 LOAD_COOKIES_FOR_KEY, | 37 LOAD_COOKIES_FOR_KEY, |
61 // UPDATE_ACCESS_TIME is not included in this list, because get cookie | 38 // UPDATE_ACCESS_TIME is not included in this list, because get cookie |
62 // commands may or may not end updating the access time, unless they have | 39 // commands may or may not end updating the access time, unless they have |
63 // the option set not to do so. | 40 // the option set not to do so. |
64 ADD, | 41 ADD, |
65 REMOVE, | 42 REMOVE, |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 | 77 |
101 MockPersistentCookieStore(); | 78 MockPersistentCookieStore(); |
102 | 79 |
103 // When set, Load() and LoadCookiesForKey() calls are store in the command | 80 // When set, Load() and LoadCookiesForKey() calls are store in the command |
104 // list, rather than being automatically executed. Defaults to false. | 81 // list, rather than being automatically executed. Defaults to false. |
105 void set_store_load_commands(bool store_load_commands) { | 82 void set_store_load_commands(bool store_load_commands) { |
106 store_load_commands_ = store_load_commands; | 83 store_load_commands_ = store_load_commands; |
107 } | 84 } |
108 | 85 |
109 void SetLoadExpectation(bool return_value, | 86 void SetLoadExpectation(bool return_value, |
110 const std::vector<CanonicalCookie*>& result); | 87 std::vector<std::unique_ptr<CanonicalCookie>> result); |
111 | 88 |
112 const CommandList& commands() const { return commands_; } | 89 const CommandList& commands() const { return commands_; } |
113 | 90 |
114 void Load(const LoadedCallback& loaded_callback) override; | 91 void Load(const LoadedCallback& loaded_callback) override; |
115 | 92 |
116 void LoadCookiesForKey(const std::string& key, | 93 void LoadCookiesForKey(const std::string& key, |
117 const LoadedCallback& loaded_callback) override; | 94 const LoadedCallback& loaded_callback) override; |
118 | 95 |
119 void AddCookie(const CanonicalCookie& cookie) override; | 96 void AddCookie(const CanonicalCookie& cookie) override; |
120 | 97 |
121 void UpdateCookieAccessTime(const CanonicalCookie& cookie) override; | 98 void UpdateCookieAccessTime(const CanonicalCookie& cookie) override; |
122 | 99 |
123 void DeleteCookie(const CanonicalCookie& cookie) override; | 100 void DeleteCookie(const CanonicalCookie& cookie) override; |
124 | 101 |
125 void Flush(const base::Closure& callback) override; | 102 void Flush(const base::Closure& callback) override; |
126 | 103 |
127 void SetForceKeepSessionState() override; | 104 void SetForceKeepSessionState() override; |
128 | 105 |
129 protected: | 106 protected: |
130 ~MockPersistentCookieStore() override; | 107 ~MockPersistentCookieStore() override; |
131 | 108 |
132 private: | 109 private: |
133 CommandList commands_; | 110 CommandList commands_; |
134 | 111 |
135 bool store_load_commands_; | 112 bool store_load_commands_; |
136 | 113 |
137 // Deferred result to use when Load() is called. | 114 // Deferred result to use when Load() is called. |
138 bool load_return_value_; | 115 bool load_return_value_; |
139 std::vector<CanonicalCookie*> load_result_; | 116 std::vector<std::unique_ptr<CanonicalCookie>> load_result_; |
140 // Indicates if the store has been fully loaded to avoid returning duplicate | 117 // Indicates if the store has been fully loaded to avoid returning duplicate |
141 // cookies. | 118 // cookies. |
142 bool loaded_; | 119 bool loaded_; |
143 | 120 |
144 DISALLOW_COPY_AND_ASSIGN(MockPersistentCookieStore); | 121 DISALLOW_COPY_AND_ASSIGN(MockPersistentCookieStore); |
145 }; | 122 }; |
146 | 123 |
147 // Mock for CookieMonsterDelegate | 124 // Mock for CookieMonsterDelegate |
148 class MockCookieMonsterDelegate : public CookieMonsterDelegate { | 125 class MockCookieMonsterDelegate : public CookieMonsterDelegate { |
149 public: | 126 public: |
(...skipping 20 matching lines...) Expand all Loading... |
170 // Helper to build a single CanonicalCookie. | 147 // Helper to build a single CanonicalCookie. |
171 std::unique_ptr<CanonicalCookie> BuildCanonicalCookie( | 148 std::unique_ptr<CanonicalCookie> BuildCanonicalCookie( |
172 const GURL& url, | 149 const GURL& url, |
173 const std::string& cookie_line, | 150 const std::string& cookie_line, |
174 const base::Time& creation_time); | 151 const base::Time& creation_time); |
175 | 152 |
176 // Helper to build a list of CanonicalCookie*s. | 153 // Helper to build a list of CanonicalCookie*s. |
177 void AddCookieToList(const GURL& url, | 154 void AddCookieToList(const GURL& url, |
178 const std::string& cookie_line, | 155 const std::string& cookie_line, |
179 const base::Time& creation_time, | 156 const base::Time& creation_time, |
180 std::vector<CanonicalCookie*>* out_list); | 157 std::vector<std::unique_ptr<CanonicalCookie>>* out_list); |
181 | 158 |
182 // Just act like a backing database. Keep cookie information from | 159 // Just act like a backing database. Keep cookie information from |
183 // Add/Update/Delete and regurgitate it when Load is called. | 160 // Add/Update/Delete and regurgitate it when Load is called. |
184 class MockSimplePersistentCookieStore | 161 class MockSimplePersistentCookieStore |
185 : public CookieMonster::PersistentCookieStore { | 162 : public CookieMonster::PersistentCookieStore { |
186 public: | 163 public: |
187 MockSimplePersistentCookieStore(); | 164 MockSimplePersistentCookieStore(); |
188 | 165 |
189 void Load(const LoadedCallback& loaded_callback) override; | 166 void Load(const LoadedCallback& loaded_callback) override; |
190 | 167 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
226 std::unique_ptr<CookieMonster> CreateMonsterFromStoreForGC( | 203 std::unique_ptr<CookieMonster> CreateMonsterFromStoreForGC( |
227 int num_secure_cookies, | 204 int num_secure_cookies, |
228 int num_old_secure_cookies, | 205 int num_old_secure_cookies, |
229 int num_non_secure_cookies, | 206 int num_non_secure_cookies, |
230 int num_old_non_secure_cookies, | 207 int num_old_non_secure_cookies, |
231 int days_old); | 208 int days_old); |
232 | 209 |
233 } // namespace net | 210 } // namespace net |
234 | 211 |
235 #endif // NET_COOKIES_COOKIE_MONSTER_STORE_TEST_H_ | 212 #endif // NET_COOKIES_COOKIE_MONSTER_STORE_TEST_H_ |
OLD | NEW |