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

Side by Side Diff: net/cookies/cookie_monster_unittest.cc

Issue 2974363002: Simplify CookieMonster::SetAllCookies{,Async}() implementation. (Closed)
Patch Set: Sync['d up to latest PS on base CL. Created 3 years, 5 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/cookies/cookie_monster.cc ('k') | no next file » | 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/cookies/cookie_monster.h" 5 #include "net/cookies/cookie_monster.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <memory> 10 #include <memory>
(...skipping 2642 matching lines...) Expand 10 before | Expand all | Expand 10 after
2653 2653
2654 ASSERT_TRUE(++it != cookies.end()); 2654 ASSERT_TRUE(++it != cookies.end());
2655 EXPECT_EQ("A", it->Name()); 2655 EXPECT_EQ("A", it->Name());
2656 EXPECT_EQ("B", it->Value()); 2656 EXPECT_EQ("B", it->Value());
2657 2657
2658 ASSERT_TRUE(++it != cookies.end()); 2658 ASSERT_TRUE(++it != cookies.end());
2659 EXPECT_EQ("Y", it->Name()); 2659 EXPECT_EQ("Y", it->Name());
2660 EXPECT_EQ("Z", it->Value()); 2660 EXPECT_EQ("Z", it->Value());
2661 } 2661 }
2662 2662
2663 TEST_F(CookieMonsterTest, ComputeCookieDiff) {
2664 std::unique_ptr<CookieMonster> cm(new CookieMonster(nullptr, nullptr));
2665
2666 base::Time now = base::Time::Now();
2667 base::Time creation_time = now - base::TimeDelta::FromSeconds(1);
2668
2669 std::unique_ptr<CanonicalCookie> cookie1(base::MakeUnique<CanonicalCookie>(
2670 "A", "B", "." + http_www_foo_.url().host(), "/", creation_time,
2671 base::Time(), base::Time(), false, false, CookieSameSite::DEFAULT_MODE,
2672 COOKIE_PRIORITY_DEFAULT));
2673 std::unique_ptr<CanonicalCookie> cookie2(base::MakeUnique<CanonicalCookie>(
2674 "C", "D", "." + http_www_foo_.url().host(), "/", creation_time,
2675 base::Time(), base::Time(), false, false, CookieSameSite::DEFAULT_MODE,
2676 COOKIE_PRIORITY_DEFAULT));
2677 std::unique_ptr<CanonicalCookie> cookie3(base::MakeUnique<CanonicalCookie>(
2678 "E", "F", "." + http_www_foo_.url().host(), "/", creation_time,
2679 base::Time(), base::Time(), false, false, CookieSameSite::DEFAULT_MODE,
2680 COOKIE_PRIORITY_DEFAULT));
2681 std::unique_ptr<CanonicalCookie> cookie4(base::MakeUnique<CanonicalCookie>(
2682 "G", "H", "." + http_www_foo_.url().host(), "/", creation_time,
2683 base::Time(), base::Time(), false, false, CookieSameSite::DEFAULT_MODE,
2684 COOKIE_PRIORITY_DEFAULT));
2685 std::unique_ptr<CanonicalCookie> cookie4_with_new_value(
2686 base::MakeUnique<CanonicalCookie>(
2687 "G", "iamnew", "." + http_www_foo_.url().host(), "/", creation_time,
2688 base::Time(), base::Time(), false, false,
2689 CookieSameSite::DEFAULT_MODE, COOKIE_PRIORITY_DEFAULT));
2690 std::unique_ptr<CanonicalCookie> cookie5(base::MakeUnique<CanonicalCookie>(
2691 "I", "J", "." + http_www_foo_.url().host(), "/", creation_time,
2692 base::Time(), base::Time(), false, false, CookieSameSite::DEFAULT_MODE,
2693 COOKIE_PRIORITY_DEFAULT));
2694 std::unique_ptr<CanonicalCookie> cookie5_with_new_creation_time(
2695 base::MakeUnique<CanonicalCookie>(
2696 "I", "J", "." + http_www_foo_.url().host(), "/", now, base::Time(),
2697 base::Time(), false, false, CookieSameSite::DEFAULT_MODE,
2698 COOKIE_PRIORITY_DEFAULT));
2699 std::unique_ptr<CanonicalCookie> cookie6(base::MakeUnique<CanonicalCookie>(
2700 "K", "L", "." + http_www_foo_.url().host(), "/foo", creation_time,
2701 base::Time(), base::Time(), false, false, CookieSameSite::DEFAULT_MODE,
2702 COOKIE_PRIORITY_DEFAULT));
2703 std::unique_ptr<CanonicalCookie> cookie6_with_new_path(
2704 base::MakeUnique<CanonicalCookie>(
2705 "K", "L", "." + http_www_foo_.url().host(), "/bar", creation_time,
2706 base::Time(), base::Time(), false, false,
2707 CookieSameSite::DEFAULT_MODE, COOKIE_PRIORITY_DEFAULT));
2708 std::unique_ptr<CanonicalCookie> cookie7(base::MakeUnique<CanonicalCookie>(
2709 "M", "N", "." + http_www_foo_.url().host(), "/foo", creation_time,
2710 base::Time(), base::Time(), false, false, CookieSameSite::DEFAULT_MODE,
2711 COOKIE_PRIORITY_DEFAULT));
2712 std::unique_ptr<CanonicalCookie> cookie7_with_new_path(
2713 base::MakeUnique<CanonicalCookie>(
2714 "M", "N", "." + http_www_foo_.url().host(), "/bar", creation_time,
2715 base::Time(), base::Time(), false, false,
2716 CookieSameSite::DEFAULT_MODE, COOKIE_PRIORITY_DEFAULT));
2717
2718 CookieList old_cookies;
2719 old_cookies.push_back(*cookie1);
2720 old_cookies.push_back(*cookie2);
2721 old_cookies.push_back(*cookie4);
2722 old_cookies.push_back(*cookie5);
2723 old_cookies.push_back(*cookie6);
2724 old_cookies.push_back(*cookie7);
2725
2726 CookieList new_cookies;
2727 new_cookies.push_back(*cookie1);
2728 new_cookies.push_back(*cookie3);
2729 new_cookies.push_back(*cookie4_with_new_value);
2730 new_cookies.push_back(*cookie5_with_new_creation_time);
2731 new_cookies.push_back(*cookie6_with_new_path);
2732 new_cookies.push_back(*cookie7);
2733 new_cookies.push_back(*cookie7_with_new_path);
2734
2735 CookieList cookies_to_add;
2736 CookieList cookies_to_delete;
2737
2738 cm->ComputeCookieDiff(&old_cookies, &new_cookies, &cookies_to_add,
2739 &cookies_to_delete);
2740
2741 // |cookie1| has not changed.
2742 EXPECT_FALSE(IsCookieInList(*cookie1, cookies_to_add));
2743 EXPECT_FALSE(IsCookieInList(*cookie1, cookies_to_delete));
2744
2745 // |cookie2| has been deleted.
2746 EXPECT_FALSE(IsCookieInList(*cookie2, cookies_to_add));
2747 EXPECT_TRUE(IsCookieInList(*cookie2, cookies_to_delete));
2748
2749 // |cookie3| has been added.
2750 EXPECT_TRUE(IsCookieInList(*cookie3, cookies_to_add));
2751 EXPECT_FALSE(IsCookieInList(*cookie3, cookies_to_delete));
2752
2753 // |cookie4| has a new value: new cookie overrides the old one (which does not
2754 // need to be explicitly removed).
2755 EXPECT_FALSE(IsCookieInList(*cookie4, cookies_to_add));
2756 EXPECT_FALSE(IsCookieInList(*cookie4, cookies_to_delete));
2757 EXPECT_TRUE(IsCookieInList(*cookie4_with_new_value, cookies_to_add));
2758 EXPECT_FALSE(IsCookieInList(*cookie4_with_new_value, cookies_to_delete));
2759
2760 // |cookie5| has a new creation time: new cookie overrides the old one (which
2761 // does not need to be explicitly removed).
2762 EXPECT_FALSE(IsCookieInList(*cookie5, cookies_to_add));
2763 EXPECT_FALSE(IsCookieInList(*cookie5, cookies_to_delete));
2764 EXPECT_TRUE(IsCookieInList(*cookie5_with_new_creation_time, cookies_to_add));
2765 EXPECT_FALSE(
2766 IsCookieInList(*cookie5_with_new_creation_time, cookies_to_delete));
2767
2768 // |cookie6| has a new path: the new cookie does not overrides the old one,
2769 // which needs to be explicitly removed.
2770 EXPECT_FALSE(IsCookieInList(*cookie6, cookies_to_add));
2771 EXPECT_TRUE(IsCookieInList(*cookie6, cookies_to_delete));
2772 EXPECT_TRUE(IsCookieInList(*cookie6_with_new_path, cookies_to_add));
2773 EXPECT_FALSE(IsCookieInList(*cookie6_with_new_path, cookies_to_delete));
2774
2775 // |cookie7| is kept and |cookie7_with_new_path| is added as a new cookie.
2776 EXPECT_FALSE(IsCookieInList(*cookie7, cookies_to_add));
2777 EXPECT_FALSE(IsCookieInList(*cookie7, cookies_to_delete));
2778 EXPECT_TRUE(IsCookieInList(*cookie7_with_new_path, cookies_to_add));
2779 EXPECT_FALSE(IsCookieInList(*cookie7_with_new_path, cookies_to_delete));
2780 }
2781
2782 // Check that DeleteAll does flush (as a sanity check that flush_count() 2663 // Check that DeleteAll does flush (as a sanity check that flush_count()
2783 // works). 2664 // works).
2784 TEST_F(CookieMonsterTest, DeleteAll) { 2665 TEST_F(CookieMonsterTest, DeleteAll) {
2785 scoped_refptr<FlushablePersistentStore> store(new FlushablePersistentStore()); 2666 scoped_refptr<FlushablePersistentStore> store(new FlushablePersistentStore());
2786 std::unique_ptr<CookieMonster> cm(new CookieMonster(store.get(), nullptr)); 2667 std::unique_ptr<CookieMonster> cm(new CookieMonster(store.get(), nullptr));
2787 cm->SetPersistSessionCookies(true); 2668 cm->SetPersistSessionCookies(true);
2788 2669
2789 EXPECT_TRUE(SetCookie(cm.get(), http_www_foo_.url(), "X=Y; path=/")); 2670 EXPECT_TRUE(SetCookie(cm.get(), http_www_foo_.url(), "X=Y; path=/"));
2790 2671
2791 ASSERT_EQ(0, store->flush_count()); 2672 ASSERT_EQ(0, store->flush_count());
(...skipping 665 matching lines...) Expand 10 before | Expand all | Expand 10 after
3457 monster()->AddCallbackForCookie( 3338 monster()->AddCallbackForCookie(
3458 test_url_, "abc", 3339 test_url_, "abc",
3459 base::Bind(&RecordCookieChanges, &cookies1, nullptr))); 3340 base::Bind(&RecordCookieChanges, &cookies1, nullptr)));
3460 SetCookie(monster(), test_url_, "abc=def"); 3341 SetCookie(monster(), test_url_, "abc=def");
3461 base::RunLoop().RunUntilIdle(); 3342 base::RunLoop().RunUntilIdle();
3462 EXPECT_EQ(1U, cookies0.size()); 3343 EXPECT_EQ(1U, cookies0.size());
3463 EXPECT_EQ(1U, cookies0.size()); 3344 EXPECT_EQ(1U, cookies0.size());
3464 } 3345 }
3465 3346
3466 } // namespace net 3347 } // namespace net
OLDNEW
« no previous file with comments | « net/cookies/cookie_monster.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698