blob: 328928d2a653155f393a8dada7bdb9a16889a179 [file] [log] [blame]
# Copyright 2016 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
from autotest_lib.client.common_lib import error
from autotest_lib.client.cros.enterprise import enterprise_policy_base
class policy_BlockThirdPartyCookies(
enterprise_policy_base.EnterprisePolicyTest):
"""
Test effect of BlockThirdPartyCookies policy on Chrome OS behavior.
This test verifies the behaviour and appearance of the 'Block third-party
cookies...' check box setting on the 'chrome://settings page for all valid
values of the BlockThirdPartyCookies user policy: True, False, and Not set.
The corresponding test cases are True_Block, False_Allow, and NotSet_Allow.
"""
version = 1
POLICY_NAME = 'BlockThirdPartyCookies'
TEST_CASES = {
'True_Block': True,
'False_Allow': False,
'NotSet_Allow': None
}
SUPPORTING_POLICIES = {
'DefaultCookiesSetting': 1}
def _test_block_3rd_party_cookies(self, policy_value):
"""
Verify CrOS enforces BlockThirdPartyCookies policy value.
When BlockThirdPartyCookies policy is set true (false), then the
'Block third-party cookies...' check box shall be (un)checked. When
set either True or False, then the check box shall be uneditable.
When Not set, then the check box shall be editable.
@param policy_value: policy value for this case.
@raises: TestFail if setting is incorrectly (un)checked or
(un)editable, based on the policy value.
"""
# Get check box status from the settings page.
setting_pref = 'profile.block_third_party_cookies'
properties = self._get_settings_checkbox_properties(setting_pref)
setting_label = properties[self.SETTING_LABEL]
setting_is_checked = properties[self.SETTING_CHECKED]
setting_is_disabled = properties[self.SETTING_DISABLED]
# Setting shall be checked if policy is set True, unchecked if False.
if policy_value == True and not setting_is_checked:
raise error.TestFail('Block 3rd-party cookies setting should be '
'checked.')
if policy_value == False and setting_is_checked:
raise error.TestFail('Block 3rd-party cookies setting should be '
'unchecked.')
# Setting shall be enabled if policy is Not set, disabled if set.
if policy_value == None:
if setting_is_disabled:
raise error.TestFail('Block 3rd-party cookies setting should '
'be editable.')
else:
if not setting_is_disabled:
raise error.TestFail('Block 3rd-party cookies setting should '
'be uneditable.')
def run_test_case(self, case):
"""
Setup and run the test configured for the specified test case.
@param case: Name of the test case to run.
"""
case_value = self.TEST_CASES[case]
self.setup_case(self.POLICY_NAME, case_value, self.SUPPORTING_POLICIES)
self._test_block_3rd_party_cookies(case_value)