blob: 60bd7ac3f85026fa221d44324c389ede3e1f1bcd [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 DEFAULT_DEVICE_PASSWORD
from acts_contrib.test_utils.tel.tel_defines import GEN_2G
from acts_contrib.test_utils.tel.tel_defines import GEN_3G
from acts_contrib.test_utils.tel.tel_defines import GEN_4G
from acts_contrib.test_utils.tel.tel_defines import SIM_STATE_ABSENT
from acts_contrib.test_utils.tel.tel_defines import SIM_STATE_UNKNOWN
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 network_preference_for_generation
from acts_contrib.test_utils.tel.tel_test_utils import get_sim_state
from acts_contrib.test_utils.tel.tel_test_utils import toggle_airplane_mode_by_adb
from TelLiveEmergencyBase import TelLiveEmergencyBase
class TelLiveNoSimTest(TelLiveEmergencyBase):
def setup_class(self):
for ad in self.my_devices:
sim_state = get_sim_state(ad)
ad.log.info("Sim state is %s", sim_state)
if sim_state in (SIM_STATE_ABSENT, SIM_STATE_UNKNOWN):
ad.log.info("Device has no or unknown SIM in it, set as DUT")
self.setup_dut(ad)
return True
self.log.error("No device meets SIM absent or unknown requirement")
raise signals.TestAbortClass(
"No device meets SIM absent or unknown requirement")
def setup_test(self):
self.expected_call_result = False
def teardown_test(self):
self.dut.ensure_screen_on()
self.dut.exit_setup_wizard()
reset_device_password(self.dut, None)
""" Tests Begin """
@test_tracker_info(uuid="91bc0c02-c1f2-4112-a7f8-c91617bff53e")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_by_emergency_dialer_no_sim(self):
"""Test fake emergency call with emergency dialer in user account.
Add fake emergency number to system emergency number list.
Use the emergency dialer to call storyline.
Verify DUT has in call activity.
Returns:
True if success.
False if failed.
"""
toggle_airplane_mode_by_adb(self.log, self.dut, False)
return self.fake_emergency_call_test()
@test_tracker_info(uuid="fccb7d1d-279d-4933-8ffe-528bd7fdf5f1")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_by_emergency_dialer_csfb_no_sim(self):
"""Change network preference to use 4G.
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.
Returns:
True if success.
False if failed.
"""
network_preference = network_preference_for_generation(
GEN_4G, None, self.dut.droid.telephonyGetPhoneType())
self.dut.log.info("Set network preference to %s", network_preference)
self.dut.droid.telephonySetPreferredNetworkTypes(network_preference)
return self.fake_emergency_call_test()
@test_tracker_info(uuid="de6332f9-9682-45ee-b8fd-99a24c821ca9")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_by_emergency_dialer_3g_no_sim(self):
"""Change network preference to use 3G.
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.
Returns:
True if success.
False if failed.
"""
network_preference = network_preference_for_generation(
GEN_3G, None, self.dut.droid.telephonyGetPhoneType())
self.dut.log.info("Set network preference to %s", network_preference)
self.dut.droid.telephonySetPreferredNetworkTypes(network_preference)
return self.fake_emergency_call_test()
@test_tracker_info(uuid="d173f152-a43a-4be8-a289-affc0817ca8e")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_by_emergency_dialer_2g_no_sim(self):
"""Change network preference to use 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.
Returns:
True if success.
False if failed.
"""
network_preference = network_preference_for_generation(
GEN_2G, None, self.dut.droid.telephonyGetPhoneType())
self.dut.log.info("Set network preference to %s", network_preference)
self.dut.droid.telephonySetPreferredNetworkTypes(network_preference)
return self.fake_emergency_call_test()
@test_tracker_info(uuid="cdf7ddad-480f-4757-83bd-a74321b799f7")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_by_dialer_no_sim(self):
"""Test emergency call with dialer.
Add storyline number to system emergency number list.
Call storyline by dialer.
Verify DUT has in call activity.
Returns:
True if success.
False if failed.
"""
return self.fake_emergency_call_test(by_emergency_dialer=False)
@test_tracker_info(uuid="e147960a-4227-41e2-bd06-65001ad5e0cd")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_in_apm_no_sim(self):
"""Test emergency call with emergency dialer in airplane mode.
Enable airplane mode.
Add storyline number to system emergency number list.
Use the emergency dialer to call storyline.
Verify DUT has in call activity.
Returns:
True if success.
False if failed.
"""
toggle_airplane_mode_by_adb(self.log, self.dut, True)
return self.fake_emergency_call_test()
@test_tracker_info(uuid="34068bc8-bfa0-4c7b-9450-e189a0b93c8a")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_in_screen_lock_no_sim(self):
"""Test emergency call with emergency dialer in screen lock phase.
Enable device password and then reboot upto password query window.
Add storyline number to system emergency number list.
Use the emergency dialer to call storyline.
Verify DUT has in call activity.
Returns:
True if success.
False if failed.
"""
reset_device_password(self.dut, DEFAULT_DEVICE_PASSWORD)
self.dut.reboot(stop_at_lock_screen=True)
return self.fake_emergency_call_test()
@test_tracker_info(uuid="1ef97f8a-eb3d-45b7-b947-ac409bb70587")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_in_screen_lock_apm_no_sim(self):
"""Test emergency call with emergency dialer in screen lock phase.
Enable device password and then reboot upto password query window.
Add storyline number to system emergency number list.
Use the emergency dialer to call storyline.
Verify DUT has in call activity.
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)
return self.fake_emergency_call_test()
@test_tracker_info(uuid="50f8b3d9-b126-4419-b5e5-b37b850deb8e")
@TelephonyBaseTest.tel_test_wrap
def test_fake_emergency_call_in_setupwizard_no_sim(self):
"""Test emergency call with emergency dialer in setupwizard.
Wipe the device and then reboot upto setupwizard.
Add storyline number to system emergency number list.
Use the emergency dialer to call storyline.
Verify DUT has in call activity.
Returns:
True if success.
False if failed.
"""
if not fastboot_wipe(self.dut, skip_setup_wizard=False):
return False
return self.fake_emergency_call_test()
""" Tests End """