blob: edeb315806aad72bab91b522a5d079c5cc7394c9 [file] [log] [blame]
// 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);
}