| 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 #include "net/cookies/cookie_monster.h" | 5 #include "net/cookies/cookie_monster.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 1021 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1032 base::RunLoop loop; | 1032 base::RunLoop loop; |
| 1033 EXPECT_CALL(set_cookies_callback, Run(true)).WillOnce(QuitRunLoop(&loop)); | 1033 EXPECT_CALL(set_cookies_callback, Run(true)).WillOnce(QuitRunLoop(&loop)); |
| 1034 | 1034 |
| 1035 CompleteLoading(); | 1035 CompleteLoading(); |
| 1036 loop.Run(); | 1036 loop.Run(); |
| 1037 } | 1037 } |
| 1038 | 1038 |
| 1039 TEST_F(DeferredCookieTaskTest, DeferredSetAllCookies) { | 1039 TEST_F(DeferredCookieTaskTest, DeferredSetAllCookies) { |
| 1040 MockSetCookiesCallback set_cookies_callback; | 1040 MockSetCookiesCallback set_cookies_callback; |
| 1041 CookieList list; | 1041 CookieList list; |
| 1042 list.push_back(*CanonicalCookie::Create( | 1042 list.push_back(CanonicalCookie("A", "B", "." + http_www_google_.domain(), "/", |
| 1043 "A", "B", "." + http_www_google_.domain(), "/", base::Time::Now(), | 1043 base::Time::Now(), base::Time(), base::Time(), |
| 1044 base::Time(), base::Time(), false, true, CookieSameSite::DEFAULT_MODE, | 1044 false, true, CookieSameSite::DEFAULT_MODE, |
| 1045 COOKIE_PRIORITY_DEFAULT)); | 1045 COOKIE_PRIORITY_DEFAULT)); |
| 1046 list.push_back(*CanonicalCookie::Create( | 1046 list.push_back(CanonicalCookie("C", "D", "." + http_www_google_.domain(), "/", |
| 1047 "C", "D", "." + http_www_google_.domain(), "/", base::Time::Now(), | 1047 base::Time::Now(), base::Time(), base::Time(), |
| 1048 base::Time(), base::Time(), false, true, CookieSameSite::DEFAULT_MODE, | 1048 false, true, CookieSameSite::DEFAULT_MODE, |
| 1049 COOKIE_PRIORITY_DEFAULT)); | 1049 COOKIE_PRIORITY_DEFAULT)); |
| 1050 | 1050 |
| 1051 BeginWith( | 1051 BeginWith( |
| 1052 SetAllCookiesAction(&cookie_monster(), list, &set_cookies_callback)); | 1052 SetAllCookiesAction(&cookie_monster(), list, &set_cookies_callback)); |
| 1053 | 1053 |
| 1054 WaitForLoadCall(); | 1054 WaitForLoadCall(); |
| 1055 | 1055 |
| 1056 EXPECT_CALL(set_cookies_callback, Run(true)) | 1056 EXPECT_CALL(set_cookies_callback, Run(true)) |
| 1057 .WillOnce( | 1057 .WillOnce( |
| 1058 SetAllCookiesAction(&cookie_monster(), list, &set_cookies_callback)); | 1058 SetAllCookiesAction(&cookie_monster(), list, &set_cookies_callback)); |
| 1059 base::RunLoop loop; | 1059 base::RunLoop loop; |
| (...skipping 1466 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2526 TEST_F(CookieMonsterTest, SetAllCookies) { | 2526 TEST_F(CookieMonsterTest, SetAllCookies) { |
| 2527 scoped_refptr<FlushablePersistentStore> store(new FlushablePersistentStore()); | 2527 scoped_refptr<FlushablePersistentStore> store(new FlushablePersistentStore()); |
| 2528 std::unique_ptr<CookieMonster> cm(new CookieMonster(store.get(), nullptr)); | 2528 std::unique_ptr<CookieMonster> cm(new CookieMonster(store.get(), nullptr)); |
| 2529 cm->SetPersistSessionCookies(true); | 2529 cm->SetPersistSessionCookies(true); |
| 2530 | 2530 |
| 2531 EXPECT_TRUE(SetCookie(cm.get(), http_www_google_.url(), "U=V; path=/")); | 2531 EXPECT_TRUE(SetCookie(cm.get(), http_www_google_.url(), "U=V; path=/")); |
| 2532 EXPECT_TRUE(SetCookie(cm.get(), http_www_google_.url(), "W=X; path=/foo")); | 2532 EXPECT_TRUE(SetCookie(cm.get(), http_www_google_.url(), "W=X; path=/foo")); |
| 2533 EXPECT_TRUE(SetCookie(cm.get(), http_www_google_.url(), "Y=Z; path=/")); | 2533 EXPECT_TRUE(SetCookie(cm.get(), http_www_google_.url(), "Y=Z; path=/")); |
| 2534 | 2534 |
| 2535 CookieList list; | 2535 CookieList list; |
| 2536 list.push_back(*CanonicalCookie::Create( | 2536 list.push_back(CanonicalCookie( |
| 2537 "A", "B", "." + http_www_google_.url().host(), "/", base::Time::Now(), | 2537 "A", "B", "." + http_www_google_.url().host(), "/", base::Time::Now(), |
| 2538 base::Time(), base::Time(), false, false, CookieSameSite::DEFAULT_MODE, | 2538 base::Time(), base::Time(), false, false, CookieSameSite::DEFAULT_MODE, |
| 2539 COOKIE_PRIORITY_DEFAULT)); | 2539 COOKIE_PRIORITY_DEFAULT)); |
| 2540 list.push_back(*CanonicalCookie::Create( | 2540 list.push_back(CanonicalCookie( |
| 2541 "W", "X", "." + http_www_google_.url().host(), "/bar", base::Time::Now(), | 2541 "W", "X", "." + http_www_google_.url().host(), "/bar", base::Time::Now(), |
| 2542 base::Time(), base::Time(), false, false, CookieSameSite::DEFAULT_MODE, | 2542 base::Time(), base::Time(), false, false, CookieSameSite::DEFAULT_MODE, |
| 2543 COOKIE_PRIORITY_DEFAULT)); | 2543 COOKIE_PRIORITY_DEFAULT)); |
| 2544 list.push_back(*CanonicalCookie::Create( | 2544 list.push_back(CanonicalCookie( |
| 2545 "Y", "Z", "." + http_www_google_.url().host(), "/", base::Time::Now(), | 2545 "Y", "Z", "." + http_www_google_.url().host(), "/", base::Time::Now(), |
| 2546 base::Time(), base::Time(), false, false, CookieSameSite::DEFAULT_MODE, | 2546 base::Time(), base::Time(), false, false, CookieSameSite::DEFAULT_MODE, |
| 2547 COOKIE_PRIORITY_DEFAULT)); | 2547 COOKIE_PRIORITY_DEFAULT)); |
| 2548 | 2548 |
| 2549 // SetAllCookies must not flush. | 2549 // SetAllCookies must not flush. |
| 2550 ASSERT_EQ(0, store->flush_count()); | 2550 ASSERT_EQ(0, store->flush_count()); |
| 2551 EXPECT_TRUE(SetAllCookies(cm.get(), list)); | 2551 EXPECT_TRUE(SetAllCookies(cm.get(), list)); |
| 2552 EXPECT_EQ(0, store->flush_count()); | 2552 EXPECT_EQ(0, store->flush_count()); |
| 2553 | 2553 |
| 2554 CookieList cookies = GetAllCookies(cm.get()); | 2554 CookieList cookies = GetAllCookies(cm.get()); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 2569 EXPECT_EQ("Y", it->Name()); | 2569 EXPECT_EQ("Y", it->Name()); |
| 2570 EXPECT_EQ("Z", it->Value()); | 2570 EXPECT_EQ("Z", it->Value()); |
| 2571 } | 2571 } |
| 2572 | 2572 |
| 2573 TEST_F(CookieMonsterTest, ComputeCookieDiff) { | 2573 TEST_F(CookieMonsterTest, ComputeCookieDiff) { |
| 2574 std::unique_ptr<CookieMonster> cm(new CookieMonster(nullptr, nullptr)); | 2574 std::unique_ptr<CookieMonster> cm(new CookieMonster(nullptr, nullptr)); |
| 2575 | 2575 |
| 2576 base::Time now = base::Time::Now(); | 2576 base::Time now = base::Time::Now(); |
| 2577 base::Time creation_time = now - base::TimeDelta::FromSeconds(1); | 2577 base::Time creation_time = now - base::TimeDelta::FromSeconds(1); |
| 2578 | 2578 |
| 2579 std::unique_ptr<CanonicalCookie> cookie1(CanonicalCookie::Create( | 2579 std::unique_ptr<CanonicalCookie> cookie1(base::MakeUnique<CanonicalCookie>( |
| 2580 "A", "B", "." + http_www_google_.url().host(), "/", creation_time, | 2580 "A", "B", "." + http_www_google_.url().host(), "/", creation_time, |
| 2581 base::Time(), base::Time(), false, false, CookieSameSite::DEFAULT_MODE, | 2581 base::Time(), base::Time(), false, false, CookieSameSite::DEFAULT_MODE, |
| 2582 COOKIE_PRIORITY_DEFAULT)); | 2582 COOKIE_PRIORITY_DEFAULT)); |
| 2583 std::unique_ptr<CanonicalCookie> cookie2(CanonicalCookie::Create( | 2583 std::unique_ptr<CanonicalCookie> cookie2(base::MakeUnique<CanonicalCookie>( |
| 2584 "C", "D", "." + http_www_google_.url().host(), "/", creation_time, | 2584 "C", "D", "." + http_www_google_.url().host(), "/", creation_time, |
| 2585 base::Time(), base::Time(), false, false, CookieSameSite::DEFAULT_MODE, | 2585 base::Time(), base::Time(), false, false, CookieSameSite::DEFAULT_MODE, |
| 2586 COOKIE_PRIORITY_DEFAULT)); | 2586 COOKIE_PRIORITY_DEFAULT)); |
| 2587 std::unique_ptr<CanonicalCookie> cookie3(CanonicalCookie::Create( | 2587 std::unique_ptr<CanonicalCookie> cookie3(base::MakeUnique<CanonicalCookie>( |
| 2588 "E", "F", "." + http_www_google_.url().host(), "/", creation_time, | 2588 "E", "F", "." + http_www_google_.url().host(), "/", creation_time, |
| 2589 base::Time(), base::Time(), false, false, CookieSameSite::DEFAULT_MODE, | 2589 base::Time(), base::Time(), false, false, CookieSameSite::DEFAULT_MODE, |
| 2590 COOKIE_PRIORITY_DEFAULT)); | 2590 COOKIE_PRIORITY_DEFAULT)); |
| 2591 std::unique_ptr<CanonicalCookie> cookie4(CanonicalCookie::Create( | 2591 std::unique_ptr<CanonicalCookie> cookie4(base::MakeUnique<CanonicalCookie>( |
| 2592 "G", "H", "." + http_www_google_.url().host(), "/", creation_time, | 2592 "G", "H", "." + http_www_google_.url().host(), "/", creation_time, |
| 2593 base::Time(), base::Time(), false, false, CookieSameSite::DEFAULT_MODE, | 2593 base::Time(), base::Time(), false, false, CookieSameSite::DEFAULT_MODE, |
| 2594 COOKIE_PRIORITY_DEFAULT)); | 2594 COOKIE_PRIORITY_DEFAULT)); |
| 2595 std::unique_ptr<CanonicalCookie> cookie4_with_new_value( | 2595 std::unique_ptr<CanonicalCookie> cookie4_with_new_value( |
| 2596 CanonicalCookie::Create( | 2596 base::MakeUnique<CanonicalCookie>( |
| 2597 "G", "iamnew", "." + http_www_google_.url().host(), "/", | 2597 "G", "iamnew", "." + http_www_google_.url().host(), "/", |
| 2598 creation_time, base::Time(), base::Time(), false, false, | 2598 creation_time, base::Time(), base::Time(), false, false, |
| 2599 CookieSameSite::DEFAULT_MODE, COOKIE_PRIORITY_DEFAULT)); | 2599 CookieSameSite::DEFAULT_MODE, COOKIE_PRIORITY_DEFAULT)); |
| 2600 std::unique_ptr<CanonicalCookie> cookie5(CanonicalCookie::Create( | 2600 std::unique_ptr<CanonicalCookie> cookie5(base::MakeUnique<CanonicalCookie>( |
| 2601 "I", "J", "." + http_www_google_.url().host(), "/", creation_time, | 2601 "I", "J", "." + http_www_google_.url().host(), "/", creation_time, |
| 2602 base::Time(), base::Time(), false, false, CookieSameSite::DEFAULT_MODE, | 2602 base::Time(), base::Time(), false, false, CookieSameSite::DEFAULT_MODE, |
| 2603 COOKIE_PRIORITY_DEFAULT)); | 2603 COOKIE_PRIORITY_DEFAULT)); |
| 2604 std::unique_ptr<CanonicalCookie> cookie5_with_new_creation_time( | 2604 std::unique_ptr<CanonicalCookie> cookie5_with_new_creation_time( |
| 2605 CanonicalCookie::Create("I", "J", "." + http_www_google_.url().host(), | 2605 base::MakeUnique<CanonicalCookie>( |
| 2606 "/", now, base::Time(), base::Time(), false, | 2606 "I", "J", "." + http_www_google_.url().host(), "/", now, base::Time(), |
| 2607 false, CookieSameSite::DEFAULT_MODE, | 2607 base::Time(), false, false, CookieSameSite::DEFAULT_MODE, |
| 2608 COOKIE_PRIORITY_DEFAULT)); | 2608 COOKIE_PRIORITY_DEFAULT)); |
| 2609 std::unique_ptr<CanonicalCookie> cookie6(CanonicalCookie::Create( | 2609 std::unique_ptr<CanonicalCookie> cookie6(base::MakeUnique<CanonicalCookie>( |
| 2610 "K", "L", "." + http_www_google_.url().host(), "/foo", creation_time, | 2610 "K", "L", "." + http_www_google_.url().host(), "/foo", creation_time, |
| 2611 base::Time(), base::Time(), false, false, CookieSameSite::DEFAULT_MODE, | 2611 base::Time(), base::Time(), false, false, CookieSameSite::DEFAULT_MODE, |
| 2612 COOKIE_PRIORITY_DEFAULT)); | 2612 COOKIE_PRIORITY_DEFAULT)); |
| 2613 std::unique_ptr<CanonicalCookie> cookie6_with_new_path( | 2613 std::unique_ptr<CanonicalCookie> cookie6_with_new_path( |
| 2614 CanonicalCookie::Create("K", "L", "." + http_www_google_.url().host(), | 2614 base::MakeUnique<CanonicalCookie>( |
| 2615 "/bar", creation_time, base::Time(), base::Time(), | 2615 "K", "L", "." + http_www_google_.url().host(), "/bar", creation_time, |
| 2616 false, false, CookieSameSite::DEFAULT_MODE, | 2616 base::Time(), base::Time(), false, false, |
| 2617 COOKIE_PRIORITY_DEFAULT)); | 2617 CookieSameSite::DEFAULT_MODE, COOKIE_PRIORITY_DEFAULT)); |
| 2618 std::unique_ptr<CanonicalCookie> cookie7(CanonicalCookie::Create( | 2618 std::unique_ptr<CanonicalCookie> cookie7(base::MakeUnique<CanonicalCookie>( |
| 2619 "M", "N", "." + http_www_google_.url().host(), "/foo", creation_time, | 2619 "M", "N", "." + http_www_google_.url().host(), "/foo", creation_time, |
| 2620 base::Time(), base::Time(), false, false, CookieSameSite::DEFAULT_MODE, | 2620 base::Time(), base::Time(), false, false, CookieSameSite::DEFAULT_MODE, |
| 2621 COOKIE_PRIORITY_DEFAULT)); | 2621 COOKIE_PRIORITY_DEFAULT)); |
| 2622 std::unique_ptr<CanonicalCookie> cookie7_with_new_path( | 2622 std::unique_ptr<CanonicalCookie> cookie7_with_new_path( |
| 2623 CanonicalCookie::Create("M", "N", "." + http_www_google_.url().host(), | 2623 base::MakeUnique<CanonicalCookie>( |
| 2624 "/bar", creation_time, base::Time(), base::Time(), | 2624 "M", "N", "." + http_www_google_.url().host(), "/bar", creation_time, |
| 2625 false, false, CookieSameSite::DEFAULT_MODE, | 2625 base::Time(), base::Time(), false, false, |
| 2626 COOKIE_PRIORITY_DEFAULT)); | 2626 CookieSameSite::DEFAULT_MODE, COOKIE_PRIORITY_DEFAULT)); |
| 2627 | 2627 |
| 2628 CookieList old_cookies; | 2628 CookieList old_cookies; |
| 2629 old_cookies.push_back(*cookie1); | 2629 old_cookies.push_back(*cookie1); |
| 2630 old_cookies.push_back(*cookie2); | 2630 old_cookies.push_back(*cookie2); |
| 2631 old_cookies.push_back(*cookie4); | 2631 old_cookies.push_back(*cookie4); |
| 2632 old_cookies.push_back(*cookie5); | 2632 old_cookies.push_back(*cookie5); |
| 2633 old_cookies.push_back(*cookie6); | 2633 old_cookies.push_back(*cookie6); |
| 2634 old_cookies.push_back(*cookie7); | 2634 old_cookies.push_back(*cookie7); |
| 2635 | 2635 |
| 2636 CookieList new_cookies; | 2636 CookieList new_cookies; |
| (...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2828 const std::string path("/path"); | 2828 const std::string path("/path"); |
| 2829 | 2829 |
| 2830 scoped_refptr<MockPersistentCookieStore> store(new MockPersistentCookieStore); | 2830 scoped_refptr<MockPersistentCookieStore> store(new MockPersistentCookieStore); |
| 2831 | 2831 |
| 2832 std::vector<std::unique_ptr<CanonicalCookie>> initial_cookies; | 2832 std::vector<std::unique_ptr<CanonicalCookie>> initial_cookies; |
| 2833 | 2833 |
| 2834 AddCookieToList(url, "foo=bar; path=" + path, now1, &initial_cookies); | 2834 AddCookieToList(url, "foo=bar; path=" + path, now1, &initial_cookies); |
| 2835 | 2835 |
| 2836 // We have to manually build this cookie because it contains a control | 2836 // We have to manually build this cookie because it contains a control |
| 2837 // character, and our cookie line parser rejects control characters. | 2837 // character, and our cookie line parser rejects control characters. |
| 2838 std::unique_ptr<CanonicalCookie> cc = CanonicalCookie::Create( | 2838 std::unique_ptr<CanonicalCookie> cc = base::MakeUnique<CanonicalCookie>( |
| 2839 "baz", | 2839 "baz", |
| 2840 "\x05" | 2840 "\x05" |
| 2841 "boo", | 2841 "boo", |
| 2842 "." + domain, path, now2, later, base::Time(), false, false, | 2842 "." + domain, path, now2, later, base::Time(), false, false, |
| 2843 CookieSameSite::DEFAULT_MODE, COOKIE_PRIORITY_DEFAULT); | 2843 CookieSameSite::DEFAULT_MODE, COOKIE_PRIORITY_DEFAULT); |
| 2844 initial_cookies.push_back(std::move(cc)); | 2844 initial_cookies.push_back(std::move(cc)); |
| 2845 | 2845 |
| 2846 AddCookieToList(url, "hello=world; path=" + path, now3, &initial_cookies); | 2846 AddCookieToList(url, "hello=world; path=" + path, now3, &initial_cookies); |
| 2847 | 2847 |
| 2848 // Inject our initial cookies into the mock PersistentCookieStore. | 2848 // Inject our initial cookies into the mock PersistentCookieStore. |
| (...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3371 monster()->AddCallbackForCookie( | 3371 monster()->AddCallbackForCookie( |
| 3372 test_url_, "abc", | 3372 test_url_, "abc", |
| 3373 base::Bind(&RecordCookieChanges, &cookies1, nullptr))); | 3373 base::Bind(&RecordCookieChanges, &cookies1, nullptr))); |
| 3374 SetCookie(monster(), test_url_, "abc=def"); | 3374 SetCookie(monster(), test_url_, "abc=def"); |
| 3375 base::RunLoop().RunUntilIdle(); | 3375 base::RunLoop().RunUntilIdle(); |
| 3376 EXPECT_EQ(1U, cookies0.size()); | 3376 EXPECT_EQ(1U, cookies0.size()); |
| 3377 EXPECT_EQ(1U, cookies0.size()); | 3377 EXPECT_EQ(1U, cookies0.size()); |
| 3378 } | 3378 } |
| 3379 | 3379 |
| 3380 } // namespace net | 3380 } // namespace net |
| OLD | NEW |