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

Side by Side Diff: net/extras/sqlite/sqlite_persistent_cookie_store_unittest.cc

Issue 2229393003: net: 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
« no previous file with comments | « net/dns/mojo_host_resolver_impl.cc ('k') | net/http/http_cache.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #include "net/extras/sqlite/sqlite_persistent_cookie_store.h" 5 #include "net/extras/sqlite/sqlite_persistent_cookie_store.h"
6 6
7 #include <map> 7 #include <map>
8 #include <set> 8 #include <set>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 DestroyStore(); 222 DestroyStore();
223 223
224 // Load up the store and verify that it has good data in it. 224 // Load up the store and verify that it has good data in it.
225 CanonicalCookieVector cookies; 225 CanonicalCookieVector cookies;
226 CreateAndLoad(false, false, &cookies); 226 CreateAndLoad(false, false, &cookies);
227 ASSERT_EQ(1U, cookies.size()); 227 ASSERT_EQ(1U, cookies.size());
228 ASSERT_STREQ("foo.bar", cookies[0]->Domain().c_str()); 228 ASSERT_STREQ("foo.bar", cookies[0]->Domain().c_str());
229 ASSERT_STREQ("A", cookies[0]->Name().c_str()); 229 ASSERT_STREQ("A", cookies[0]->Name().c_str());
230 ASSERT_STREQ("B", cookies[0]->Value().c_str()); 230 ASSERT_STREQ("B", cookies[0]->Value().c_str());
231 DestroyStore(); 231 DestroyStore();
232 STLDeleteElements(&cookies); 232 base::STLDeleteElements(&cookies);
233 233
234 // Now corrupt the meta table. 234 // Now corrupt the meta table.
235 { 235 {
236 sql::Connection db; 236 sql::Connection db;
237 ASSERT_TRUE(db.Open(temp_dir_.path().Append(kCookieFilename))); 237 ASSERT_TRUE(db.Open(temp_dir_.path().Append(kCookieFilename)));
238 sql::MetaTable meta_table_; 238 sql::MetaTable meta_table_;
239 meta_table_.Init(&db, 1, 1); 239 meta_table_.Init(&db, 1, 1);
240 ASSERT_TRUE(db.Execute("DELETE FROM meta")); 240 ASSERT_TRUE(db.Execute("DELETE FROM meta"));
241 db.Close(); 241 db.Close();
242 } 242 }
243 243
244 // Upon loading, the database should be reset to a good, blank state. 244 // Upon loading, the database should be reset to a good, blank state.
245 CreateAndLoad(false, false, &cookies); 245 CreateAndLoad(false, false, &cookies);
246 ASSERT_EQ(0U, cookies.size()); 246 ASSERT_EQ(0U, cookies.size());
247 247
248 // Verify that, after, recovery, the database persists properly. 248 // Verify that, after, recovery, the database persists properly.
249 AddCookie(GURL("http://foo.bar"), "X", "Y", std::string(), "/", 249 AddCookie(GURL("http://foo.bar"), "X", "Y", std::string(), "/",
250 base::Time::Now()); 250 base::Time::Now());
251 DestroyStore(); 251 DestroyStore();
252 CreateAndLoad(false, false, &cookies); 252 CreateAndLoad(false, false, &cookies);
253 ASSERT_EQ(1U, cookies.size()); 253 ASSERT_EQ(1U, cookies.size());
254 ASSERT_STREQ("foo.bar", cookies[0]->Domain().c_str()); 254 ASSERT_STREQ("foo.bar", cookies[0]->Domain().c_str());
255 ASSERT_STREQ("X", cookies[0]->Name().c_str()); 255 ASSERT_STREQ("X", cookies[0]->Name().c_str());
256 ASSERT_STREQ("Y", cookies[0]->Value().c_str()); 256 ASSERT_STREQ("Y", cookies[0]->Value().c_str());
257 STLDeleteElements(&cookies); 257 base::STLDeleteElements(&cookies);
258 } 258 }
259 259
260 // Test if data is stored as expected in the SQLite database. 260 // Test if data is stored as expected in the SQLite database.
261 TEST_F(SQLitePersistentCookieStoreTest, TestPersistance) { 261 TEST_F(SQLitePersistentCookieStoreTest, TestPersistance) {
262 InitializeStore(false, false); 262 InitializeStore(false, false);
263 AddCookie(GURL("http://foo.bar"), "A", "B", std::string(), "/", 263 AddCookie(GURL("http://foo.bar"), "A", "B", std::string(), "/",
264 base::Time::Now()); 264 base::Time::Now());
265 // Replace the store effectively destroying the current one and forcing it 265 // Replace the store effectively destroying the current one and forcing it
266 // to write its data to disk. Then we can see if after loading it again it 266 // to write its data to disk. Then we can see if after loading it again it
267 // is still there. 267 // is still there.
268 DestroyStore(); 268 DestroyStore();
269 // Reload and test for persistence 269 // Reload and test for persistence
270 CanonicalCookieVector cookies; 270 CanonicalCookieVector cookies;
271 CreateAndLoad(false, false, &cookies); 271 CreateAndLoad(false, false, &cookies);
272 ASSERT_EQ(1U, cookies.size()); 272 ASSERT_EQ(1U, cookies.size());
273 ASSERT_STREQ("foo.bar", cookies[0]->Domain().c_str()); 273 ASSERT_STREQ("foo.bar", cookies[0]->Domain().c_str());
274 ASSERT_STREQ("A", cookies[0]->Name().c_str()); 274 ASSERT_STREQ("A", cookies[0]->Name().c_str());
275 ASSERT_STREQ("B", cookies[0]->Value().c_str()); 275 ASSERT_STREQ("B", cookies[0]->Value().c_str());
276 276
277 // Now delete the cookie and check persistence again. 277 // Now delete the cookie and check persistence again.
278 store_->DeleteCookie(*cookies[0]); 278 store_->DeleteCookie(*cookies[0]);
279 DestroyStore(); 279 DestroyStore();
280 STLDeleteElements(&cookies); 280 base::STLDeleteElements(&cookies);
281 281
282 // Reload and check if the cookie has been removed. 282 // Reload and check if the cookie has been removed.
283 CreateAndLoad(false, false, &cookies); 283 CreateAndLoad(false, false, &cookies);
284 ASSERT_EQ(0U, cookies.size()); 284 ASSERT_EQ(0U, cookies.size());
285 } 285 }
286 286
287 TEST_F(SQLitePersistentCookieStoreTest, TestSessionCookiesDeletedOnStartup) { 287 TEST_F(SQLitePersistentCookieStoreTest, TestSessionCookiesDeletedOnStartup) {
288 // Initialize the cookie store with 3 persistent cookies, 5 transient 288 // Initialize the cookie store with 3 persistent cookies, 5 transient
289 // cookies. 289 // cookies.
290 InitializeStore(false, false); 290 InitializeStore(false, false);
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 // Now the DB-thread queue contains: 339 // Now the DB-thread queue contains:
340 // (active:) 340 // (active:)
341 // 1. Wait (on db_event) 341 // 1. Wait (on db_event)
342 // (pending:) 342 // (pending:)
343 // 2. "Init And Chain-Load First Domain" 343 // 2. "Init And Chain-Load First Domain"
344 // 3. Add Cookie (c.com) 344 // 3. Add Cookie (c.com)
345 // 4. Flush Cookie (c.com) 345 // 4. Flush Cookie (c.com)
346 db_thread_event_.Signal(); 346 db_thread_event_.Signal();
347 event.Wait(); 347 event.Wait();
348 loaded_event_.Wait(); 348 loaded_event_.Wait();
349 STLDeleteElements(&cookies_); 349 base::STLDeleteElements(&cookies_);
350 DestroyStore(); 350 DestroyStore();
351 351
352 // Load the store a third time, this time restoring session cookies. The 352 // Load the store a third time, this time restoring session cookies. The
353 // store should contain exactly 4 cookies: the 3 persistent, and "c.com", 353 // store should contain exactly 4 cookies: the 3 persistent, and "c.com",
354 // which was added during the second cookie store load. 354 // which was added during the second cookie store load.
355 store_ = new SQLitePersistentCookieStore( 355 store_ = new SQLitePersistentCookieStore(
356 temp_dir_.path().Append(kCookieFilename), client_task_runner(), 356 temp_dir_.path().Append(kCookieFilename), client_task_runner(),
357 background_task_runner(), true, nullptr); 357 background_task_runner(), true, nullptr);
358 store_->Load(base::Bind(&SQLitePersistentCookieStoreTest::OnLoaded, 358 store_->Load(base::Bind(&SQLitePersistentCookieStoreTest::OnLoaded,
359 base::Unretained(this))); 359 base::Unretained(this)));
360 loaded_event_.Wait(); 360 loaded_event_.Wait();
361 ASSERT_EQ(4u, cookies_.size()); 361 ASSERT_EQ(4u, cookies_.size());
362 STLDeleteElements(&cookies_); 362 base::STLDeleteElements(&cookies_);
363 } 363 }
364 364
365 // Test that priority load of cookies for a specfic domain key could be 365 // Test that priority load of cookies for a specfic domain key could be
366 // completed before the entire store is loaded 366 // completed before the entire store is loaded
367 TEST_F(SQLitePersistentCookieStoreTest, TestLoadCookiesForKey) { 367 TEST_F(SQLitePersistentCookieStoreTest, TestLoadCookiesForKey) {
368 InitializeStore(false, false); 368 InitializeStore(false, false);
369 base::Time t = base::Time::Now(); 369 base::Time t = base::Time::Now();
370 AddCookie(GURL("http://foo.bar"), "A", "B", std::string(), "/", t); 370 AddCookie(GURL("http://foo.bar"), "A", "B", std::string(), "/", t);
371 t += base::TimeDelta::FromInternalValue(10); 371 t += base::TimeDelta::FromInternalValue(10);
372 AddCookie(GURL("http://www.aaa.com"), "A", "B", std::string(), "/", t); 372 AddCookie(GURL("http://www.aaa.com"), "A", "B", std::string(), "/", t);
(...skipping 29 matching lines...) Expand all
402 // 3. Priority Load (aaa.com) 402 // 3. Priority Load (aaa.com)
403 // 4. Wait (on db_event) 403 // 4. Wait (on db_event)
404 db_thread_event_.Signal(); 404 db_thread_event_.Signal();
405 key_loaded_event_.Wait(); 405 key_loaded_event_.Wait();
406 ASSERT_EQ(loaded_event_.IsSignaled(), false); 406 ASSERT_EQ(loaded_event_.IsSignaled(), false);
407 std::set<std::string> cookies_loaded; 407 std::set<std::string> cookies_loaded;
408 for (CanonicalCookieVector::const_iterator it = cookies_.begin(); 408 for (CanonicalCookieVector::const_iterator it = cookies_.begin();
409 it != cookies_.end(); ++it) { 409 it != cookies_.end(); ++it) {
410 cookies_loaded.insert((*it)->Domain().c_str()); 410 cookies_loaded.insert((*it)->Domain().c_str());
411 } 411 }
412 STLDeleteElements(&cookies_); 412 base::STLDeleteElements(&cookies_);
413 ASSERT_GT(4U, cookies_loaded.size()); 413 ASSERT_GT(4U, cookies_loaded.size());
414 ASSERT_EQ(true, cookies_loaded.find("www.aaa.com") != cookies_loaded.end()); 414 ASSERT_EQ(true, cookies_loaded.find("www.aaa.com") != cookies_loaded.end());
415 ASSERT_EQ(true, 415 ASSERT_EQ(true,
416 cookies_loaded.find("travel.aaa.com") != cookies_loaded.end()); 416 cookies_loaded.find("travel.aaa.com") != cookies_loaded.end());
417 417
418 db_thread_event_.Signal(); 418 db_thread_event_.Signal();
419 loaded_event_.Wait(); 419 loaded_event_.Wait();
420 for (CanonicalCookieVector::const_iterator it = cookies_.begin(); 420 for (CanonicalCookieVector::const_iterator it = cookies_.begin();
421 it != cookies_.end(); ++it) { 421 it != cookies_.end(); ++it) {
422 cookies_loaded.insert((*it)->Domain().c_str()); 422 cookies_loaded.insert((*it)->Domain().c_str());
423 } 423 }
424 ASSERT_EQ(4U, cookies_loaded.size()); 424 ASSERT_EQ(4U, cookies_loaded.size());
425 ASSERT_EQ(cookies_loaded.find("foo.bar") != cookies_loaded.end(), true); 425 ASSERT_EQ(cookies_loaded.find("foo.bar") != cookies_loaded.end(), true);
426 ASSERT_EQ(cookies_loaded.find("www.bbb.com") != cookies_loaded.end(), true); 426 ASSERT_EQ(cookies_loaded.find("www.bbb.com") != cookies_loaded.end(), true);
427 STLDeleteElements(&cookies_); 427 base::STLDeleteElements(&cookies_);
428 } 428 }
429 429
430 // Test that we can force the database to be written by calling Flush(). 430 // Test that we can force the database to be written by calling Flush().
431 TEST_F(SQLitePersistentCookieStoreTest, TestFlush) { 431 TEST_F(SQLitePersistentCookieStoreTest, TestFlush) {
432 InitializeStore(false, false); 432 InitializeStore(false, false);
433 // File timestamps don't work well on all platforms, so we'll determine 433 // File timestamps don't work well on all platforms, so we'll determine
434 // whether the DB file has been modified by checking its size. 434 // whether the DB file has been modified by checking its size.
435 base::FilePath path = temp_dir_.path().Append(kCookieFilename); 435 base::FilePath path = temp_dir_.path().Append(kCookieFilename);
436 base::File::Info info; 436 base::File::Info info;
437 ASSERT_TRUE(base::GetFileInfo(path, &info)); 437 ASSERT_TRUE(base::GetFileInfo(path, &info));
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
470 // was loaded. 470 // was loaded.
471 CanonicalCookieVector cookies; 471 CanonicalCookieVector cookies;
472 CreateAndLoad(false, true, &cookies); 472 CreateAndLoad(false, true, &cookies);
473 473
474 ASSERT_EQ(1U, cookies.size()); 474 ASSERT_EQ(1U, cookies.size());
475 ASSERT_STREQ("sessioncookie.com", cookies[0]->Domain().c_str()); 475 ASSERT_STREQ("sessioncookie.com", cookies[0]->Domain().c_str());
476 ASSERT_STREQ("C", cookies[0]->Name().c_str()); 476 ASSERT_STREQ("C", cookies[0]->Name().c_str());
477 ASSERT_STREQ("D", cookies[0]->Value().c_str()); 477 ASSERT_STREQ("D", cookies[0]->Value().c_str());
478 ASSERT_EQ(COOKIE_PRIORITY_DEFAULT, cookies[0]->Priority()); 478 ASSERT_EQ(COOKIE_PRIORITY_DEFAULT, cookies[0]->Priority());
479 479
480 STLDeleteElements(&cookies); 480 base::STLDeleteElements(&cookies);
481 } 481 }
482 482
483 // Test loading old session cookies from the disk. 483 // Test loading old session cookies from the disk.
484 TEST_F(SQLitePersistentCookieStoreTest, TestDontLoadOldSessionCookies) { 484 TEST_F(SQLitePersistentCookieStoreTest, TestDontLoadOldSessionCookies) {
485 InitializeStore(false, true); 485 InitializeStore(false, true);
486 486
487 // Add a session cookie. 487 // Add a session cookie.
488 store_->AddCookie(*CanonicalCookie::Create( 488 store_->AddCookie(*CanonicalCookie::Create(
489 GURL("http://sessioncookie.com"), "C", "D", std::string(), "/", 489 GURL("http://sessioncookie.com"), "C", "D", std::string(), "/",
490 base::Time::Now(), base::Time(), false, false, 490 base::Time::Now(), base::Time(), false, false,
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
543 543
544 std::map<std::string, CanonicalCookie*>::const_iterator it = 544 std::map<std::string, CanonicalCookie*>::const_iterator it =
545 cookie_map.find(kSessionName); 545 cookie_map.find(kSessionName);
546 ASSERT_TRUE(it != cookie_map.end()); 546 ASSERT_TRUE(it != cookie_map.end());
547 EXPECT_FALSE(cookie_map[kSessionName]->IsPersistent()); 547 EXPECT_FALSE(cookie_map[kSessionName]->IsPersistent());
548 548
549 it = cookie_map.find(kPersistentName); 549 it = cookie_map.find(kPersistentName);
550 ASSERT_TRUE(it != cookie_map.end()); 550 ASSERT_TRUE(it != cookie_map.end());
551 EXPECT_TRUE(cookie_map[kPersistentName]->IsPersistent()); 551 EXPECT_TRUE(cookie_map[kPersistentName]->IsPersistent());
552 552
553 STLDeleteElements(&cookies); 553 base::STLDeleteElements(&cookies);
554 } 554 }
555 555
556 TEST_F(SQLitePersistentCookieStoreTest, PriorityIsPersistent) { 556 TEST_F(SQLitePersistentCookieStoreTest, PriorityIsPersistent) {
557 static const char kURL[] = "http://sessioncookie.com"; 557 static const char kURL[] = "http://sessioncookie.com";
558 static const char kLowName[] = "low"; 558 static const char kLowName[] = "low";
559 static const char kMediumName[] = "medium"; 559 static const char kMediumName[] = "medium";
560 static const char kHighName[] = "high"; 560 static const char kHighName[] = "high";
561 static const char kCookieValue[] = "value"; 561 static const char kCookieValue[] = "value";
562 static const char kCookiePath[] = "/"; 562 static const char kCookiePath[] = "/";
563 563
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
607 EXPECT_EQ(COOKIE_PRIORITY_LOW, cookie_map[kLowName]->Priority()); 607 EXPECT_EQ(COOKIE_PRIORITY_LOW, cookie_map[kLowName]->Priority());
608 608
609 it = cookie_map.find(kMediumName); 609 it = cookie_map.find(kMediumName);
610 ASSERT_TRUE(it != cookie_map.end()); 610 ASSERT_TRUE(it != cookie_map.end());
611 EXPECT_EQ(COOKIE_PRIORITY_MEDIUM, cookie_map[kMediumName]->Priority()); 611 EXPECT_EQ(COOKIE_PRIORITY_MEDIUM, cookie_map[kMediumName]->Priority());
612 612
613 it = cookie_map.find(kHighName); 613 it = cookie_map.find(kHighName);
614 ASSERT_TRUE(it != cookie_map.end()); 614 ASSERT_TRUE(it != cookie_map.end());
615 EXPECT_EQ(COOKIE_PRIORITY_HIGH, cookie_map[kHighName]->Priority()); 615 EXPECT_EQ(COOKIE_PRIORITY_HIGH, cookie_map[kHighName]->Priority());
616 616
617 STLDeleteElements(&cookies); 617 base::STLDeleteElements(&cookies);
618 } 618 }
619 619
620 TEST_F(SQLitePersistentCookieStoreTest, SameSiteIsPersistent) { 620 TEST_F(SQLitePersistentCookieStoreTest, SameSiteIsPersistent) {
621 const char kURL[] = "http://sessioncookie.com"; 621 const char kURL[] = "http://sessioncookie.com";
622 const char kNoneName[] = "none"; 622 const char kNoneName[] = "none";
623 const char kLaxName[] = "lax"; 623 const char kLaxName[] = "lax";
624 const char kStrictName[] = "strict"; 624 const char kStrictName[] = "strict";
625 const char kCookieValue[] = "value"; 625 const char kCookieValue[] = "value";
626 const char kCookiePath[] = "/"; 626 const char kCookiePath[] = "/";
627 627
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
665 // Validate that each cookie has the correct SameSite. 665 // Validate that each cookie has the correct SameSite.
666 ASSERT_EQ(1u, cookie_map.count(kNoneName)); 666 ASSERT_EQ(1u, cookie_map.count(kNoneName));
667 EXPECT_EQ(CookieSameSite::NO_RESTRICTION, cookie_map[kNoneName]->SameSite()); 667 EXPECT_EQ(CookieSameSite::NO_RESTRICTION, cookie_map[kNoneName]->SameSite());
668 668
669 ASSERT_EQ(1u, cookie_map.count(kLaxName)); 669 ASSERT_EQ(1u, cookie_map.count(kLaxName));
670 EXPECT_EQ(CookieSameSite::LAX_MODE, cookie_map[kLaxName]->SameSite()); 670 EXPECT_EQ(CookieSameSite::LAX_MODE, cookie_map[kLaxName]->SameSite());
671 671
672 ASSERT_EQ(1u, cookie_map.count(kStrictName)); 672 ASSERT_EQ(1u, cookie_map.count(kStrictName));
673 EXPECT_EQ(CookieSameSite::STRICT_MODE, cookie_map[kStrictName]->SameSite()); 673 EXPECT_EQ(CookieSameSite::STRICT_MODE, cookie_map[kStrictName]->SameSite());
674 674
675 STLDeleteElements(&cookies); 675 base::STLDeleteElements(&cookies);
676 } 676 }
677 677
678 TEST_F(SQLitePersistentCookieStoreTest, UpdateToEncryption) { 678 TEST_F(SQLitePersistentCookieStoreTest, UpdateToEncryption) {
679 CanonicalCookieVector cookies; 679 CanonicalCookieVector cookies;
680 680
681 // Create unencrypted cookie store and write something to it. 681 // Create unencrypted cookie store and write something to it.
682 InitializeStore(false, false); 682 InitializeStore(false, false);
683 AddCookie(GURL("http://foo.bar"), "name", "value123XYZ", std::string(), "/", 683 AddCookie(GURL("http://foo.bar"), "name", "value123XYZ", std::string(), "/",
684 base::Time::Now()); 684 base::Time::Now());
685 DestroyStore(); 685 DestroyStore();
686 686
687 // Verify that "value" is visible in the file. This is necessary in order to 687 // Verify that "value" is visible in the file. This is necessary in order to
688 // have confidence in a later test that "encrypted_value" is not visible. 688 // have confidence in a later test that "encrypted_value" is not visible.
689 std::string contents = ReadRawDBContents(); 689 std::string contents = ReadRawDBContents();
690 EXPECT_NE(0U, contents.length()); 690 EXPECT_NE(0U, contents.length());
691 EXPECT_NE(contents.find("value123XYZ"), std::string::npos); 691 EXPECT_NE(contents.find("value123XYZ"), std::string::npos);
692 692
693 // Create encrypted cookie store and ensure old cookie still reads. 693 // Create encrypted cookie store and ensure old cookie still reads.
694 STLDeleteElements(&cookies_); 694 base::STLDeleteElements(&cookies_);
695 EXPECT_EQ(0U, cookies_.size()); 695 EXPECT_EQ(0U, cookies_.size());
696 CreateAndLoad(true, false, &cookies); 696 CreateAndLoad(true, false, &cookies);
697 EXPECT_EQ(1U, cookies_.size()); 697 EXPECT_EQ(1U, cookies_.size());
698 EXPECT_EQ("name", cookies_[0]->Name()); 698 EXPECT_EQ("name", cookies_[0]->Name());
699 EXPECT_EQ("value123XYZ", cookies_[0]->Value()); 699 EXPECT_EQ("value123XYZ", cookies_[0]->Value());
700 700
701 // Make sure we can update existing cookie and add new cookie as encrypted. 701 // Make sure we can update existing cookie and add new cookie as encrypted.
702 store_->DeleteCookie(*(cookies_[0])); 702 store_->DeleteCookie(*(cookies_[0]));
703 AddCookie(GURL("http://foo.bar"), "name", "encrypted_value123XYZ", 703 AddCookie(GURL("http://foo.bar"), "name", "encrypted_value123XYZ",
704 std::string(), "/", base::Time::Now()); 704 std::string(), "/", base::Time::Now());
705 AddCookie(GURL("http://foo.bar"), "other", "something456ABC", std::string(), 705 AddCookie(GURL("http://foo.bar"), "other", "something456ABC", std::string(),
706 "/", base::Time::Now() + base::TimeDelta::FromInternalValue(10)); 706 "/", base::Time::Now() + base::TimeDelta::FromInternalValue(10));
707 DestroyStore(); 707 DestroyStore();
708 STLDeleteElements(&cookies_); 708 base::STLDeleteElements(&cookies_);
709 CreateAndLoad(true, false, &cookies); 709 CreateAndLoad(true, false, &cookies);
710 EXPECT_EQ(2U, cookies_.size()); 710 EXPECT_EQ(2U, cookies_.size());
711 CanonicalCookie* cookie_name = nullptr; 711 CanonicalCookie* cookie_name = nullptr;
712 CanonicalCookie* cookie_other = nullptr; 712 CanonicalCookie* cookie_other = nullptr;
713 if (cookies_[0]->Name() == "name") { 713 if (cookies_[0]->Name() == "name") {
714 cookie_name = cookies_[0]; 714 cookie_name = cookies_[0];
715 cookie_other = cookies_[1]; 715 cookie_other = cookies_[1];
716 } else { 716 } else {
717 cookie_name = cookies_[1]; 717 cookie_name = cookies_[1];
718 cookie_other = cookies_[0]; 718 cookie_other = cookies_[0];
719 } 719 }
720 EXPECT_EQ("encrypted_value123XYZ", cookie_name->Value()); 720 EXPECT_EQ("encrypted_value123XYZ", cookie_name->Value());
721 EXPECT_EQ("something456ABC", cookie_other->Value()); 721 EXPECT_EQ("something456ABC", cookie_other->Value());
722 DestroyStore(); 722 DestroyStore();
723 STLDeleteElements(&cookies_); 723 base::STLDeleteElements(&cookies_);
724 724
725 // Examine the real record to make sure plaintext version doesn't exist. 725 // Examine the real record to make sure plaintext version doesn't exist.
726 sql::Connection db; 726 sql::Connection db;
727 sql::Statement smt; 727 sql::Statement smt;
728 int resultcount = 0; 728 int resultcount = 0;
729 ASSERT_TRUE(db.Open(temp_dir_.path().Append(kCookieFilename))); 729 ASSERT_TRUE(db.Open(temp_dir_.path().Append(kCookieFilename)));
730 smt.Assign(db.GetCachedStatement(SQL_FROM_HERE, 730 smt.Assign(db.GetCachedStatement(SQL_FROM_HERE,
731 "SELECT * " 731 "SELECT * "
732 "FROM cookies " 732 "FROM cookies "
733 "WHERE host_key = 'foo.bar'")); 733 "WHERE host_key = 'foo.bar'"));
(...skipping 21 matching lines...) Expand all
755 AddCookie(GURL("http://foo.bar"), "name", "value123XYZ", std::string(), "/", 755 AddCookie(GURL("http://foo.bar"), "name", "value123XYZ", std::string(), "/",
756 base::Time::Now()); 756 base::Time::Now());
757 DestroyStore(); 757 DestroyStore();
758 758
759 // Verify that "value" is not visible in the file. 759 // Verify that "value" is not visible in the file.
760 std::string contents = ReadRawDBContents(); 760 std::string contents = ReadRawDBContents();
761 EXPECT_NE(0U, contents.length()); 761 EXPECT_NE(0U, contents.length());
762 EXPECT_EQ(contents.find("value123XYZ"), std::string::npos); 762 EXPECT_EQ(contents.find("value123XYZ"), std::string::npos);
763 763
764 // Create encrypted cookie store and ensure old cookie still reads. 764 // Create encrypted cookie store and ensure old cookie still reads.
765 STLDeleteElements(&cookies_); 765 base::STLDeleteElements(&cookies_);
766 EXPECT_EQ(0U, cookies_.size()); 766 EXPECT_EQ(0U, cookies_.size());
767 CreateAndLoad(true, false, &cookies); 767 CreateAndLoad(true, false, &cookies);
768 EXPECT_EQ(1U, cookies_.size()); 768 EXPECT_EQ(1U, cookies_.size());
769 EXPECT_EQ("name", cookies_[0]->Name()); 769 EXPECT_EQ("name", cookies_[0]->Name());
770 EXPECT_EQ("value123XYZ", cookies_[0]->Value()); 770 EXPECT_EQ("value123XYZ", cookies_[0]->Value());
771 771
772 // Make sure we can update existing cookie and it writes unencrypted. 772 // Make sure we can update existing cookie and it writes unencrypted.
773 cookie_crypto_delegate_->should_encrypt_ = false; 773 cookie_crypto_delegate_->should_encrypt_ = false;
774 store_->DeleteCookie(*(cookies_[0])); 774 store_->DeleteCookie(*(cookies_[0]));
775 AddCookie(GURL("http://foo.bar"), "name", "plaintext_value123XYZ", 775 AddCookie(GURL("http://foo.bar"), "name", "plaintext_value123XYZ",
776 std::string(), "/", base::Time::Now()); 776 std::string(), "/", base::Time::Now());
777 AddCookie(GURL("http://foo.bar"), "other", "something456ABC", std::string(), 777 AddCookie(GURL("http://foo.bar"), "other", "something456ABC", std::string(),
778 "/", base::Time::Now() + base::TimeDelta::FromInternalValue(10)); 778 "/", base::Time::Now() + base::TimeDelta::FromInternalValue(10));
779 DestroyStore(); 779 DestroyStore();
780 STLDeleteElements(&cookies_); 780 base::STLDeleteElements(&cookies_);
781 CreateAndLoad(true, false, &cookies); 781 CreateAndLoad(true, false, &cookies);
782 EXPECT_EQ(2U, cookies_.size()); 782 EXPECT_EQ(2U, cookies_.size());
783 CanonicalCookie* cookie_name = nullptr; 783 CanonicalCookie* cookie_name = nullptr;
784 CanonicalCookie* cookie_other = nullptr; 784 CanonicalCookie* cookie_other = nullptr;
785 if (cookies_[0]->Name() == "name") { 785 if (cookies_[0]->Name() == "name") {
786 cookie_name = cookies_[0]; 786 cookie_name = cookies_[0];
787 cookie_other = cookies_[1]; 787 cookie_other = cookies_[1];
788 } else { 788 } else {
789 cookie_name = cookies_[1]; 789 cookie_name = cookies_[1];
790 cookie_other = cookies_[0]; 790 cookie_other = cookies_[0];
791 } 791 }
792 EXPECT_EQ("plaintext_value123XYZ", cookie_name->Value()); 792 EXPECT_EQ("plaintext_value123XYZ", cookie_name->Value());
793 EXPECT_EQ("something456ABC", cookie_other->Value()); 793 EXPECT_EQ("something456ABC", cookie_other->Value());
794 DestroyStore(); 794 DestroyStore();
795 STLDeleteElements(&cookies_); 795 base::STLDeleteElements(&cookies_);
796 796
797 // Verify that "value" is now visible in the file. 797 // Verify that "value" is now visible in the file.
798 contents = ReadRawDBContents(); 798 contents = ReadRawDBContents();
799 EXPECT_NE(0U, contents.length()); 799 EXPECT_NE(0U, contents.length());
800 EXPECT_NE(contents.find("value123XYZ"), std::string::npos); 800 EXPECT_NE(contents.find("value123XYZ"), std::string::npos);
801 } 801 }
802 802
803 namespace { 803 namespace {
804 void WasCalledWithNoCookies(bool* was_called_with_no_cookies, 804 void WasCalledWithNoCookies(bool* was_called_with_no_cookies,
805 const std::vector<CanonicalCookie*>& cookies) { 805 const std::vector<CanonicalCookie*>& cookies) {
(...skipping 19 matching lines...) Expand all
825 EXPECT_TRUE(was_called_with_no_cookies); 825 EXPECT_TRUE(was_called_with_no_cookies);
826 826
827 // Same with trying to load a specific cookie. 827 // Same with trying to load a specific cookie.
828 was_called_with_no_cookies = false; 828 was_called_with_no_cookies = false;
829 store_->LoadCookiesForKey("foo.bar", base::Bind(WasCalledWithNoCookies, 829 store_->LoadCookiesForKey("foo.bar", base::Bind(WasCalledWithNoCookies,
830 &was_called_with_no_cookies)); 830 &was_called_with_no_cookies));
831 EXPECT_TRUE(was_called_with_no_cookies); 831 EXPECT_TRUE(was_called_with_no_cookies);
832 } 832 }
833 833
834 } // namespace net 834 } // namespace net
OLDNEW
« no previous file with comments | « net/dns/mojo_host_resolver_impl.cc ('k') | net/http/http_cache.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698