summaryrefslogtreecommitdiffstats
path: root/android_webview/browser/aw_static_cookie_policy_unittest.cc
blob: edeb315806aad72bab91b522a5d079c5cc7394c9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "android_webview/browser/aw_cookie_access_policy.h"

#include "testing/gtest/include/gtest/gtest.h"

class GURL;

using android_webview::AwStaticCookiePolicy;
using testing::Test;

class AwStaticCookiePolicyTest : public Test {
 public:
  static const GURL kUrlFirstParty;
  static const GURL kUrlThirdParty;

  AwStaticCookiePolicyTest() {}

  void expectFirstPartyAccess(const AwStaticCookiePolicy& policy,
                              bool expectedResult) {
    EXPECT_EQ(expectedResult, policy.AllowSet(kUrlFirstParty, kUrlFirstParty));
    EXPECT_EQ(expectedResult, policy.AllowGet(kUrlFirstParty, kUrlFirstParty));
  }

  void expectThirdPartyAccess(const AwStaticCookiePolicy& policy,
                              bool expectedResult) {
    EXPECT_EQ(expectedResult, policy.AllowSet(kUrlFirstParty, kUrlThirdParty));
    EXPECT_EQ(expectedResult, policy.AllowGet(kUrlFirstParty, kUrlThirdParty));
  }
};

const GURL AwStaticCookiePolicyTest::kUrlFirstParty =
    GURL("http://first.example");
const GURL AwStaticCookiePolicyTest::kUrlThirdParty =
    GURL("http://third.example");

TEST_F(AwStaticCookiePolicyTest, BlockAllCookies) {
  AwStaticCookiePolicy policy(false /* allow_cookies */,
                              false /* allow_third_party_cookies */);
  expectFirstPartyAccess(policy, false);
  expectThirdPartyAccess(policy, false);
}

TEST_F(AwStaticCookiePolicyTest, BlockAllCookiesWithThirdPartySet) {
  AwStaticCookiePolicy policy(false /* allow_cookies */,
                              true  /* allow_third_party_cookies */);
  expectFirstPartyAccess(policy, false);
  expectThirdPartyAccess(policy, false);
}

TEST_F(AwStaticCookiePolicyTest, FirstPartyCookiesOnly) {
  AwStaticCookiePolicy policy(true  /* allow_cookies */,
                              false /* allow_third_party_cookies */);
  expectFirstPartyAccess(policy, true);
  expectThirdPartyAccess(policy, false);
}

TEST_F(AwStaticCookiePolicyTest, AllowAllCookies) {
  AwStaticCookiePolicy policy(true /* allow_cookies */,
                              true /* allow_third_party_cookies */);
  expectFirstPartyAccess(policy, true);
  expectThirdPartyAccess(policy, true);
}