• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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