# 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_PopupsBlockedForUrls.1url_block'
ATTRIBUTES = 'suite:ent-nightly, suite:policy'
TIME = 'SHORT'
TEST_CATEGORY = 'General'
TEST_CLASS = 'enterprise'
TEST_TYPE = 'client'

DOC = '''
Verify effects of PopupsBlockedForUrls policy.

This test case verifies the behavior of Chrome OS when PopupsBlockedForUrls
user policy is set to a single URL pattern, and DefaultPopupsSetting policy
is set to 1 (allow by default).

The test case shall pass iff the browser blocks popups for any test page with
an URL that matches any of the URL patterns specified in PopupsBlockedForUrls,
and allows popups on any page with an URL that does not match. It shall fail
if the browser does not enforce this behavior.

'''

job.run_test('policy_PopupsBlockedForUrls', case='1Url_Block')
