Home | History | Annotate | Download | only in base
      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