# 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_PluginsBlockedForUrls'
TIME = 'SHORT'
TEST_CATEGORY = 'General'
TEST_CLASS = 'enterprise'
TEST_TYPE = 'client'

DOC = '''
Verify effect of PluginsBlockedForUrls policy on Chrome OS behavior.

This test verifies the effect of the PluginsBlockedForUrls user policy on
Chrome OS client behavior, when DefaultPluginsSetting=1 (Allow Plugins). It
exercises all valid policy values across three test cases: SiteBlocked_Block,
SiteNotBlocked_Run, and NotSet_Block.

This default 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_PluginsBlockedForUrls', **args_dict)
