# 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'
TIME = 'SHORT'
NAME = 'network_WiFi_RoamSuspendSSID.none'
TEST_TYPE = 'Server'
DOC = """
This test verifies that the connection manager connects to a
previously connected network on resume from suspend when an
SSID disappears during suspend.

"""

from autotest_lib.server.cros.network import hostap_config


def run(machine):
    mode = hostap_config.HostapConfig.MODE_11N_MIXED
    ap_config0 = hostap_config.HostapConfig(channel=1, mode=mode)
    ap_config1 = hostap_config.HostapConfig(channel=36, mode=mode)
    job.run_test('network_WiFi_RoamSuspendSSID',
                 tag=NAME.split('.')[1],
                 host=hosts.create_host(machine),
                 raw_cmdline_args=args,
                 additional_params=(ap_config0, ap_config1))


parallel_simple(run, machines)
