1// Copyright 2014 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 "android_webview/browser/aw_cookie_access_policy.h" 6 7#include "testing/gtest/include/gtest/gtest.h" 8 9class GURL; 10 11using android_webview::AwStaticCookiePolicy; 12using testing::Test; 13 14class AwStaticCookiePolicyTest : public Test { 15 public: 16 static const GURL kUrlFirstParty; 17 static const GURL kUrlThirdParty; 18 19 AwStaticCookiePolicyTest() {} 20 21 void expectFirstPartyAccess(const AwStaticCookiePolicy& policy, 22 bool expectedResult) { 23 EXPECT_EQ(expectedResult, policy.AllowSet(kUrlFirstParty, kUrlFirstParty)); 24 EXPECT_EQ(expectedResult, policy.AllowGet(kUrlFirstParty, kUrlFirstParty)); 25 } 26 27 void expectThirdPartyAccess(const AwStaticCookiePolicy& policy, 28 bool expectedResult) { 29 EXPECT_EQ(expectedResult, policy.AllowSet(kUrlFirstParty, kUrlThirdParty)); 30 EXPECT_EQ(expectedResult, policy.AllowGet(kUrlFirstParty, kUrlThirdParty)); 31 } 32}; 33 34const GURL AwStaticCookiePolicyTest::kUrlFirstParty = 35 GURL("http://first.example"); 36const GURL AwStaticCookiePolicyTest::kUrlThirdParty = 37 GURL("http://third.example"); 38 39TEST_F(AwStaticCookiePolicyTest, BlockAllCookies) { 40 AwStaticCookiePolicy policy(false /* allow_cookies */, 41 false /* allow_third_party_cookies */); 42 expectFirstPartyAccess(policy, false); 43 expectThirdPartyAccess(policy, false); 44} 45 46TEST_F(AwStaticCookiePolicyTest, BlockAllCookiesWithThirdPartySet) { 47 AwStaticCookiePolicy policy(false /* allow_cookies */, 48 true /* allow_third_party_cookies */); 49 expectFirstPartyAccess(policy, false); 50 expectThirdPartyAccess(policy, false); 51} 52 53TEST_F(AwStaticCookiePolicyTest, FirstPartyCookiesOnly) { 54 AwStaticCookiePolicy policy(true /* allow_cookies */, 55 false /* allow_third_party_cookies */); 56 expectFirstPartyAccess(policy, true); 57 expectThirdPartyAccess(policy, false); 58} 59 60TEST_F(AwStaticCookiePolicyTest, AllowAllCookies) { 61 AwStaticCookiePolicy policy(true /* allow_cookies */, 62 true /* allow_third_party_cookies */); 63 expectFirstPartyAccess(policy, true); 64 expectThirdPartyAccess(policy, true); 65} 66 67