# Copyright 2019 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 = 'timkovich'
TIME = 'SHORT'
NAME = 'policy_GlobalNetworkSettingsServer.AllowOnlyPolicyNetworksToAutoconnect'
TEST_TYPE = 'Server'
# Disable this test until it can be fixed: http://b/170942348
# ATTRIBUTES = 'suite:ent-wificell'
DEPENDENCIES = 'wificell'

DOC = """
This test sets up a policy and user defined network. The
GlobalNetworkConfiguration policy 'AllowOnlyPolicyNetworksToAutoconnect' is
set to True. The DUT is disconnected from the network. Only the policy defined
network should automatically reconnect.

"""

def run(machine):
    host = hosts.create_host(machine)
    job.run_test('policy_GlobalNetworkSettingsServer',
                 raw_cmdline_args=args,
                 host=host,
                 gnc_settings={'AllowOnlyPolicyNetworksToAutoconnect': True})


parallel_simple(run, machines)
