# 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.

AUTHOR = 'scunningham'
NAME = 'policy_CookiesSessionOnlyForUrls'
TIME = 'SHORT'
TEST_CATEGORY = 'Functional'
TEST_CLASS = 'enterprise'
TEST_TYPE = 'client'

DOC = '''
Verify effects of CookiesSessionOnlyForUrls policy.

This test verifies the effect of the CookiesSessionOnlyForUrls user policy on
Chrome OS client behavior, when DefaultCookiesSetting=2 (ie, block cookies by
default). It exercises a set of valid policy values using three unique test
cases: UrlIsIn_Allow, UrlNotIn_Block, and NotSet_Block. See the test file for
a full description of what each test case does.

The test case shall pass iff the browser allows cookie storage for a visited
page whose URL matches any of the patterns in CookiesSessionOnlyForUrls,
and blocks cookie storage if the policy does not contain a matching
pattern. It shall fail if the browser does not enforce this behavior.

This control file allows CloudDPC E2E tests to run any test case defined in
this test via command-line.

'''

args_dict = utils.args_to_dict(args)

job.run_test('policy_CookiesSessionOnlyForUrls', **args_dict)
