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

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

Issue 1393193005: Implement $Secure- cookie prefix (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove ContentBrowserClient method Created 5 years, 2 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 (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_store_unittest.h" 5 #include "net/cookies/cookie_store_unittest.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 return new CookieMonster(NULL, NULL); 94 return new CookieMonster(NULL, NULL);
95 } 95 }
96 96
97 static const bool is_cookie_monster = true; 97 static const bool is_cookie_monster = true;
98 static const bool supports_http_only = true; 98 static const bool supports_http_only = true;
99 static const bool supports_non_dotted_domains = true; 99 static const bool supports_non_dotted_domains = true;
100 static const bool preserves_trailing_dots = true; 100 static const bool preserves_trailing_dots = true;
101 static const bool filters_schemes = true; 101 static const bool filters_schemes = true;
102 static const bool has_path_prefix_bug = false; 102 static const bool has_path_prefix_bug = false;
103 static const int creation_time_granularity_in_ms = 0; 103 static const int creation_time_granularity_in_ms = 0;
104 static const bool enforces_prefixes = true;
104 }; 105 };
105 106
106 INSTANTIATE_TYPED_TEST_CASE_P(CookieMonster, 107 INSTANTIATE_TYPED_TEST_CASE_P(CookieMonster,
107 CookieStoreTest, 108 CookieStoreTest,
108 CookieMonsterTestTraits); 109 CookieMonsterTestTraits);
109 110
110 INSTANTIATE_TYPED_TEST_CASE_P(CookieMonster, 111 INSTANTIATE_TYPED_TEST_CASE_P(CookieMonster,
111 MultiThreadedCookieStoreTest, 112 MultiThreadedCookieStoreTest,
112 CookieMonsterTestTraits); 113 CookieMonsterTestTraits);
113 114
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 const std::string& path, 155 const std::string& path,
155 const base::Time& expiration_time, 156 const base::Time& expiration_time,
156 bool secure, 157 bool secure,
157 bool http_only, 158 bool http_only,
158 bool first_party_only, 159 bool first_party_only,
159 CookiePriority priority) { 160 CookiePriority priority) {
160 DCHECK(cm); 161 DCHECK(cm);
161 ResultSavingCookieCallback<bool> callback; 162 ResultSavingCookieCallback<bool> callback;
162 cm->SetCookieWithDetailsAsync( 163 cm->SetCookieWithDetailsAsync(
163 url, name, value, domain, path, expiration_time, secure, http_only, 164 url, name, value, domain, path, expiration_time, secure, http_only,
164 first_party_only, priority, 165 first_party_only, false /* enforce prefixes */, priority,
165 base::Bind(&ResultSavingCookieCallback<bool>::Run, 166 base::Bind(&ResultSavingCookieCallback<bool>::Run,
166 base::Unretained(&callback))); 167 base::Unretained(&callback)));
167 RunFor(kTimeout); 168 RunFor(kTimeout);
168 EXPECT_TRUE(callback.did_run()); 169 EXPECT_TRUE(callback.did_run());
169 return callback.result(); 170 return callback.result();
170 } 171 }
171 172
172 bool SetAllCookies(CookieMonster* cm, const CookieList& list) { 173 bool SetAllCookies(CookieMonster* cm, const CookieList& list) {
173 DCHECK(cm); 174 DCHECK(cm);
174 ResultSavingCookieCallback<bool> callback; 175 ResultSavingCookieCallback<bool> callback;
(...skipping 485 matching lines...) Expand 10 before | Expand all | Expand 10 after
660 cookie_monster, 661 cookie_monster,
661 delete_begin, 662 delete_begin,
662 delete_end, 663 delete_end,
663 callback) { 664 callback) {
664 cookie_monster->DeleteAllCreatedBetweenAsync(delete_begin, delete_end, 665 cookie_monster->DeleteAllCreatedBetweenAsync(delete_begin, delete_end,
665 callback->AsCallback()); 666 callback->AsCallback());
666 } 667 }
667 ACTION_P3(SetCookieWithDetailsAction, cookie_monster, cc, callback) { 668 ACTION_P3(SetCookieWithDetailsAction, cookie_monster, cc, callback) {
668 cookie_monster->SetCookieWithDetailsAsync( 669 cookie_monster->SetCookieWithDetailsAsync(
669 cc.url, cc.name, cc.value, cc.domain, cc.path, cc.expiration_time, 670 cc.url, cc.name, cc.value, cc.domain, cc.path, cc.expiration_time,
670 cc.secure, cc.http_only, cc.first_party_only, cc.priority, 671 cc.secure, cc.http_only, cc.first_party_only,
671 callback->AsCallback()); 672 false /* enforce prefixes */, cc.priority, callback->AsCallback());
672 } 673 }
673 674
674 ACTION_P2(GetAllCookiesAction, cookie_monster, callback) { 675 ACTION_P2(GetAllCookiesAction, cookie_monster, callback) {
675 cookie_monster->GetAllCookiesAsync(callback->AsCallback()); 676 cookie_monster->GetAllCookiesAsync(callback->AsCallback());
676 } 677 }
677 678
678 ACTION_P3(DeleteAllForHostAction, cookie_monster, url, callback) { 679 ACTION_P3(DeleteAllForHostAction, cookie_monster, url, callback) {
679 cookie_monster->DeleteAllForHostAsync(url, callback->AsCallback()); 680 cookie_monster->DeleteAllForHostAsync(url, callback->AsCallback());
680 } 681 }
681 682
(...skipping 1737 matching lines...) Expand 10 before | Expand all | Expand 10 after
2419 std::string value = "B"; 2420 std::string value = "B";
2420 std::string domain = std::string(); 2421 std::string domain = std::string();
2421 std::string path = "/foo"; 2422 std::string path = "/foo";
2422 base::Time expiration_time = base::Time(); 2423 base::Time expiration_time = base::Time();
2423 bool secure = false; 2424 bool secure = false;
2424 bool http_only = false; 2425 bool http_only = false;
2425 bool first_party_only = false; 2426 bool first_party_only = false;
2426 CookiePriority priority = COOKIE_PRIORITY_DEFAULT; 2427 CookiePriority priority = COOKIE_PRIORITY_DEFAULT;
2427 cm->SetCookieWithDetailsAsync( 2428 cm->SetCookieWithDetailsAsync(
2428 url, name, value, domain, path, expiration_time, secure, http_only, 2429 url, name, value, domain, path, expiration_time, secure, http_only,
2429 first_party_only, priority, 2430 first_party_only, false /* enforce prefixes */, priority,
2430 base::Bind(&ResultSavingCookieCallback<bool>::Run, 2431 base::Bind(&ResultSavingCookieCallback<bool>::Run,
2431 base::Unretained(callback))); 2432 base::Unretained(callback)));
2432 } 2433 }
2433 2434
2434 void DeleteAllCreatedBetweenTask(CookieMonster* cm, 2435 void DeleteAllCreatedBetweenTask(CookieMonster* cm,
2435 const base::Time& delete_begin, 2436 const base::Time& delete_begin,
2436 const base::Time& delete_end, 2437 const base::Time& delete_end,
2437 ResultSavingCookieCallback<int>* callback) { 2438 ResultSavingCookieCallback<int>* callback) {
2438 cm->DeleteAllCreatedBetweenAsync( 2439 cm->DeleteAllCreatedBetweenAsync(
2439 delete_begin, delete_end, 2440 delete_begin, delete_end,
(...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after
2894 histograms.ExpectTotalCount(cookie_source_histogram, 5); 2895 histograms.ExpectTotalCount(cookie_source_histogram, 5);
2895 2896
2896 // Set a non-Secure cookie on a non-cryptographic scheme. 2897 // Set a non-Secure cookie on a non-cryptographic scheme.
2897 EXPECT_TRUE(SetCookie(cm.get(), url_google_, "H=I; path=/")); 2898 EXPECT_TRUE(SetCookie(cm.get(), url_google_, "H=I; path=/"));
2898 histograms.ExpectTotalCount(cookie_source_histogram, 6); 2899 histograms.ExpectTotalCount(cookie_source_histogram, 6);
2899 histograms.ExpectBucketCount( 2900 histograms.ExpectBucketCount(
2900 cookie_source_histogram, 2901 cookie_source_histogram,
2901 CookieMonster::COOKIE_SOURCE_NONSECURE_COOKIE_NONCRYPTOGRAPHIC_SCHEME, 1); 2902 CookieMonster::COOKIE_SOURCE_NONSECURE_COOKIE_NONCRYPTOGRAPHIC_SCHEME, 1);
2902 } 2903 }
2903 2904
2905 TEST_F(CookieMonsterTest, SecureCookiePrefix) {
2906 scoped_refptr<CookieMonster> cm(new CookieMonster(NULL, NULL));
2907 // A $Secure- cookie must be Secure.
2908 EXPECT_FALSE(SetCookie(cm.get(), url_google_, "$Secure-A=B"));
2909 EXPECT_FALSE(SetCookie(cm.get(), url_google_, "$Secure-A=B; httponly"));
2910
2911 // A typoed prefix does not have to be Secure.
2912 EXPECT_TRUE(SetCookie(cm.get(), url_google_, "$secure-A=B; Secure"));
2913 EXPECT_TRUE(SetCookie(cm.get(), url_google_, "$secure-A=C;"));
2914 EXPECT_TRUE(SetCookie(cm.get(), url_google_, "$SecureA=B; Secure"));
2915 EXPECT_TRUE(SetCookie(cm.get(), url_google_, "$SecureA=C;"));
2916
2917 EXPECT_TRUE(SetCookie(cm.get(), url_google_, "$Secure-A=B; Secure"));
2918 }
2919
2904 class CookieMonsterNotificationTest : public CookieMonsterTest { 2920 class CookieMonsterNotificationTest : public CookieMonsterTest {
2905 public: 2921 public:
2906 CookieMonsterNotificationTest() 2922 CookieMonsterNotificationTest()
2907 : test_url_("http://www.google.com/foo"), 2923 : test_url_("http://www.google.com/foo"),
2908 store_(new MockPersistentCookieStore), 2924 store_(new MockPersistentCookieStore),
2909 monster_(new CookieMonster(store_.get(), NULL)) {} 2925 monster_(new CookieMonster(store_.get(), NULL)) {}
2910 2926
2911 ~CookieMonsterNotificationTest() override {} 2927 ~CookieMonsterNotificationTest() override {}
2912 2928
2913 CookieMonster* monster() { return monster_.get(); } 2929 CookieMonster* monster() { return monster_.get(); }
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
3051 monster()->AddCallbackForCookie( 3067 monster()->AddCallbackForCookie(
3052 test_url_, "abc", 3068 test_url_, "abc",
3053 base::Bind(&RecordCookieChanges, &cookies1, nullptr))); 3069 base::Bind(&RecordCookieChanges, &cookies1, nullptr)));
3054 SetCookie(monster(), test_url_, "abc=def"); 3070 SetCookie(monster(), test_url_, "abc=def");
3055 base::MessageLoop::current()->RunUntilIdle(); 3071 base::MessageLoop::current()->RunUntilIdle();
3056 EXPECT_EQ(1U, cookies0.size()); 3072 EXPECT_EQ(1U, cookies0.size());
3057 EXPECT_EQ(1U, cookies0.size()); 3073 EXPECT_EQ(1U, cookies0.size());
3058 } 3074 }
3059 3075
3060 } // namespace net 3076 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698