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
10namespace net {
11
12class 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
37TEST_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
51TEST_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
67TEST_F(StaticCookiePolicyTest, BlockAllThirdPartyCookiesTest) {
68  SetPolicyType(StaticCookiePolicy::BLOCK_ALL_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_NE(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
83TEST_F(StaticCookiePolicyTest, BlockAllCookiesTest) {
84  SetPolicyType(StaticCookiePolicy::BLOCK_ALL_COOKIES);
85
86  EXPECT_NE(OK, CanGetCookies(url_google_, url_google_));
87  EXPECT_NE(OK, CanGetCookies(url_google_, url_google_secure_));
88  EXPECT_NE(OK, CanGetCookies(url_google_, url_google_mail_));
89  EXPECT_NE(OK, CanGetCookies(url_google_, url_google_analytics_));
90  EXPECT_NE(OK, CanGetCookies(url_google_, GURL()));
91
92  EXPECT_NE(OK, CanSetCookie(url_google_, url_google_));
93  EXPECT_NE(OK, CanSetCookie(url_google_, url_google_secure_));
94  EXPECT_NE(OK, CanSetCookie(url_google_, url_google_mail_));
95  EXPECT_NE(OK, CanSetCookie(url_google_, url_google_analytics_));
96  EXPECT_NE(OK, CanSetCookie(url_google_, GURL()));
97}
98
99}  // namespace net
100