# 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. import logging import connect_machine import pm_errors from autotest_lib.client.cros.cellular import mm1_constants class ConnectCdmaMachine(connect_machine.ConnectMachine): """ ConnectCdmaMachine handles CDMA specific logic that is involved in connecting to a network. """ def _HandleRegisteredState(self): logging.info('ConnectCdmaMachine: Modem is REGISTERED.') assert not self._modem.IsPendingDisconnect() assert not self._modem.IsPendingEnable() assert not self._modem.IsPendingDisable() assert not self._modem.IsPendingRegister() # Check here that the network is activated. The UI should prevent # connecting to an unactivated service, but for tests, we want to be # sure that connect fails. network = self._modem.GetHomeNetwork() if not network.activated: logging.info('ConnectCdmaMachine: Service is not activated. Cannot' ' connect.') self.raise_cb(pm_errors.MMCoreError(pm_errors.MMCoreError.FAILED, 'Service not activated.')) return False logging.info('ConnectCdmaMachine: Setting state to CONNECTING.') reason = mm1_constants.MM_MODEM_STATE_CHANGE_REASON_USER_REQUESTED self._modem.ChangeState(mm1_constants.MM_MODEM_STATE_CONNECTING, reason) return True def _GetModemStateFunctionMap(self): fmap = super(ConnectCdmaMachine, self)._GetModemStateFunctionMap() fmap[mm1_constants.MM_MODEM_STATE_REGISTERED] = \ ConnectCdmaMachine._HandleRegisteredState return fmap