# Copyright (c) 2012 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 = "ChromeOS Team"
NAME = "cellular_Smoke.pseudomodem"
PURPOSE = "Verify 3G modem can connect to the network."
CRITERIA = """
This test will fail if one of the following conditions occur:
  - 3G modem fails to connect to network
  - the modem is not left in a working state
"""
ATTRIBUTES = "suite:cellular_pseudomodem"
TIME = "SHORT"
TEST_CATEGORY = "Functional"
TEST_CLASS = "network"
TEST_TYPE = "client"
DOC = """
  Tests that 3G modem can connect to the network

  The test attempts to connect using the 3G network. The test then
  disconnects from the network, and verifies that the modem still
  responds to modem manager DBUS API calls.  It repeats the
  connect/disconnect sequence several times.
"""

from autotest_lib.client.cros.cellular import test_environment

# 3GPP
test_env = test_environment.CellularPseudoMMTestEnvironment(
        pseudomm_args=({'family': '3GPP'},))
job.run_test('cellular_Smoke', tag='pseudomodem_3GPP', test_env=test_env)

# CDMA
test_env = test_environment.CellularPseudoMMTestEnvironment(
        pseudomm_args=({'family': 'CDMA'},))
job.run_test('cellular_Smoke', tag='pseudomodem_CDMA', test_env=test_env)
