# 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_Roam.wifi_roamNone'
TIME = 'SHORT'
TEST_TYPE = 'Server'
ATTRIBUTES = ('suite:wifi_matfunc')
DEPENDENCIES = 'wificell'

DOC = """
This test attempts to verify that we can roam between two APs in full
view of the DUT.
"""


from autotest_lib.client.common_lib.cros.network import xmlrpc_datatypes
from autotest_lib.server.cros.network import hostap_config


def run(machine):
    configuration = (hostap_config.HostapConfig(channel=1),
                     hostap_config.HostapConfig(
                             channel=48,
                             mode=hostap_config.HostapConfig.MODE_11A),
                     xmlrpc_datatypes.AssociationParameters())
    host = hosts.create_host(machine)
    job.run_test('network_WiFi_Roam',
                 tag=NAME.split('.')[1],
                 host=host,
                 raw_cmdline_args=args,
                 additional_params=configuration)


parallel_simple(run, machines)
