1#!/usr/bin/env python3.4 2# 3# Copyright 2017 - Google 4# 5# Licensed under the Apache License, Version 2.0 (the "License"); 6# you may not use this file except in compliance with the License. 7# You may obtain a copy of the License at 8# 9# http://www.apache.org/licenses/LICENSE-2.0 10# 11# Unless required by applicable law or agreed to in writing, software 12# distributed under the License is distributed on an "AS IS" BASIS, 13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14# See the License for the specific language governing permissions and 15# limitations under the License. 16""" 17 Test Script for Telephony Pre Check In Sanity 18""" 19 20from acts import signals 21from acts.test_decorators import test_tracker_info 22from acts_contrib.test_utils.tel.TelephonyBaseTest import TelephonyBaseTest 23from acts_contrib.test_utils.tel.tel_defines import DEFAULT_DEVICE_PASSWORD 24from acts_contrib.test_utils.tel.tel_defines import GEN_2G 25from acts_contrib.test_utils.tel.tel_defines import GEN_3G 26from acts_contrib.test_utils.tel.tel_defines import GEN_4G 27from acts_contrib.test_utils.tel.tel_defines import SIM_STATE_ABSENT 28from acts_contrib.test_utils.tel.tel_defines import SIM_STATE_UNKNOWN 29from acts_contrib.test_utils.tel.tel_bootloader_utils import fastboot_wipe 30from acts_contrib.test_utils.tel.tel_bootloader_utils import reset_device_password 31from acts_contrib.test_utils.tel.tel_lookup_tables import network_preference_for_generation 32from acts_contrib.test_utils.tel.tel_test_utils import get_sim_state 33from acts_contrib.test_utils.tel.tel_test_utils import toggle_airplane_mode_by_adb 34from TelLiveEmergencyBase import TelLiveEmergencyBase 35 36 37class TelLiveNoSimTest(TelLiveEmergencyBase): 38 def setup_class(self): 39 for ad in self.my_devices: 40 sim_state = get_sim_state(ad) 41 ad.log.info("Sim state is %s", sim_state) 42 if sim_state in (SIM_STATE_ABSENT, SIM_STATE_UNKNOWN): 43 ad.log.info("Device has no or unknown SIM in it, set as DUT") 44 self.setup_dut(ad) 45 return True 46 self.log.error("No device meets SIM absent or unknown requirement") 47 raise signals.TestAbortClass( 48 "No device meets SIM absent or unknown requirement") 49 50 def setup_test(self): 51 self.expected_call_result = False 52 53 def teardown_test(self): 54 self.dut.ensure_screen_on() 55 self.dut.exit_setup_wizard() 56 reset_device_password(self.dut, None) 57 58 """ Tests Begin """ 59 60 @test_tracker_info(uuid="91bc0c02-c1f2-4112-a7f8-c91617bff53e") 61 @TelephonyBaseTest.tel_test_wrap 62 def test_fake_emergency_call_by_emergency_dialer_no_sim(self): 63 """Test fake emergency call with emergency dialer in user account. 64 65 Add fake emergency number to system emergency number list. 66 Use the emergency dialer to call storyline. 67 Verify DUT has in call activity. 68 69 Returns: 70 True if success. 71 False if failed. 72 """ 73 toggle_airplane_mode_by_adb(self.log, self.dut, False) 74 return self.fake_emergency_call_test() 75 76 @test_tracker_info(uuid="fccb7d1d-279d-4933-8ffe-528bd7fdf5f1") 77 @TelephonyBaseTest.tel_test_wrap 78 def test_fake_emergency_call_by_emergency_dialer_csfb_no_sim(self): 79 """Change network preference to use 4G. 80 81 Add system emergency number list with fake emergency number. 82 Turn off emergency call IMS first. 83 Use the emergency dialer to call fake emergency number. 84 Verify DUT has in call activity. 85 86 Returns: 87 True if success. 88 False if failed. 89 """ 90 network_preference = network_preference_for_generation( 91 GEN_4G, None, self.dut.droid.telephonyGetPhoneType()) 92 self.dut.log.info("Set network preference to %s", network_preference) 93 self.dut.droid.telephonySetPreferredNetworkTypes(network_preference) 94 95 return self.fake_emergency_call_test() 96 97 @test_tracker_info(uuid="de6332f9-9682-45ee-b8fd-99a24c821ca9") 98 @TelephonyBaseTest.tel_test_wrap 99 def test_fake_emergency_call_by_emergency_dialer_3g_no_sim(self): 100 """Change network preference to use 3G. 101 102 Add system emergency number list with fake emergency number. 103 Turn off emergency call IMS first. 104 Use the emergency dialer to call fake emergency number. 105 Verify DUT has in call activity. 106 107 Returns: 108 True if success. 109 False if failed. 110 """ 111 network_preference = network_preference_for_generation( 112 GEN_3G, None, self.dut.droid.telephonyGetPhoneType()) 113 self.dut.log.info("Set network preference to %s", network_preference) 114 self.dut.droid.telephonySetPreferredNetworkTypes(network_preference) 115 116 return self.fake_emergency_call_test() 117 118 @test_tracker_info(uuid="d173f152-a43a-4be8-a289-affc0817ca8e") 119 @TelephonyBaseTest.tel_test_wrap 120 def test_fake_emergency_call_by_emergency_dialer_2g_no_sim(self): 121 """Change network preference to use 2G. 122 123 Add system emergency number list with fake emergency number. 124 Turn off emergency call IMS first. 125 Use the emergency dialer to call fake emergency number. 126 Verify DUT has in call activity. 127 128 Returns: 129 True if success. 130 False if failed. 131 """ 132 network_preference = network_preference_for_generation( 133 GEN_2G, None, self.dut.droid.telephonyGetPhoneType()) 134 self.dut.log.info("Set network preference to %s", network_preference) 135 self.dut.droid.telephonySetPreferredNetworkTypes(network_preference) 136 137 return self.fake_emergency_call_test() 138 139 @test_tracker_info(uuid="cdf7ddad-480f-4757-83bd-a74321b799f7") 140 @TelephonyBaseTest.tel_test_wrap 141 def test_fake_emergency_call_by_dialer_no_sim(self): 142 """Test emergency call with dialer. 143 144 Add storyline number to system emergency number list. 145 Call storyline by dialer. 146 Verify DUT has in call activity. 147 148 Returns: 149 True if success. 150 False if failed. 151 """ 152 return self.fake_emergency_call_test(by_emergency_dialer=False) 153 154 @test_tracker_info(uuid="e147960a-4227-41e2-bd06-65001ad5e0cd") 155 @TelephonyBaseTest.tel_test_wrap 156 def test_fake_emergency_call_in_apm_no_sim(self): 157 """Test emergency call with emergency dialer in airplane mode. 158 159 Enable airplane mode. 160 Add storyline number to system emergency number list. 161 Use the emergency dialer to call storyline. 162 Verify DUT has in call activity. 163 164 Returns: 165 True if success. 166 False if failed. 167 """ 168 toggle_airplane_mode_by_adb(self.log, self.dut, True) 169 return self.fake_emergency_call_test() 170 171 @test_tracker_info(uuid="34068bc8-bfa0-4c7b-9450-e189a0b93c8a") 172 @TelephonyBaseTest.tel_test_wrap 173 def test_fake_emergency_call_in_screen_lock_no_sim(self): 174 """Test emergency call with emergency dialer in screen lock phase. 175 176 Enable device password and then reboot upto password query window. 177 Add storyline number to system emergency number list. 178 Use the emergency dialer to call storyline. 179 Verify DUT has in call activity. 180 181 Returns: 182 True if success. 183 False if failed. 184 """ 185 reset_device_password(self.dut, DEFAULT_DEVICE_PASSWORD) 186 self.dut.reboot(stop_at_lock_screen=True) 187 return self.fake_emergency_call_test() 188 189 @test_tracker_info(uuid="1ef97f8a-eb3d-45b7-b947-ac409bb70587") 190 @TelephonyBaseTest.tel_test_wrap 191 def test_fake_emergency_call_in_screen_lock_apm_no_sim(self): 192 """Test emergency call with emergency dialer in screen lock phase. 193 194 Enable device password and then reboot upto password query window. 195 Add storyline number to system emergency number list. 196 Use the emergency dialer to call storyline. 197 Verify DUT has in call activity. 198 199 Returns: 200 True if success. 201 False if failed. 202 """ 203 toggle_airplane_mode_by_adb(self.log, self.dut, True) 204 reset_device_password(self.dut, DEFAULT_DEVICE_PASSWORD) 205 self.dut.reboot(stop_at_lock_screen=True) 206 return self.fake_emergency_call_test() 207 208 @test_tracker_info(uuid="50f8b3d9-b126-4419-b5e5-b37b850deb8e") 209 @TelephonyBaseTest.tel_test_wrap 210 def test_fake_emergency_call_in_setupwizard_no_sim(self): 211 """Test emergency call with emergency dialer in setupwizard. 212 213 Wipe the device and then reboot upto setupwizard. 214 Add storyline number to system emergency number list. 215 Use the emergency dialer to call storyline. 216 Verify DUT has in call activity. 217 218 Returns: 219 True if success. 220 False if failed. 221 """ 222 if not fastboot_wipe(self.dut, skip_setup_wizard=False): 223 return False 224 return self.fake_emergency_call_test() 225 226 227""" Tests End """ 228