blob: 9f078b358aa275d5ecc978e7badd2d919abe5652 [file] [log] [blame]
#!/usr/bin/env python3.4
#
# Copyright 2017 - Google
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""
Test Script for Telephony Pre Check In Sanity
"""
from acts import signals
from acts.test_decorators import test_tracker_info
from acts_contrib.test_utils.tel.TelephonyBaseTest import TelephonyBaseTest
from acts_contrib.test_utils.tel.tel_defines import CAPABILITY_WFC
from acts_contrib.test_utils.tel.tel_defines import DEFAULT_DEVICE_PASSWORD
from acts_contrib.test_utils.tel.tel_defines import WFC_MODE_WIFI_PREFERRED
from acts_contrib.test_utils.tel.tel_bootloader_utils import fastboot_wipe
from acts_contrib.test_utils.tel.tel_bootloader_utils import reset_device_password
from acts_contrib.test_utils.tel.tel_lookup_tables import operator_capabilities
from acts_contrib.test_utils.tel.tel_phone_setup_utils import phone_setup_csfb
from acts_contrib.test_utils.tel.tel_phone_setup_utils import phone_setup_iwlan
from acts_contrib.test_utils.tel.tel_phone_setup_utils import phone_setup_voice_3g
from acts_contrib.test_utils.tel.tel_phone_setup_utils import phone_setup_voice_2g
from acts_contrib.test_utils.tel.tel_test_utils import toggle_airplane_mode_by_adb
from acts_contrib.test_utils.tel.tel_test_utils import wait_for_sim_ready_by_adb
from TelLiveEmergencyBase import TelLiveEmergencyBase
class TelLiveEmergencyTest(TelLiveEmergencyBase):
""" Tests Begin """
@test_tracker_info(uuid="fe75ba2c-e4ea-4fc1-881b-97e7a9a7f48e")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_by_emergency_dialer(self):
"""Test emergency call with emergency dialer in user account.
Add system emergency number list with fake emergency number.
Use the emergency dialer to call fake emergency number.
Verify DUT has in call activity.
Hung up fake emergency call in ringing.
Bring DUT to normal state and make regular call.
Returns:
True if success.
False if failed.
"""
toggle_airplane_mode_by_adb(self.log, self.dut, False)
return self.fake_emergency_call_test() and self.check_normal_call()
@test_tracker_info(uuid="eb1fa042-518a-4ddb-8e9f-16a6c39c49f1")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_by_emergency_dialer_csfb(self):
"""Test emergency call with emergency dialer in user account.
Configure DUT in CSFB
Add system emergency number list with fake emergency number.
Turn off emergency call IMS first.
Use the emergency dialer to call fake emergency number.
Verify DUT has in call activity.
Bring DUT to normal state and make regular call.
Returns:
True if success.
False if failed.
"""
if not phone_setup_csfb(self.log, self.dut):
return False
self.set_ims_first("false")
return self.fake_emergency_call_test() and self.check_normal_call()
@test_tracker_info(uuid="7a55991a-adc0-432c-b705-8ac9ee249323")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_by_emergency_dialer_3g(self):
"""Test emergency call with emergency dialer in user account.
Configure DUT in 3G
Add a fake emergency number to emergency number list.
Turn off emergency call IMS first.
Use the emergency dialer to call fake emergency number.
Verify DUT has in call activity.
Bring DUT to normal state and make regular call.
Returns:
True if success.
False if failed.
"""
if not phone_setup_voice_3g(self.log, self.dut):
return False
self.set_ims_first("false")
return self.fake_emergency_call_test() and self.check_normal_call()
@test_tracker_info(uuid="cc40611b-6fe5-4952-8bdd-c15d6d995516")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_by_emergency_dialer_2g(self):
"""Test emergency call with emergency dialer in user account.
Configure DUT in 2G
Add system emergency number list with fake emergency number.
Turn off emergency call IMS first.
Use the emergency dialer to call fake emergency number.
Verify DUT has in call activity.
Bring DUT to normal state and make regular call.
Returns:
True if success.
False if failed.
"""
if self.dut_operator != "tmo":
raise signals.TestSkip(
"2G is not supported for carrier %s" % self.dut_operator)
if not phone_setup_voice_2g(self.log, self.dut):
return False
self.set_ims_first("false")
return self.fake_emergency_call_test() and self.check_normal_call()
@test_tracker_info(uuid="a209864c-93fc-455c-aa81-8d3a83f6ad7c")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_by_emergency_dialer_wfc_apm(self):
"""Test emergency call with emergency dialer in user account.
Configure DUT in WFC APM on.
Add system emergency number list with fake emergency number.
Use the emergency dialer to call fake emergency number.
Turn off emergency call IMS first.
Verify DUT has in call activity.
Bring DUT to normal state and make regular call.
Returns:
True if success.
False if failed.
"""
if CAPABILITY_WFC not in operator_capabilities.get(
self.dut_operator, operator_capabilities["default"]):
raise signals.TestSkip(
"WFC is not supported for carrier %s" % self.dut_operator)
if not phone_setup_iwlan(
self.log, self.dut, True, WFC_MODE_WIFI_PREFERRED,
self.wifi_network_ssid, self.wifi_network_pass):
self.dut.log.error("Failed to setup WFC.")
return False
return self.fake_emergency_call_test() and self.check_normal_call()
@test_tracker_info(uuid="be654073-0107-4b67-a5df-f25ebec7d93e")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_by_emergency_dialer_wfc_apm_off(self):
"""Test emergency call with emergency dialer in user account.
Configure DUT in WFC APM off.
Add system emergency number list with fake emergency number.
Use the emergency dialer to call fake emergency number.
Verify DUT has in call activity.
Bring DUT to normal state and make regular call.
Returns:
True if success.
False if failed.
"""
if CAPABILITY_WFC not in operator_capabilities.get(
self.dut_operator, operator_capabilities["default"]):
raise signals.TestSkip(
"WFC is not supported for carrier %s" % self.dut_operator)
if self.dut_operator != "tmo":
raise signals.TestSkip(
"WFC in non-APM is not supported for carrier %s" %
self.dut_operator)
if not phone_setup_iwlan(
self.log, self.dut, False, WFC_MODE_WIFI_PREFERRED,
self.wifi_network_ssid, self.wifi_network_pass):
self.dut.log.error("Failed to setup WFC.")
return False
self.set_ims_first("false")
return self.fake_emergency_call_test() and self.check_normal_call()
@test_tracker_info(uuid="8a0978a8-d93e-4f6a-99fe-d0e28bf1be2a")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_by_dialer(self):
"""Test emergency call with dialer.
Add system emergency number list with fake emergency number.
Use dialer to call fake emergency number.
Verify DUT has in call activity.
Bring DUT to normal state and make regular call.
Returns:
True if success.
False if failed.
"""
return self.fake_emergency_call_test(
by_emergency_dialer=False) and self.check_emergency_call_back_mode(
by_emergency_dialer=False)
@test_tracker_info(uuid="2e6fcc75-ff9e-47b1-9ae8-ed6f9966d0f5")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_in_apm(self):
"""Test emergency call with emergency dialer in airplane mode.
Enable airplane mode.
Add system emergency number list with fake emergency number.
Use the emergency dialer to call fake emergency number.
Verify DUT has in call activity.
Bring DUT to normal state and make regular call.
Returns:
True if success.
False if failed.
"""
toggle_airplane_mode_by_adb(self.log, self.dut, True)
return self.fake_emergency_call_test() and self.check_normal_call()
@test_tracker_info(uuid="469bfa60-6e8f-4159-af1f-ab6244073079")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_in_screen_lock(self):
"""Test emergency call with emergency dialer in screen lock phase.
Enable device password and then reboot upto password query window.
Add system emergency number list with fake emergency number.
Use the emergency dialer to call fake emergency number.
Verify DUT has in call activity.
Bring to DUT to normal state and make regular call.
Returns:
True if success.
False if failed.
"""
toggle_airplane_mode_by_adb(self.log, self.dut, False)
reset_device_password(self.dut, DEFAULT_DEVICE_PASSWORD)
if not wait_for_sim_ready_by_adb(self.log, self.dut):
self.dut.log.error("SIM is not ready")
return False
self.dut.reboot(stop_at_lock_screen=True)
return self.fake_emergency_call_test() and self.check_normal_call()
@test_tracker_info(uuid="17401c57-0dc2-49b5-b954-a94dbb2d5ad0")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_in_screen_lock_apm(self):
"""Test emergency call with emergency dialer in screen lock phase.
Enable device password and then reboot upto password query window.
Add system emergency number list with fake emergency number.
Use the emergency dialer to call fake emergency number.
Verify DUT has in call activity.
Bring DUT to normal state and make regular call.
Returns:
True if success.
False if failed.
"""
toggle_airplane_mode_by_adb(self.log, self.dut, True)
reset_device_password(self.dut, DEFAULT_DEVICE_PASSWORD)
self.dut.reboot(stop_at_lock_screen=True)
if not wait_for_sim_ready_by_adb(self.log, self.dut):
self.dut.log.error("SIM is not ready")
return False
return self.fake_emergency_call_test() and self.check_normal_call()
@test_tracker_info(uuid="ccea13ae-6951-4790-a5f7-b5b7a2451c6c")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_in_setupwizard(self):
"""Test emergency call with emergency dialer in setupwizard.
Wipe the device and then reboot upto setupwizard.
Add system emergency number list with fake emergency number.
Use the emergency dialer to call fake emergency number.
Verify DUT has in call activity.
Bring DUT to normal state and make regular call.
Returns:
True if success.
False if failed.
"""
if not fastboot_wipe(self.dut, skip_setup_wizard=False):
return False
if not wait_for_sim_ready_by_adb(self.log, self.dut):
self.dut.log.error("SIM is not ready")
return False
return self.fake_emergency_call_test() and self.check_normal_call()
@test_tracker_info(uuid="b138da45-45fa-4202-8f19-f8e598e535e1")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_by_emergency_dialer_ecbm(self):
"""Test emergency call with emergency dialer in user account.
Add system emergency number list with fake emergency number.
Configure allow_non_emergency_calls_in_ecm_bool true.
Use the emergency dialer to call fake emergency number and hung up before connected.
Verify DUT voice and data in ecbm mode.
Returns:
True if success.
False if failed.
"""
toggle_airplane_mode_by_adb(self.log, self.dut, False)
return self.check_emergency_call_back_mode()
@test_tracker_info(uuid="")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_by_emergency_dialer_csfb_ecbm(self):
"""Test emergency call with emergency dialer in user account.
Configure DUT in CSFB
Add system emergency number list with fake emergency number.
Configure allow_non_emergency_calls_in_ecm_bool true.
Turn off emergency call IMS first.
Use the emergency dialer to call fake emergency number and hung up before connected.
Verify DUT voice and data in ecbm mode.
Returns:
True if success.
False if failed.
"""
if not phone_setup_csfb(self.log, self.dut):
return False
self.set_ims_first("false")
return self.check_emergency_call_back_mode()
@test_tracker_info(uuid="8199eab0-3656-4fc3-8e9c-7063c24f72c9")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_by_emergency_dialer_3g_ecbm(self):
"""Test emergency call with emergency dialer in user account.
Configure DUT in 3G
Add a fake emergency number to emergency number list.
Turn off emergency call IMS first.
Configure allow_non_emergency_calls_in_ecm_bool false.
Use the emergency dialer to call fake emergency number and hung up before connected.
Verify DUT voice and data in ecbm mode.
Returns:
True if success.
False if failed.
"""
if not phone_setup_voice_3g(self.log, self.dut):
return False
self.set_ims_first("false")
return self.check_emergency_call_back_mode()
@test_tracker_info(uuid="6a8ff7e6-29d0-48db-8d27-a7b39aaf4470")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_by_emergency_dialer_2g_ecbm(self):
"""Test emergency call with emergency dialer in user account.
Configure DUT in 2G
Add system emergency number list with fake emergency number.
Turn off emergency call IMS first.
Configure allow_non_emergency_calls_in_ecm_bool false.
Use the emergency dialer to call fake emergency number and hung up before connect.
Verify DUT voice and data in ecbm mode.
Returns:
True if success.
False if failed.
"""
if self.dut_operator != "tmo":
raise signals.TestSkip(
"2G is not supported for carrier %s" % self.dut_operator)
if not phone_setup_voice_2g(self.log, self.dut):
return False
self.set_ims_first("false")
return self.check_emergency_call_back_mode()
@test_tracker_info(uuid="583b89c8-be9d-407b-9491-7cc44b4a9d9a")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_by_emergency_dialer_wfc_apm_ecbm(self):
"""Test emergency call with emergency dialer in user account.
Configure DUT in WFC APM on.
Add system emergency number list with fake emergency number.
Turn off emergency call IMS first.
Configure allow_non_emergency_calls_in_ecm_bool false.
Use the emergency dialer to call fake emergency number and hung up before connect.
Verify DUT voice and data in ecbm mode.
Returns:
True if success.
False if failed.
"""
if CAPABILITY_WFC not in operator_capabilities.get(
self.dut_operator, operator_capabilities["default"]):
raise signals.TestSkip(
"WFC is not supported for carrier %s" % self.dut_operator)
if not phone_setup_iwlan(
self.log, self.dut, True, WFC_MODE_WIFI_PREFERRED,
self.wifi_network_ssid, self.wifi_network_pass):
self.dut.log.error("Failed to setup WFC.")
return False
return self.check_emergency_call_back_mode()
@test_tracker_info(uuid="a5ac18db-58ae-41b0-b6a8-ed1bdfa8447e")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_by_emergency_dialer_wfc_apm_off_ecbm(self):
"""Test emergency call with emergency dialer in user account.
Configure DUT in WFC APM off.
Add system emergency number list with fake emergency number.
Configure allow_non_emergency_calls_in_ecm_bool false.
Use the emergency dialer to call fake emergency number and hung up before connect.
Verify DUT voice and data in ecbm mode.
Returns:
True if success.
False if failed.
"""
if CAPABILITY_WFC not in operator_capabilities.get(
self.dut_operator, operator_capabilities["default"]):
raise signals.TestSkip(
"WFC is not supported for carrier %s" % self.dut_operator)
if self.dut_operator != "tmo":
raise signals.TestSkip(
"WFC in non-APM is not supported for carrier %s" %
self.dut_operator)
if not phone_setup_iwlan(
self.log, self.dut, False, WFC_MODE_WIFI_PREFERRED,
self.wifi_network_ssid, self.wifi_network_pass):
self.dut.log.error("Failed to setup WFC.")
return False
self.set_ims_first("false")
return self.check_emergency_call_back_mode()
@test_tracker_info(uuid="1469db59-36f4-4b01-a05a-35ee60be22bc")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_by_dialer_ecbm(self):
"""Test emergency call with dialer in user account.
Add system emergency number list with fake emergency number.
Configure allow_non_emergency_calls_in_ecm_bool true.
Use the dialer to call fake emergency number and hung up before connected.
Verify DUT voice and data in ecbm mode.
Returns:
True if success.
False if failed.
"""
return self.check_emergency_call_back_mode()
@test_tracker_info(uuid="dca5945d-2847-4662-bab8-583f35a4514e")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_in_apm_ecbm(self):
"""Test emergency call with emergency dialer in airplane mode.
Enable airplane mode.
Add system emergency number list with fake emergency number.
Configure allow_non_emergency_calls_in_ecm_bool true.
Call fake emergency number and hung up before connected.
Verify DUT voice and data in ecbm mode.
Returns:
True if success.
False if failed.
"""
toggle_airplane_mode_by_adb(self.log, self.dut, True)
return self.check_emergency_call_back_mode()
@test_tracker_info(uuid="752afef4-bea9-4859-b352-8075f036f859")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_in_screen_lock_ecbm(self):
"""Test emergency call with emergency dialer in screen lock phase.
Enable device password and then reboot upto password query window.
Add system emergency number list with fake emergency number.
Configure allow_non_emergency_calls_in_ecm_bool true.
Call fake emergency number and hung up before connected.
Verify DUT cannot make call in ecbm mode.
Verify DUT can make call out of ecbm mode.
Returns:
True if success.
False if failed.
"""
toggle_airplane_mode_by_adb(self.log, self.dut, False)
reset_device_password(self.dut, DEFAULT_DEVICE_PASSWORD)
if not wait_for_sim_ready_by_adb(self.log, self.dut):
self.dut.log.error("SIM is not ready")
return False
self.dut.reboot(stop_at_lock_screen=True)
return self.check_emergency_call_back_mode()
@test_tracker_info(uuid="45193127-a155-4281-b126-bfef79d70064")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_in_screen_lock_apm_ecbm(self):
"""Test emergency call with emergency dialer in screen lock phase.
Enable device password and then reboot upto password query window.
Add system emergency number list with fake emergency number.
Configure allow_non_emergency_calls_in_ecm_bool true.
Call fake emergency number and hung up before connected.
Verify DUT call and data activity in ecbm mode.
Returns:
True if success.
False if failed.
"""
toggle_airplane_mode_by_adb(self.log, self.dut, True)
reset_device_password(self.dut, DEFAULT_DEVICE_PASSWORD)
self.dut.reboot(stop_at_lock_screen=True)
if not wait_for_sim_ready_by_adb(self.log, self.dut):
self.dut.log.error("SIM is not ready")
return False
return self.check_emergency_call_back_mode()
@test_tracker_info(uuid="ccb9ce63-f04f-480e-8c19-43d2a8c3d60f")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_in_setupwizard_ecbm(self):
"""Test emergency call with emergency dialer in setupwizard.
Wipe the device and then reboot upto setupwizard.
Add system emergency number list with fake emergency number.
Configure allow_non_emergency_calls_in_ecm_bool true.
Call fake emergency number and hung up before connected.
Verify DUT call and data activity in ecbm mode.
Returns:
True if success.
False if failed.
"""
if not fastboot_wipe(self.dut, skip_setup_wizard=False):
return False
if not wait_for_sim_ready_by_adb(self.log, self.dut):
self.dut.log.error("SIM is not ready")
return False
return self.check_emergency_call_back_mode()
@test_tracker_info(uuid="e0fd7a16-7b3a-4cd9-ab5f-b7e49a531232")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_by_emergency_dialer_with_ecbm_call_block(
self):
"""Test emergency call with emergency dialer in user account.
Add system emergency number list with fake emergency number.
Configure allow_non_emergency_calls_in_ecm_bool false.
Use the emergency dialer to call fake emergency number and hung up before connected.
Verify DUT cannot make call in ecbm mode.
Verify DUT can make call out of ecbm mode.
Returns:
True if success.
False if failed.
"""
toggle_airplane_mode_by_adb(self.log, self.dut, False)
return self.check_emergency_call_back_mode(
non_emergency_call_allowed=False)
@test_tracker_info(uuid="d08daf23-5efc-43ed-8530-e54fc141f555")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_by_emergency_dialer_csfb_with_ecbm_call_block(
self):
"""Test emergency call with emergency dialer in user account.
Configure DUT in CSFB
Add system emergency number list with fake emergency number.
Configure allow_non_emergency_calls_in_ecm_bool false.
Turn off emergency call IMS first.
Use the emergency dialer to call fake emergency number and hung up before connected.
Verify DUT cannot make call in ecbm mode.
Verify DUT can make call out of ecbm mode.
Returns:
True if success.
False if failed.
"""
if not phone_setup_csfb(self.log, self.dut):
return False
self.set_ims_first("false")
return self.check_emergency_call_back_mode(
non_emergency_call_allowed=False)
@test_tracker_info(uuid="4ea2f8bb-ce0f-4c7a-b4b2-07259a5c371a")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_by_emergency_dialer_3g_with_ecbm_call_block(
self):
"""Test emergency call with emergency dialer in user account.
Configure DUT in 3G
Add a fake emergency number to emergency number list.
Turn off emergency call IMS first.
Configure allow_non_emergency_calls_in_ecm_bool false.
Use the emergency dialer to call fake emergency number and hung up before connected.
Verify DUT cannot make call in ecbm mode.
Verify DUT can make call out of ecbm mode.
Returns:
True if success.
False if failed.
"""
if not phone_setup_voice_3g(self.log, self.dut):
return False
self.set_ims_first("false")
return self.check_emergency_call_back_mode(
non_emergency_call_allowed=False)
@test_tracker_info(uuid="ff11b2cb-0425-4a0b-8748-7ecff0148fe4")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_by_emergency_dialer_2g_with_ecbm_call_block(
self):
"""Test emergency call with emergency dialer in user account.
Configure DUT in 2G
Add system emergency number list with fake emergency number.
Turn off emergency call IMS first.
Configure allow_non_emergency_calls_in_ecm_bool false.
Use the emergency dialer to call fake emergency number and hung up before connect.
Verify DUT cannot make call in ecbm mode.
Verify DUT can make call out of ecbm mode.
Returns:
True if success.
False if failed.
"""
if self.dut_operator != "tmo":
raise signals.TestSkip(
"2G is not supported for carrier %s" % self.dut_operator)
if not phone_setup_voice_2g(self.log, self.dut):
return False
self.set_ims_first("false")
return self.check_emergency_call_back_mode(
non_emergency_call_allowed=False)
@test_tracker_info(uuid="13296bdc-4d56-47d3-9d97-00474ca13608")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_by_emergency_dialer_wfc_apm_with_ecbm_call_block(
self):
"""Test emergency call with emergency dialer in user account.
Configure DUT in WFC APM on.
Add system emergency number list with fake emergency number.
Turn off emergency call IMS first.
Configure allow_non_emergency_calls_in_ecm_bool false.
Use the emergency dialer to call fake emergency number and hung up before connect.
Verify DUT cannot make call in ecbm mode.
Verify DUT can make call out of ecbm mode.
Returns:
True if success.
False if failed.
"""
if CAPABILITY_WFC not in operator_capabilities.get(
self.dut_operator, operator_capabilities["default"]):
raise signals.TestSkip(
"WFC is not supported for carrier %s" % self.dut_operator)
if not phone_setup_iwlan(
self.log, self.dut, True, WFC_MODE_WIFI_PREFERRED,
self.wifi_network_ssid, self.wifi_network_pass):
self.dut.log.error("Failed to setup WFC.")
return False
return self.check_emergency_call_back_mode(
non_emergency_call_allowed=False)
@test_tracker_info(uuid="9179e64a-9236-4b79-b7b3-c5127dd3c21a")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_by_emergency_dialer_wfc_apm_off_with_ecbm_call_block(
self):
"""Test emergency call with emergency dialer in user account.
Configure DUT in WFC APM off.
Add system emergency number list with fake emergency number.
Configure allow_non_emergency_calls_in_ecm_bool false.
Use the emergency dialer to call fake emergency number and hung up before connect.
Verify DUT cannot make call in ecbm mode.
Verify DUT can make call out of ecbm mode.
Returns:
True if success.
False if failed.
"""
if CAPABILITY_WFC not in operator_capabilities.get(
self.dut_operator, operator_capabilities["default"]):
raise signals.TestSkip(
"WFC is not supported for carrier %s" % self.dut_operator)
if self.dut_operator != "tmo":
raise signals.TestSkip(
"WFC in non-APM is not supported for carrier %s" %
self.dut_operator)
if not phone_setup_iwlan(
self.log, self.dut, False, WFC_MODE_WIFI_PREFERRED,
self.wifi_network_ssid, self.wifi_network_pass):
self.dut.log.error("Failed to setup WFC.")
return False
self.set_ims_first("false")
return self.check_emergency_call_back_mode(
non_emergency_call_allowed=False)
@test_tracker_info(uuid="8deea62b-a7e8-4747-91c6-9abe3317d0d9")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_by_dialer_with_ecbm_call_block(self):
"""Test emergency call with dialer in user account.
Add system emergency number list with fake emergency number.
Configure allow_non_emergency_calls_in_ecm_bool false.
Use the dialer to call fake emergency number and hung up before connected.
Verify DUT cannot make call in ecbm mode.
Verify DUT can make call out of ecbm mode.
Returns:
True if success.
False if failed.
"""
return self.check_emergency_call_back_mode(
by_emergency_dialer=False, non_emergency_call_allowed=False)
@test_tracker_info(uuid="561d0a61-84c8-40e3-b2d7-72e221ccf83e")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_in_apm_with_ecbm_call_block(self):
"""Test emergency call with emergency dialer in airplane mode.
Enable airplane mode.
Add system emergency number list with fake emergency number.
Configure allow_non_emergency_calls_in_ecm_bool false.
Call fake emergency number and hung up before connected.
Verify DUT cannot make call in ecbm mode.
Verify DUT can make call out of ecbm mode.
Returns:
True if success.
False if failed.
"""
toggle_airplane_mode_by_adb(self.log, self.dut, True)
return self.check_emergency_call_back_mode(
non_emergency_call_allowed=False)
@test_tracker_info(uuid="7b8dc0ae-9e2f-456a-bc88-3c920ba0ca71")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_in_screen_lock_with_ecbm_call_block(self):
"""Test emergency call with emergency dialer in screen lock phase.
Enable device password and then reboot upto password query window.
Add system emergency number list with fake emergency number.
Configure allow_non_emergency_calls_in_ecm_bool false.
Call fake emergency number and hung up before connected.
Verify DUT cannot make call in ecbm mode.
Verify DUT can make call out of ecbm mode.
Returns:
True if success.
False if failed.
"""
toggle_airplane_mode_by_adb(self.log, self.dut, False)
reset_device_password(self.dut, DEFAULT_DEVICE_PASSWORD)
if not wait_for_sim_ready_by_adb(self.log, self.dut):
self.dut.log.error("SIM is not ready")
return False
self.dut.reboot(stop_at_lock_screen=True)
return self.check_emergency_call_back_mode(
non_emergency_call_allowed=False)
@test_tracker_info(uuid="fcdc1510-f60c-4f4e-9be1-a6123365b8ae")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_in_screen_lock_apm_with_ecbm_call_block(self):
"""Test emergency call with emergency dialer in screen lock phase.
Enable device password and then reboot upto password query window.
Add system emergency number list with fake emergency number.
Configure allow_non_emergency_calls_in_ecm_bool false.
Call fake emergency number and hung up before connected.
Verify DUT cannot make call in ecbm mode.
Verify DUT can make call out of ecbm mode.
Returns:
True if success.
False if failed.
"""
toggle_airplane_mode_by_adb(self.log, self.dut, True)
reset_device_password(self.dut, DEFAULT_DEVICE_PASSWORD)
self.dut.reboot(stop_at_lock_screen=True)
if not wait_for_sim_ready_by_adb(self.log, self.dut):
self.dut.log.error("SIM is not ready")
return False
return self.check_emergency_call_back_mode(
non_emergency_call_allowed=False)
@test_tracker_info(uuid="85300bba-055c-4ca7-b011-bf1023ffda72")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_in_setupwizard_with_ecbm_call_block(self):
"""Test emergency call with emergency dialer in setupwizard.
Wipe the device and then reboot upto setupwizard.
Add system emergency number list with fake emergency number.
Configure allow_non_emergency_calls_in_ecm_bool false.
Call fake emergency number and hung up before connected.
Verify DUT cannot make call in ecbm mode.
Verify DUT can make call out of ecbm mode.
Returns:
True if success.
False if failed.
"""
if not fastboot_wipe(self.dut, skip_setup_wizard=False):
return False
if not wait_for_sim_ready_by_adb(self.log, self.dut):
self.dut.log.error("SIM is not ready")
return False
return self.check_emergency_call_back_mode(
non_emergency_call_allowed=False)
""" Tests End """