1 // Copyright 2011 The Chromium Authors
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/cookies/static_cookie_policy.h"
6 #include "net/base/net_errors.h"
7 #include "net/cookies/site_for_cookies.h"
8 #include "net/test/gtest_util.h"
9 #include "testing/gmock/include/gmock/gmock.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11 #include "url/gurl.h"
12
13 using net::test::IsOk;
14
15 namespace net {
16
17 class StaticCookiePolicyTest : public testing::Test {
18 public:
StaticCookiePolicyTest()19 StaticCookiePolicyTest()
20 : url_google_("http://www.google.izzle"),
21 url_google_secure_("https://www.google.izzle"),
22 url_google_mail_("http://mail.google.izzle"),
23 url_google_analytics_("http://www.googleanalytics.izzle") {}
SetPolicyType(StaticCookiePolicy::Type type)24 void SetPolicyType(StaticCookiePolicy::Type type) { policy_.set_type(type); }
CanAccessCookies(const GURL & url,const GURL & first_party)25 int CanAccessCookies(const GURL& url, const GURL& first_party) {
26 return policy_.CanAccessCookies(url,
27 net::SiteForCookies::FromUrl(first_party));
28 }
29
30 protected:
31 StaticCookiePolicy policy_;
32 GURL url_google_;
33 GURL url_google_secure_;
34 GURL url_google_mail_;
35 GURL url_google_analytics_;
36 };
37
TEST_F(StaticCookiePolicyTest,DefaultPolicyTest)38 TEST_F(StaticCookiePolicyTest, DefaultPolicyTest) {
39 EXPECT_THAT(CanAccessCookies(url_google_, url_google_), IsOk());
40 EXPECT_THAT(CanAccessCookies(url_google_, url_google_secure_), IsOk());
41 EXPECT_THAT(CanAccessCookies(url_google_, url_google_mail_), IsOk());
42 EXPECT_THAT(CanAccessCookies(url_google_, url_google_analytics_), IsOk());
43 EXPECT_THAT(CanAccessCookies(url_google_, GURL()), IsOk());
44 }
45
TEST_F(StaticCookiePolicyTest,AllowAllCookiesTest)46 TEST_F(StaticCookiePolicyTest, AllowAllCookiesTest) {
47 SetPolicyType(StaticCookiePolicy::ALLOW_ALL_COOKIES);
48
49 EXPECT_THAT(CanAccessCookies(url_google_, url_google_), IsOk());
50 EXPECT_THAT(CanAccessCookies(url_google_, url_google_secure_), IsOk());
51 EXPECT_THAT(CanAccessCookies(url_google_, url_google_mail_), IsOk());
52 EXPECT_THAT(CanAccessCookies(url_google_, url_google_analytics_), IsOk());
53 EXPECT_THAT(CanAccessCookies(url_google_, GURL()), IsOk());
54 }
55
TEST_F(StaticCookiePolicyTest,BlockAllThirdPartyCookiesTest)56 TEST_F(StaticCookiePolicyTest, BlockAllThirdPartyCookiesTest) {
57 SetPolicyType(StaticCookiePolicy::BLOCK_ALL_THIRD_PARTY_COOKIES);
58
59 EXPECT_THAT(CanAccessCookies(url_google_, url_google_), IsOk());
60 EXPECT_THAT(CanAccessCookies(url_google_, url_google_mail_), IsOk());
61 EXPECT_NE(OK, CanAccessCookies(url_google_, url_google_secure_));
62 EXPECT_NE(OK, CanAccessCookies(url_google_secure_, url_google_));
63 EXPECT_NE(OK, CanAccessCookies(url_google_, url_google_analytics_));
64 EXPECT_NE(OK, CanAccessCookies(url_google_, GURL()));
65 }
66
TEST_F(StaticCookiePolicyTest,BlockAllCookiesTest)67 TEST_F(StaticCookiePolicyTest, BlockAllCookiesTest) {
68 SetPolicyType(StaticCookiePolicy::BLOCK_ALL_COOKIES);
69
70 EXPECT_NE(OK, CanAccessCookies(url_google_, url_google_));
71 EXPECT_NE(OK, CanAccessCookies(url_google_, url_google_secure_));
72 EXPECT_NE(OK, CanAccessCookies(url_google_, url_google_mail_));
73 EXPECT_NE(OK, CanAccessCookies(url_google_, url_google_analytics_));
74 EXPECT_NE(OK, CanAccessCookies(url_google_, GURL()));
75 }
76
77 } // namespace net
78