1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "net/base/net_errors.h" 6 #include "net/base/static_cookie_policy.h" 7 #include "testing/gtest/include/gtest/gtest.h" 8 #include "url/gurl.h" 9 10 namespace net { 11 12 class StaticCookiePolicyTest : public testing::Test { 13 public: 14 StaticCookiePolicyTest() 15 : url_google_("http://www.google.izzle"), 16 url_google_secure_("https://www.google.izzle"), 17 url_google_mail_("http://mail.google.izzle"), 18 url_google_analytics_("http://www.googleanalytics.izzle") { 19 } 20 void SetPolicyType(StaticCookiePolicy::Type type) { 21 policy_.set_type(type); 22 } 23 int CanGetCookies(const GURL& url, const GURL& first_party) { 24 return policy_.CanGetCookies(url, first_party); 25 } 26 int CanSetCookie(const GURL& url, const GURL& first_party) { 27 return policy_.CanSetCookie(url, first_party); 28 } 29 protected: 30 StaticCookiePolicy policy_; 31 GURL url_google_; 32 GURL url_google_secure_; 33 GURL url_google_mail_; 34 GURL url_google_analytics_; 35 }; 36 37 TEST_F(StaticCookiePolicyTest, DefaultPolicyTest) { 38 EXPECT_EQ(OK, CanGetCookies(url_google_, url_google_)); 39 EXPECT_EQ(OK, CanGetCookies(url_google_, url_google_secure_)); 40 EXPECT_EQ(OK, CanGetCookies(url_google_, url_google_mail_)); 41 EXPECT_EQ(OK, CanGetCookies(url_google_, url_google_analytics_)); 42 EXPECT_EQ(OK, CanGetCookies(url_google_, GURL())); 43 44 EXPECT_EQ(OK, CanSetCookie(url_google_, url_google_)); 45 EXPECT_EQ(OK, CanSetCookie(url_google_, url_google_secure_)); 46 EXPECT_EQ(OK, CanSetCookie(url_google_, url_google_mail_)); 47 EXPECT_EQ(OK, CanSetCookie(url_google_, url_google_analytics_)); 48 EXPECT_EQ(OK, CanSetCookie(url_google_, GURL())); 49 } 50 51 TEST_F(StaticCookiePolicyTest, AllowAllCookiesTest) { 52 SetPolicyType(StaticCookiePolicy::ALLOW_ALL_COOKIES); 53 54 EXPECT_EQ(OK, CanGetCookies(url_google_, url_google_)); 55 EXPECT_EQ(OK, CanGetCookies(url_google_, url_google_secure_)); 56 EXPECT_EQ(OK, CanGetCookies(url_google_, url_google_mail_)); 57 EXPECT_EQ(OK, CanGetCookies(url_google_, url_google_analytics_)); 58 EXPECT_EQ(OK, CanGetCookies(url_google_, GURL())); 59 60 EXPECT_EQ(OK, CanSetCookie(url_google_, url_google_)); 61 EXPECT_EQ(OK, CanSetCookie(url_google_, url_google_secure_)); 62 EXPECT_EQ(OK, CanSetCookie(url_google_, url_google_mail_)); 63 EXPECT_EQ(OK, CanSetCookie(url_google_, url_google_analytics_)); 64 EXPECT_EQ(OK, CanSetCookie(url_google_, GURL())); 65 } 66 67 TEST_F(StaticCookiePolicyTest, BlockSettingThirdPartyCookiesTest) { 68 SetPolicyType(StaticCookiePolicy::BLOCK_SETTING_THIRD_PARTY_COOKIES); 69 70 EXPECT_EQ(OK, CanGetCookies(url_google_, url_google_)); 71 EXPECT_EQ(OK, CanGetCookies(url_google_, url_google_secure_)); 72 EXPECT_EQ(OK, CanGetCookies(url_google_, url_google_mail_)); 73 EXPECT_EQ(OK, CanGetCookies(url_google_, url_google_analytics_)); 74 EXPECT_EQ(OK, CanGetCookies(url_google_, GURL())); 75 76 EXPECT_EQ(OK, CanSetCookie(url_google_, url_google_)); 77 EXPECT_EQ(OK, CanSetCookie(url_google_, url_google_secure_)); 78 EXPECT_EQ(OK, CanSetCookie(url_google_, url_google_mail_)); 79 EXPECT_NE(OK, CanSetCookie(url_google_, url_google_analytics_)); 80 EXPECT_EQ(OK, CanSetCookie(url_google_, GURL())); 81 } 82 83 TEST_F(StaticCookiePolicyTest, BlockAllThirdPartyCookiesTest) { 84 SetPolicyType(StaticCookiePolicy::BLOCK_ALL_THIRD_PARTY_COOKIES); 85 86 EXPECT_EQ(OK, CanGetCookies(url_google_, url_google_)); 87 EXPECT_EQ(OK, CanGetCookies(url_google_, url_google_secure_)); 88 EXPECT_EQ(OK, CanGetCookies(url_google_, url_google_mail_)); 89 EXPECT_NE(OK, CanGetCookies(url_google_, url_google_analytics_)); 90 EXPECT_EQ(OK, CanGetCookies(url_google_, GURL())); 91 92 EXPECT_EQ(OK, CanSetCookie(url_google_, url_google_)); 93 EXPECT_EQ(OK, CanSetCookie(url_google_, url_google_secure_)); 94 EXPECT_EQ(OK, CanSetCookie(url_google_, url_google_mail_)); 95 EXPECT_NE(OK, CanSetCookie(url_google_, url_google_analytics_)); 96 EXPECT_EQ(OK, CanSetCookie(url_google_, GURL())); 97 } 98 99 TEST_F(StaticCookiePolicyTest, BlockAllCookiesTest) { 100 SetPolicyType(StaticCookiePolicy::BLOCK_ALL_COOKIES); 101 102 EXPECT_NE(OK, CanGetCookies(url_google_, url_google_)); 103 EXPECT_NE(OK, CanGetCookies(url_google_, url_google_secure_)); 104 EXPECT_NE(OK, CanGetCookies(url_google_, url_google_mail_)); 105 EXPECT_NE(OK, CanGetCookies(url_google_, url_google_analytics_)); 106 EXPECT_NE(OK, CanGetCookies(url_google_, GURL())); 107 108 EXPECT_NE(OK, CanSetCookie(url_google_, url_google_)); 109 EXPECT_NE(OK, CanSetCookie(url_google_, url_google_secure_)); 110 EXPECT_NE(OK, CanSetCookie(url_google_, url_google_mail_)); 111 EXPECT_NE(OK, CanSetCookie(url_google_, url_google_analytics_)); 112 EXPECT_NE(OK, CanSetCookie(url_google_, GURL())); 113 } 114 115 } // namespace net 116