Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(17)

Side by Side Diff: content/browser/net/quota_policy_cookie_store_unittest.cc

Issue 2228403003: content: Use stl utilities from the base namespace (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 #include "base/bind.h" 5 #include "base/bind.h"
6 #include "base/files/file_util.h" 6 #include "base/files/file_util.h"
7 #include "base/files/scoped_temp_dir.h" 7 #include "base/files/scoped_temp_dir.h"
8 #include "base/memory/ref_counted.h" 8 #include "base/memory/ref_counted.h"
9 #include "base/run_loop.h" 9 #include "base/run_loop.h"
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 t += base::TimeDelta::FromInternalValue(10); 143 t += base::TimeDelta::FromInternalValue(10);
144 AddCookie(GURL("http://persistent.com"), "A", "B", std::string(), "/", t); 144 AddCookie(GURL("http://persistent.com"), "A", "B", std::string(), "/", t);
145 145
146 // Replace the store, which forces the current store to flush data to 146 // Replace the store, which forces the current store to flush data to
147 // disk. Then, after reloading the store, confirm that the data was flushed by 147 // disk. Then, after reloading the store, confirm that the data was flushed by
148 // making sure it loads successfully. This ensures that all pending commits 148 // making sure it loads successfully. This ensures that all pending commits
149 // are made to the store before allowing it to be closed. 149 // are made to the store before allowing it to be closed.
150 DestroyStore(); 150 DestroyStore();
151 151
152 // Reload and test for persistence. 152 // Reload and test for persistence.
153 STLDeleteElements(&cookies); 153 base::STLDeleteElements(&cookies);
154 CreateAndLoad(nullptr, &cookies); 154 CreateAndLoad(nullptr, &cookies);
155 EXPECT_EQ(2U, cookies.size()); 155 EXPECT_EQ(2U, cookies.size());
156 bool found_foo_cookie = false; 156 bool found_foo_cookie = false;
157 bool found_persistent_cookie = false; 157 bool found_persistent_cookie = false;
158 for (auto* cookie : cookies) { 158 for (auto* cookie : cookies) {
159 if (cookie->Domain() == "foo.com") 159 if (cookie->Domain() == "foo.com")
160 found_foo_cookie = true; 160 found_foo_cookie = true;
161 else if (cookie->Domain() == "persistent.com") 161 else if (cookie->Domain() == "persistent.com")
162 found_persistent_cookie = true; 162 found_persistent_cookie = true;
163 } 163 }
164 EXPECT_TRUE(found_foo_cookie); 164 EXPECT_TRUE(found_foo_cookie);
165 EXPECT_TRUE(found_persistent_cookie); 165 EXPECT_TRUE(found_persistent_cookie);
166 166
167 // Now delete the cookies and check persistence again. 167 // Now delete the cookies and check persistence again.
168 store_->DeleteCookie(*cookies[0]); 168 store_->DeleteCookie(*cookies[0]);
169 store_->DeleteCookie(*cookies[1]); 169 store_->DeleteCookie(*cookies[1]);
170 DestroyStore(); 170 DestroyStore();
171 171
172 // Reload and check if the cookies have been removed. 172 // Reload and check if the cookies have been removed.
173 STLDeleteElements(&cookies); 173 base::STLDeleteElements(&cookies);
174 CreateAndLoad(nullptr, &cookies); 174 CreateAndLoad(nullptr, &cookies);
175 EXPECT_EQ(0U, cookies.size()); 175 EXPECT_EQ(0U, cookies.size());
176 STLDeleteElements(&cookies); 176 base::STLDeleteElements(&cookies);
177 } 177 }
178 178
179 // Test if data is stored as expected in the QuotaPolicy database. 179 // Test if data is stored as expected in the QuotaPolicy database.
180 TEST_F(QuotaPolicyCookieStoreTest, TestPolicy) { 180 TEST_F(QuotaPolicyCookieStoreTest, TestPolicy) {
181 CanonicalCookieVector cookies; 181 CanonicalCookieVector cookies;
182 CreateAndLoad(nullptr, &cookies); 182 CreateAndLoad(nullptr, &cookies);
183 ASSERT_EQ(0U, cookies.size()); 183 ASSERT_EQ(0U, cookies.size());
184 184
185 base::Time t = base::Time::Now(); 185 base::Time t = base::Time::Now();
186 AddCookie(GURL("http://foo.com"), "A", "B", std::string(), "/", t); 186 AddCookie(GURL("http://foo.com"), "A", "B", std::string(), "/", t);
187 t += base::TimeDelta::FromInternalValue(10); 187 t += base::TimeDelta::FromInternalValue(10);
188 AddCookie(GURL("http://persistent.com"), "A", "B", std::string(), "/", t); 188 AddCookie(GURL("http://persistent.com"), "A", "B", std::string(), "/", t);
189 t += base::TimeDelta::FromInternalValue(10); 189 t += base::TimeDelta::FromInternalValue(10);
190 AddCookie(GURL("http://nonpersistent.com"), "A", "B", std::string(), "/", t); 190 AddCookie(GURL("http://nonpersistent.com"), "A", "B", std::string(), "/", t);
191 191
192 // Replace the store, which forces the current store to flush data to 192 // Replace the store, which forces the current store to flush data to
193 // disk. Then, after reloading the store, confirm that the data was flushed by 193 // disk. Then, after reloading the store, confirm that the data was flushed by
194 // making sure it loads successfully. This ensures that all pending commits 194 // making sure it loads successfully. This ensures that all pending commits
195 // are made to the store before allowing it to be closed. 195 // are made to the store before allowing it to be closed.
196 DestroyStore(); 196 DestroyStore();
197 // Specify storage policy that makes "nonpersistent.com" session only. 197 // Specify storage policy that makes "nonpersistent.com" session only.
198 scoped_refptr<content::MockSpecialStoragePolicy> storage_policy = 198 scoped_refptr<content::MockSpecialStoragePolicy> storage_policy =
199 new content::MockSpecialStoragePolicy(); 199 new content::MockSpecialStoragePolicy();
200 storage_policy->AddSessionOnly( 200 storage_policy->AddSessionOnly(
201 net::cookie_util::CookieOriginToURL("nonpersistent.com", false)); 201 net::cookie_util::CookieOriginToURL("nonpersistent.com", false));
202 202
203 // Reload and test for persistence. 203 // Reload and test for persistence.
204 STLDeleteElements(&cookies); 204 base::STLDeleteElements(&cookies);
205 CreateAndLoad(storage_policy.get(), &cookies); 205 CreateAndLoad(storage_policy.get(), &cookies);
206 EXPECT_EQ(3U, cookies.size()); 206 EXPECT_EQ(3U, cookies.size());
207 207
208 t += base::TimeDelta::FromInternalValue(10); 208 t += base::TimeDelta::FromInternalValue(10);
209 AddCookie(GURL("http://nonpersistent.com"), "A", "B", std::string(), 209 AddCookie(GURL("http://nonpersistent.com"), "A", "B", std::string(),
210 "/second", t); 210 "/second", t);
211 211
212 // Now close the store, and "nonpersistent.com" should be deleted according to 212 // Now close the store, and "nonpersistent.com" should be deleted according to
213 // policy. 213 // policy.
214 DestroyStore(); 214 DestroyStore();
215 STLDeleteElements(&cookies); 215 base::STLDeleteElements(&cookies);
216 CreateAndLoad(nullptr, &cookies); 216 CreateAndLoad(nullptr, &cookies);
217 217
218 EXPECT_EQ(2U, cookies.size()); 218 EXPECT_EQ(2U, cookies.size());
219 for (auto* cookie : cookies) { 219 for (auto* cookie : cookies) {
220 EXPECT_NE("nonpersistent.com", cookie->Domain()); 220 EXPECT_NE("nonpersistent.com", cookie->Domain());
221 } 221 }
222 STLDeleteElements(&cookies); 222 base::STLDeleteElements(&cookies);
223 } 223 }
224 224
225 TEST_F(QuotaPolicyCookieStoreTest, ForceKeepSessionState) { 225 TEST_F(QuotaPolicyCookieStoreTest, ForceKeepSessionState) {
226 CanonicalCookieVector cookies; 226 CanonicalCookieVector cookies;
227 CreateAndLoad(nullptr, &cookies); 227 CreateAndLoad(nullptr, &cookies);
228 ASSERT_EQ(0U, cookies.size()); 228 ASSERT_EQ(0U, cookies.size());
229 229
230 base::Time t = base::Time::Now(); 230 base::Time t = base::Time::Now();
231 AddCookie(GURL("http://foo.com"), "A", "B", std::string(), "/", t); 231 AddCookie(GURL("http://foo.com"), "A", "B", std::string(), "/", t);
232 232
233 // Recreate |store_| with a storage policy that makes "nonpersistent.com" 233 // Recreate |store_| with a storage policy that makes "nonpersistent.com"
234 // session only, but then instruct the store to forcibly keep all cookies. 234 // session only, but then instruct the store to forcibly keep all cookies.
235 DestroyStore(); 235 DestroyStore();
236 scoped_refptr<content::MockSpecialStoragePolicy> storage_policy = 236 scoped_refptr<content::MockSpecialStoragePolicy> storage_policy =
237 new content::MockSpecialStoragePolicy(); 237 new content::MockSpecialStoragePolicy();
238 storage_policy->AddSessionOnly( 238 storage_policy->AddSessionOnly(
239 net::cookie_util::CookieOriginToURL("nonpersistent.com", false)); 239 net::cookie_util::CookieOriginToURL("nonpersistent.com", false));
240 240
241 // Reload and test for persistence 241 // Reload and test for persistence
242 STLDeleteElements(&cookies); 242 base::STLDeleteElements(&cookies);
243 CreateAndLoad(storage_policy.get(), &cookies); 243 CreateAndLoad(storage_policy.get(), &cookies);
244 EXPECT_EQ(1U, cookies.size()); 244 EXPECT_EQ(1U, cookies.size());
245 245
246 t += base::TimeDelta::FromInternalValue(10); 246 t += base::TimeDelta::FromInternalValue(10);
247 AddCookie(GURL("http://persistent.com"), "A", "B", std::string(), "/", t); 247 AddCookie(GURL("http://persistent.com"), "A", "B", std::string(), "/", t);
248 t += base::TimeDelta::FromInternalValue(10); 248 t += base::TimeDelta::FromInternalValue(10);
249 AddCookie(GURL("http://nonpersistent.com"), "A", "B", std::string(), "/", t); 249 AddCookie(GURL("http://nonpersistent.com"), "A", "B", std::string(), "/", t);
250 250
251 // Now close the store, but the "nonpersistent.com" cookie should not be 251 // Now close the store, but the "nonpersistent.com" cookie should not be
252 // deleted. 252 // deleted.
253 store_->SetForceKeepSessionState(); 253 store_->SetForceKeepSessionState();
254 DestroyStore(); 254 DestroyStore();
255 STLDeleteElements(&cookies); 255 base::STLDeleteElements(&cookies);
256 CreateAndLoad(nullptr, &cookies); 256 CreateAndLoad(nullptr, &cookies);
257 257
258 EXPECT_EQ(3U, cookies.size()); 258 EXPECT_EQ(3U, cookies.size());
259 STLDeleteElements(&cookies); 259 base::STLDeleteElements(&cookies);
260 } 260 }
261 261
262 // Tests that the special storage policy is properly applied even when the store 262 // Tests that the special storage policy is properly applied even when the store
263 // is destroyed on a background thread. 263 // is destroyed on a background thread.
264 TEST_F(QuotaPolicyCookieStoreTest, TestDestroyOnBackgroundThread) { 264 TEST_F(QuotaPolicyCookieStoreTest, TestDestroyOnBackgroundThread) {
265 // Specify storage policy that makes "nonpersistent.com" session only. 265 // Specify storage policy that makes "nonpersistent.com" session only.
266 scoped_refptr<content::MockSpecialStoragePolicy> storage_policy = 266 scoped_refptr<content::MockSpecialStoragePolicy> storage_policy =
267 new content::MockSpecialStoragePolicy(); 267 new content::MockSpecialStoragePolicy();
268 storage_policy->AddSessionOnly( 268 storage_policy->AddSessionOnly(
269 net::cookie_util::CookieOriginToURL("nonpersistent.com", false)); 269 net::cookie_util::CookieOriginToURL("nonpersistent.com", false));
270 270
271 CanonicalCookieVector cookies; 271 CanonicalCookieVector cookies;
272 CreateAndLoad(storage_policy.get(), &cookies); 272 CreateAndLoad(storage_policy.get(), &cookies);
273 ASSERT_EQ(0U, cookies.size()); 273 ASSERT_EQ(0U, cookies.size());
274 274
275 base::Time t = base::Time::Now(); 275 base::Time t = base::Time::Now();
276 AddCookie(GURL("http://nonpersistent.com"), "A", "B", std::string(), "/", t); 276 AddCookie(GURL("http://nonpersistent.com"), "A", "B", std::string(), "/", t);
277 277
278 // Replace the store, which forces the current store to flush data to 278 // Replace the store, which forces the current store to flush data to
279 // disk. Then, after reloading the store, confirm that the data was flushed by 279 // disk. Then, after reloading the store, confirm that the data was flushed by
280 // making sure it loads successfully. This ensures that all pending commits 280 // making sure it loads successfully. This ensures that all pending commits
281 // are made to the store before allowing it to be closed. 281 // are made to the store before allowing it to be closed.
282 DestroyStoreOnBackgroundThread(); 282 DestroyStoreOnBackgroundThread();
283 283
284 // Reload and test for persistence. 284 // Reload and test for persistence.
285 STLDeleteElements(&cookies); 285 base::STLDeleteElements(&cookies);
286 CreateAndLoad(storage_policy.get(), &cookies); 286 CreateAndLoad(storage_policy.get(), &cookies);
287 EXPECT_EQ(0U, cookies.size()); 287 EXPECT_EQ(0U, cookies.size());
288 288
289 STLDeleteElements(&cookies); 289 base::STLDeleteElements(&cookies);
290 } 290 }
291 291
292 } // namespace 292 } // namespace
293 } // namespace content 293 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/manifest/manifest_manager_host.cc ('k') | content/browser/plugin_private_storage_helper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698