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

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

This test verifies the effect of the NotificationsAllowedForUrls user policy on
Chrome OS client behavior, when DefaultNotificationSetting=2 (i.e., do not allow
notifications). It exercises all valid policy values across three test cases:
SiteAllowed_Show, SiteNotAllowed_Block, 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_NotificationsAllowedForUrls', **args_dict)
