# Copyright 2015 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 = 'krishnargv'
NAME = 'policy_ProxySettings'
TIME = 'SHORT'
TEST_CATEGORY = 'General'
TEST_CLASS = 'enterprise'
TEST_TYPE = 'client'

DOC = '''
Verify effects of policy_ProxySettings policy on client behavior.

This test verifies the effect of the ProxySettings user policy on Chrome OS
client behavior. It also tests setting proxies through the
OpenNetworkConfiguration policy.

In general, the test case shall pass if Chrome OS uses the correct proxy,
as specified by the policy value. It fails if the wrong proxy is used.

'''

args_dict = utils.args_to_dict(args)

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