# Copyright (c) 2013 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 = 'wiley, pstew, quiche'
NAME = 'network_WiFi_SecChange'
TIME = 'SHORT'
TEST_TYPE = 'Server'
ATTRIBUTES = "suite:wifi_matfunc, suite:wifi_matfunc_bcm4356, suite:wifi_matfunc_intel7265, suite:wifi_matfunc_marvell8897"
SUITE = ('wifi_matfunc, wifi_matfunc_bcm4356, wifi_matfunc_marvell8897,'
         'wifi_matfunc_intel7265')
DEPENDENCIES = 'wificell'

DOC = """
This test checks that we can connect to a BSS after it changes security modes.
In particular, we change the security of a BSS from WPA to open and assert that
we can continue to connect.
"""


def run(machine):
    host = hosts.create_host(machine)
    job.run_test('network_WiFi_SecChange',
                 host=host,
                 raw_cmdline_args=args)


parallel_simple(run, machines)
