blob: 33d0c768694ed4fc8021dff8e99be3dfb9f2dc07 [file] [log] [blame]
Pratik Sheth078fd352021-02-18 10:54:21 -08001#!/usr/bin/env python3.4
2#
3# Copyright 2021 - 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 5G IMS Settings scenarios
18"""
19
20import time
21
22from acts import signals
23from acts.test_decorators import test_tracker_info
24from acts_contrib.test_utils.tel.TelephonyBaseTest import TelephonyBaseTest
25from acts_contrib.test_utils.tel.tel_defines import CarrierConfigs
26from acts_contrib.test_utils.tel.tel_defines import CAPABILITY_VOLTE
27from acts_contrib.test_utils.tel.tel_defines import CAPABILITY_WFC
28from acts_contrib.test_utils.tel.tel_defines import NETWORK_SERVICE_VOICE
29from acts_contrib.test_utils.tel.tel_defines import RAT_NR
30from acts_contrib.test_utils.tel.tel_defines import WFC_MODE_WIFI_PREFERRED
31from acts_contrib.test_utils.tel.tel_defines import WFC_MODE_CELLULAR_PREFERRED
32from acts_contrib.test_utils.tel.tel_subscription_utils import get_outgoing_voice_sub_id
33from acts_contrib.test_utils.tel.tel_test_utils import dumpsys_carrier_config
34from acts_contrib.test_utils.tel.tel_voice_utils import phone_setup_csfb
35from acts_contrib.test_utils.tel.tel_voice_utils import phone_setup_volte
36from acts_contrib.test_utils.tel.tel_5g_utils import is_current_network_5g_nsa
Pratik Sheth078fd352021-02-18 10:54:21 -080037from acts_contrib.test_utils.tel.tel_5g_utils import provision_device_for_5g
38from acts_contrib.test_utils.tel.tel_5g_utils import set_preferred_mode_for_5g
39from acts_contrib.test_utils.tel.tel_ims_utils import change_ims_setting
40
41
42class Nsa5gImsSettingsTest(TelephonyBaseTest):
43
44 def setup_class(self):
45 TelephonyBaseTest.setup_class(self)
46 self.dut = self.android_devices[0]
47 self.dut_client = self.android_devices[1]
48 self.skip_reset_between_cases = False
49 self.subid = get_outgoing_voice_sub_id(self.dut)
50 self.dut_capabilities = self.dut.telephony["subscription"][
51 self.subid].get("capabilities", [])
52 self.dut.log.info("DUT capabilities: %s", self.dut_capabilities)
53 if CAPABILITY_VOLTE not in self.dut_capabilities:
54 raise signals.TestAbortClass("VoLTE is not supported")
55 if CAPABILITY_WFC not in self.dut_capabilities:
56 raise signals.TestAbortClass("WFC is not supported")
57 self.carrier_configs = dumpsys_carrier_config(self.dut)[self.subid]
58 self.default_wfc_mode = self.carrier_configs.get(
59 CarrierConfigs.DEFAULT_WFC_IMS_MODE_INT, None)
60 self.dut_wfc_modes = self.dut.telephony[
61 "subscription"][self.subid].get("wfc_modes", [])
62
63
64 """ Tests Begin """
65
Pratik Sheth8ad702b2021-03-05 09:44:49 -080066 @test_tracker_info(uuid="9ed17e7b-c933-4b46-9349-a76fbcba3a24")
Pratik Sheth078fd352021-02-18 10:54:21 -080067 @TelephonyBaseTest.tel_test_wrap
68 def test_5g_nsa_volte_wifi_connected_toggle_wfc(self):
69 """Test for WiFi Calling settings:
70 nsa 5G + VoLTE Enabled + WiFi Connected, Toggling WFC
71
72 Steps:
73 1. Setup DUT Idle, 5G network type, VoLTE enabled.
74 2. Make sure DUT WiFi connected, WFC disabled.
75 3. Set DUT WFC enabled (WiFi Preferred), verify DUT WFC available,
76 report iwlan rat.
77 4. Set DUT WFC disabled, verify DUT WFC unavailable,
78 not report iwlan rat.
79
80 Expected Results:
81 3. DUT WiFi Calling feature bit return True, network rat is iwlan.
82 4. DUT WiFi Calling feature bit return False, network rat is not iwlan.
83 """
84
85 if not phone_setup_volte(self.log, self.dut):
86 self.log.error("Failed to setup VoLTE")
87 return False
88
89 if not provision_device_for_5g(self.log, self.dut):
90 return False
91
92 if not change_ims_setting(log=self.log,
93 ad=self.dut,
94 dut_client= self.dut_client,
95 wifi_network_ssid=self.wifi_network_ssid,
96 wifi_network_pass=self.wifi_network_pass,
97 subid=self.subid,
98 dut_capabilities=self.dut_capabilities,
99 airplane_mode=False,
100 wifi_enabled=True,
101 volte_enabled=True,
102 wfc_enabled=True,
103 nw_gen=RAT_NR,
104 wfc_mode=self.default_wfc_mode):
105 return False
106 if not change_ims_setting(log=self.log,
107 ad=self.dut,
108 dut_client= self.dut_client,
109 wifi_network_ssid=self.wifi_network_ssid,
110 wifi_network_pass=self.wifi_network_pass,
111 dut_capabilities=self.dut_capabilities,
112 subid=self.subid,
113 airplane_mode=False,
114 wifi_enabled=True,
115 volte_enabled=True,
116 wfc_enabled=False,
117 nw_gen=RAT_NR,
118 wfc_mode=None):
119 return False
120 return change_ims_setting(log=self.log,
121 ad=self.dut,
122 dut_client= self.dut_client,
123 wifi_network_ssid=self.wifi_network_ssid,
124 wifi_network_pass=self.wifi_network_pass,
125 dut_capabilities=self.dut_capabilities,
126 subid=self.subid,
127 airplane_mode=False,
128 wifi_enabled=True,
129 volte_enabled=True,
130 wfc_enabled=True,
131 nw_gen=RAT_NR,
132 wfc_mode=None)
133
134
Pratik Sheth8ad702b2021-03-05 09:44:49 -0800135 @test_tracker_info(uuid="425b16ec-869d-4a0b-a1bc-a3243503525f")
Pratik Sheth078fd352021-02-18 10:54:21 -0800136 @TelephonyBaseTest.tel_test_wrap
137 def test_5g_nsa_wifi_connected_toggle_wfc(self):
138 """Test for WiFi Calling settings:
139 nsa 5G + VoLTE Disabled + WiFi Connected, Toggling WFC
140
141 Steps:
142 1. Setup DUT Idle, nsa 5G network type, VoLTE disabled.
143 2. Make sure DUT WiFi connected, WFC disabled.
144 3. Set DUT WFC enabled (WiFi Preferred), verify DUT WFC available,
145 report iwlan rat.
146 4. Set DUT WFC disabled, verify DUT WFC unavailable,
147 not report iwlan rat.
148
149 Expected Results:
150 3. DUT WiFi Calling feature bit return True, network rat is iwlan.
151 4. DUT WiFi Calling feature bit return False, network rat is not iwlan.
152 """
153
154 if not phone_setup_csfb(self.log, self.dut):
155 self.log.error("Phone Failed to setup Properly")
156 return False
157
158 if not provision_device_for_5g(self.log, self.dut):
159 return False
160
161 if not change_ims_setting(log=self.log,
162 ad=self.dut,
163 dut_client= self.dut_client,
164 wifi_network_ssid=self.wifi_network_ssid,
165 wifi_network_pass=self.wifi_network_pass,
166 dut_capabilities=self.dut_capabilities,
167 subid=self.subid,
168 airplane_mode=False,
169 wifi_enabled=True,
170 volte_enabled=False,
171 wfc_enabled=True,
172 nw_gen=RAT_NR,
173 wfc_mode=self.default_wfc_mode):
174 return False
175 if not change_ims_setting(log=self.log,
176 ad=self.dut,
177 dut_client= self.dut_client,
178 wifi_network_ssid=self.wifi_network_ssid,
179 wifi_network_pass=self.wifi_network_pass,
180 dut_capabilities=self.dut_capabilities,
181 subid=self.subid,
182 airplane_mode=False,
183 wifi_enabled=True,
184 volte_enabled=False,
185 wfc_enabled=False,
186 nw_gen=RAT_NR,
187 wfc_mode=None):
188 return False
189 return change_ims_setting(log=self.log,
190 ad=self.dut,
191 dut_client= self.dut_client,
192 wifi_network_ssid=self.wifi_network_ssid,
193 wifi_network_pass=self.wifi_network_pass,
194 dut_capabilities=self.dut_capabilities,
195 subid=self.subid,
196 airplane_mode=False,
197 wifi_enabled=True,
198 volte_enabled=False,
199 wfc_enabled=True,
200 nw_gen=RAT_NR,
201 wfc_mode=None)
202
203
Pratik Sheth8ad702b2021-03-05 09:44:49 -0800204 @test_tracker_info(uuid="9405d8cf-5b73-4d47-a83d-da115caed177")
Pratik Sheth078fd352021-02-18 10:54:21 -0800205 @TelephonyBaseTest.tel_test_wrap
206 def test_5g_nsa_volte_wfc_enabled_toggle_wifi(self):
207 """Test for WiFi Calling settings:
208 nsa 5G + VoLTE Enabled + WFC enabled, Toggling WiFi
209
210 Steps:
211 1. Setup DUT Idle, nsa 5G network type, VoLTE enabled.
212 2. Make sure DUT WiFi disconnected, WFC enabled (WiFi Preferred).
213 3. DUT connect WiFi, verify DUT WFC available, report iwlan rat.
214 4. DUT disconnect WiFi,verify DUT WFC unavailable, not report iwlan rat.
215
216 Expected Results:
217 3. DUT WiFi Calling feature bit return True, network rat is iwlan.
218 4. DUT WiFi Calling feature bit return False, network rat is not iwlan.
219 """
220 if not phone_setup_volte(self.log, self.dut):
221 self.log.error("Failed to setup VoLTE")
222 return False
223
224 ads = self.android_devices
Pratik Sheth0df9f222021-04-05 17:55:51 -0700225 if not provision_device_for_5g(self.log, ads):
Pratik Sheth078fd352021-02-18 10:54:21 -0800226 return False
227
228 if not change_ims_setting(log=self.log,
229 ad=self.dut,
230 dut_client= self.dut_client,
231 wifi_network_ssid=self.wifi_network_ssid,
232 wifi_network_pass=self.wifi_network_pass,
233 dut_capabilities=self.dut_capabilities,
234 subid=self.subid,
235 airplane_mode=False,
236 wifi_enabled=True,
237 volte_enabled=True,
238 wfc_enabled=True,
239 nw_gen=RAT_NR,
240 wfc_mode=self.default_wfc_mode):
241 return False
242 if not change_ims_setting(log=self.log,
243 ad=self.dut,
244 dut_client= self.dut_client,
245 wifi_network_ssid=self.wifi_network_ssid,
246 wifi_network_pass=self.wifi_network_pass,
247 dut_capabilities=self.dut_capabilities,
248 subid=self.subid,
249 airplane_mode=False,
250 wifi_enabled=True,
251 volte_enabled=True,
252 wfc_enabled=False,
253 nw_gen=RAT_NR,
254 wfc_mode=None):
255 return False
256 return change_ims_setting(log=self.log,
257 ad=self.dut,
258 dut_client= self.dut_client,
259 wifi_network_ssid=self.wifi_network_ssid,
260 wifi_network_pass=self.wifi_network_pass,
261 dut_capabilities=self.dut_capabilities,
262 subid=self.subid,
263 airplane_mode=False,
264 wifi_enabled=True,
265 volte_enabled=True,
266 wfc_enabled=True,
267 nw_gen=RAT_NR,
268 wfc_mode=None)
269
270
Pratik Sheth8ad702b2021-03-05 09:44:49 -0800271 @test_tracker_info(uuid="548f07a6-74e2-4071-ba41-2acf3cd51752")
Pratik Sheth078fd352021-02-18 10:54:21 -0800272 @TelephonyBaseTest.tel_test_wrap
273 def test_5g_nsa_wfc_enabled_toggle_wifi(self):
274 """Test for WiFi Calling settings:
275 nsa 5G + VoLTE Disabled + WFC enabled, Toggling WiFi
276
277 Steps:
278 1. Setup DUT Idle, nsa 5G network type, VoLTE disabled.
279 2. Make sure DUT WiFi disconnected, WFC enabled (WiFi Preferred).
280 3. DUT connect WiFi, verify DUT WFC available, report iwlan rat.
281 4. DUT disconnect WiFi,verify DUT WFC unavailable, not report iwlan rat.
282
283 Expected Results:
284 3. DUT WiFi Calling feature bit return True, network rat is iwlan.
285 4. DUT WiFi Calling feature bit return False, network rat is not iwlan.
286 """
287 if not phone_setup_csfb(self.log, self.dut):
288 self.log.error("Failed to setup CSFB")
289 return False
290
291 if not provision_device_for_5g(self.log, self.dut):
292 return False
293
294 if not change_ims_setting(log=self.log,
295 ad=self.dut,
296 dut_client= self.dut_client,
297 wifi_network_ssid=self.wifi_network_ssid,
298 wifi_network_pass=self.wifi_network_pass,
299 dut_capabilities=self.dut_capabilities,
300 subid=self.subid,
301 airplane_mode=False,
302 wifi_enabled=True,
303 volte_enabled=False,
304 wfc_enabled=True,
305 nw_gen=RAT_NR,
306 wfc_mode=self.default_wfc_mode):
307 return False
308 if not change_ims_setting(log=self.log,
309 ad=self.dut,
310 dut_client= self.dut_client,
311 wifi_network_ssid=self.wifi_network_ssid,
312 wifi_network_pass=self.wifi_network_pass,
313 dut_capabilities=self.dut_capabilities,
314 subid=self.subid,
315 airplane_mode=False,
316 wifi_enabled=False,
317 volte_enabled=False,
318 wfc_enabled=True,
319 nw_gen=RAT_NR,
320 wfc_mode=None):
321 return False
322 return change_ims_setting(log=self.log,
323 ad=self.dut,
324 dut_client= self.dut_client,
325 wifi_network_ssid=self.wifi_network_ssid,
326 wifi_network_pass=self.wifi_network_pass,
327 dut_capabilities=self.dut_capabilities,
328 subid=self.subid,
329 airplane_mode=False,
330 wifi_enabled=True,
331 volte_enabled=False,
332 wfc_enabled=True,
333 nw_gen=RAT_NR,
334 wfc_mode=None)
335
336
Pratik Sheth8ad702b2021-03-05 09:44:49 -0800337 @test_tracker_info(uuid="f53f8403-b993-4a3b-8d3f-ffc87cdc856e")
Pratik Sheth078fd352021-02-18 10:54:21 -0800338 @TelephonyBaseTest.tel_test_wrap
339 def test_5g_nsa_wfc_enabled_wifi_connected_toggle_volte(self):
340 """Test for WiFi Calling settings:
341 nsa 5G + VoLTE Enabled + WiFi Connected + WFC enabled, toggle VoLTE setting
342
343 Steps:
344 1. Setup DUT Idle, 5G network type, VoLTE enabled.
345 2. Make sure DUT WiFi connected, WFC enabled (WiFi Preferred).
346 Verify DUT WFC available, report iwlan rat.
347 3. Disable VoLTE on DUT, verify in 2 minutes period,
348 DUT does not lost WiFi Calling, DUT still report WFC available,
349 rat iwlan.
350 4. Enable VoLTE on DUT, verify in 2 minutes period,
351 DUT does not lost WiFi Calling, DUT still report WFC available,
352 rat iwlan.
353
354 Expected Results:
355 2. DUT WiFi Calling feature bit return True, network rat is iwlan.
356 3. DUT WiFi Calling feature bit return True, network rat is iwlan.
357 4. DUT WiFi Calling feature bit return True, network rat is iwlan.
358 """
359 if not phone_setup_volte(self.log, self.dut):
360 self.dut.log.error("Phone Failed to setup properly")
361 return False
362
363 if not provision_device_for_5g(self.log, self.dut):
364 return False
365
366 if not change_ims_setting(log=self.log,
367 ad=self.dut,
368 dut_client= self.dut_client,
369 wifi_network_ssid=self.wifi_network_ssid,
370 wifi_network_pass=self.wifi_network_pass,
371 dut_capabilities=self.dut_capabilities,
372 subid=self.subid,
373 airplane_mode=False,
374 wifi_enabled=True,
375 volte_enabled=True,
376 wfc_enabled=True,
377 nw_gen=RAT_NR,
378 wfc_mode=self.default_wfc_mode):
379 return False
380 if not change_ims_setting(log=self.log,
381 ad=self.dut,
382 dut_client= self.dut_client,
383 wifi_network_ssid=self.wifi_network_ssid,
384 wifi_network_pass=self.wifi_network_pass,
385 dut_capabilities=self.dut_capabilities,
386 subid=self.subid,
387 airplane_mode=False,
388 wifi_enabled=True,
389 volte_enabled=False,
390 wfc_enabled=True,
391 wfc_mode=None):
392 return False
393 return change_ims_setting(log=self.log,
394 ad=self.dut,
395 dut_client= self.dut_client,
396 wifi_network_ssid=self.wifi_network_ssid,
397 wifi_network_pass=self.wifi_network_pass,
398 dut_capabilities=self.dut_capabilities,
399 subid=self.subid,
400 airplane_mode=False,
401 wifi_enabled=True,
402 volte_enabled=True,
403 wfc_enabled=True,
404 nw_gen=RAT_NR,
405 wfc_mode=None)
406
407
Pratik Sheth8ad702b2021-03-05 09:44:49 -0800408 @test_tracker_info(uuid="9d951951-bc04-4db1-85e3-f0980f564fd3")
Pratik Sheth078fd352021-02-18 10:54:21 -0800409 @TelephonyBaseTest.tel_test_wrap
410 def test_5g_nsa_volte_wfc_wifi_preferred_to_cellular_preferred(self):
411 """Test for WiFi Calling settings:
412 nsa 5G + VoLTE Enabled + WiFi Connected + WiFi Preferred,
413 change WFC to Cellular Preferred
414
415 Steps:
416 1. Setup DUT Idle, nsa 5G network type, VoLTE enabled.
417 2. Make sure DUT WiFi connected, WFC is set to WiFi Preferred.
418 Verify DUT WFC available, report iwlan rat.
419 3. Change WFC setting to Cellular Preferred.
420 4. Verify DUT report WFC not available.
421
422 Expected Results:
423 2. DUT WiFi Calling feature bit return True, network rat is iwlan.
424 4. DUT WiFI Calling feature bit return False, network rat is not iwlan.
425 """
426 if WFC_MODE_WIFI_PREFERRED not in self.dut_wfc_modes:
427 raise signals.TestSkip("WFC_MODE_WIFI_PREFERRED is not supported")
428 if WFC_MODE_CELLULAR_PREFERRED not in self.dut_wfc_modes:
429 raise signals.TestSkip(
430 "WFC_MODE_CELLULAR_PREFERRED is not supported")
431
432 if not phone_setup_volte(self.log, self.dut):
433 self.dut.log.error("Phone Failed to setup properly.")
434 return False
435
436 if not provision_device_for_5g(self.log, self.dut):
437 return False
438
439 if not change_ims_setting(log=self.log,
440 ad=self.dut,
441 dut_client= self.dut_client,
442 wifi_network_ssid=self.wifi_network_ssid,
443 wifi_network_pass=self.wifi_network_pass,
444 dut_capabilities=self.dut_capabilities,
445 subid=self.subid,
446 airplane_mode=False,
447 wifi_enabled=True,
448 volte_enabled=True,
449 wfc_enabled=True,
450 nw_gen=RAT_NR,
451 wfc_mode=self.default_wfc_mode):
452 return False
453 return change_ims_setting(log=self.log,
454 ad=self.dut,
455 dut_client= self.dut_client,
456 wifi_network_ssid=self.wifi_network_ssid,
457 wifi_network_pass=self.wifi_network_pass,
458 dut_capabilities=self.dut_capabilities,
459 subid=self.subid,
460 airplane_mode=False,
461 wifi_enabled=True,
462 volte_enabled=True,
463 wfc_enabled=True,
464 nw_gen=RAT_NR,
465 wfc_mode= WFC_MODE_CELLULAR_PREFERRED)
466
467
Pratik Sheth8ad702b2021-03-05 09:44:49 -0800468 @test_tracker_info(uuid="9d951951-bc04-4db1-85e3-f0980f564fd3")
Pratik Sheth078fd352021-02-18 10:54:21 -0800469 @TelephonyBaseTest.tel_test_wrap
470 def test_5g_nsa_wfc_wifi_preferred_to_cellular_preferred(self):
471 """Test for WiFi Calling settings:
472 nsa 5G + WiFi Connected + WiFi Preferred, change WFC to Cellular Preferred
473
474 Steps:
475 1. Setup DUT Idle, nsa 5G network type, VoLTE disabled.
476 2. Make sure DUT WiFi connected, WFC is set to WiFi Preferred.
477 Verify DUT WFC available, report iwlan rat.
478 3. Change WFC setting to Cellular Preferred.
479 4. Verify DUT report WFC not available.
480
481 Expected Results:
482 2. DUT WiFi Calling feature bit return True, network rat is iwlan.
483 4. DUT WiFI Calling feature bit return False, network rat is not iwlan.
484 """
485 if WFC_MODE_WIFI_PREFERRED not in self.dut_wfc_modes:
486 raise signals.TestSkip("WFC_MODE_WIFI_PREFERRED is not supported")
487 if WFC_MODE_CELLULAR_PREFERRED not in self.dut_wfc_modes:
488 raise signals.TestSkip(
489 "WFC_MODE_CELLULAR_PREFERRED is not supported")
490
491 if not phone_setup_csfb(self.log, self.dut):
492 self.dut.log.error("Failed to setup properly")
493 return False
494
495 if not provision_device_for_5g(self.log, self.dut):
496 return False
497
498 if not change_ims_setting(log=self.log,
499 ad=self.dut,
500 dut_client= self.dut_client,
501 wifi_network_ssid=self.wifi_network_ssid,
502 wifi_network_pass=self.wifi_network_pass,
503 dut_capabilities=self.dut_capabilities,
504 subid=self.subid,
505 airplane_mode=False,
506 wifi_enabled=True,
507 volte_enabled=False,
508 wfc_enabled=True,
509 nw_gen=RAT_NR,
510 wfc_mode= WFC_MODE_WIFI_PREFERRED):
511 return False
512 return change_ims_setting(log=self.log,
513 ad=self.dut,
514 dut_client= self.dut_client,
515 wifi_network_ssid=self.wifi_network_ssid,
516 wifi_network_pass=self.wifi_network_pass,
517 dut_capabilities=self.dut_capabilities,
518 subid=self.subid,
519 airplane_mode=False,
520 wifi_enabled=True,
521 volte_enabled=False,
522 wfc_enabled=True,
523 nw_gen=RAT_NR,
524 wfc_mode= WFC_MODE_CELLULAR_PREFERRED)
525
526
Pratik Sheth8ad702b2021-03-05 09:44:49 -0800527 @test_tracker_info(uuid="bb3acfce-1ea9-40c2-9151-12fbc235e359")
Pratik Sheth078fd352021-02-18 10:54:21 -0800528 @TelephonyBaseTest.tel_test_wrap
529 def test_5g_nsa_volte_wfc_cellular_preferred_to_wifi_preferred(self):
530 """Test for WiFi Calling settings:
531 nsa 5G + VoLTE Enabled + WiFi Connected + Cellular Preferred,
532 change WFC to WiFi Preferred
533
534 Steps:
535 1. Setup DUT Idle, nsa 5G network type, VoLTE enabled.
536 2. Make sure DUT WiFi connected, WFC is set to Cellular Preferred.
537 Verify DUT WFC not available.
538 3. Change WFC setting to WiFi Preferred.
539 4. Verify DUT report WFC available.
540
541 Expected Results:
542 2. DUT WiFi Calling feature bit return False, network rat is not iwlan.
543 4. DUT WiFI Calling feature bit return True, network rat is iwlan.
544 """
545 if WFC_MODE_WIFI_PREFERRED not in self.dut_wfc_modes:
546 raise signals.TestSkip("WFC_MODE_WIFI_PREFERRED is not supported")
547 if WFC_MODE_CELLULAR_PREFERRED not in self.dut_wfc_modes:
548 raise signals.TestSkip(
549 "WFC_MODE_CELLULAR_PREFERRED is not supported")
550 if not phone_setup_volte(self.log, self.dut):
551 self.dut.log.error("Phone Failed to setup properly")
552 return False
553
554 if not provision_device_for_5g(self.log, self.dut):
555 return False
556
557 if not change_ims_setting(log=self.log,
558 ad=self.dut,
559 dut_client= self.dut_client,
560 wifi_network_ssid=self.wifi_network_ssid,
561 wifi_network_pass=self.wifi_network_pass,
562 dut_capabilities=self.dut_capabilities,
563 subid=self.subid,
564 airplane_mode=False,
565 wifi_enabled=True,
566 volte_enabled=True,
567 wfc_enabled=True,
568 nw_gen=RAT_NR,
569 wfc_mode= WFC_MODE_CELLULAR_PREFERRED):
570 return False
571 return change_ims_setting(log=self.log,
572 ad=self.dut,
573 dut_client= self.dut_client,
574 wifi_network_ssid=self.wifi_network_ssid,
575 wifi_network_pass=self.wifi_network_pass,
576 dut_capabilities=self.dut_capabilities,
577 subid=self.subid,
578 airplane_mode=False,
579 wifi_enabled=True,
580 volte_enabled=True,
581 wfc_enabled=True,
582 nw_gen=RAT_NR,
583 wfc_mode=WFC_MODE_WIFI_PREFERRED)
584
585
Pratik Sheth8ad702b2021-03-05 09:44:49 -0800586 @test_tracker_info(uuid="d4dea8e0-5795-4769-80e2-29c0f951a84a")
Pratik Sheth078fd352021-02-18 10:54:21 -0800587 @TelephonyBaseTest.tel_test_wrap
588 def test_5g_nsa_wfc_cellular_preferred_to_wifi_preferred(self):
589 """Test for WiFi Calling settings:
590 nsa 5G + WiFi Connected + Cellular Preferred, change WFC to WiFi Preferred
591
592 Steps:
593 1. Setup DUT Idle, nsa 5G network type, VoLTE disabled.
594 2. Make sure DUT WiFi connected, WFC is set to Cellular Preferred.
595 Verify DUT WFC not available.
596 3. Change WFC setting to WiFi Preferred.
597 4. Verify DUT report WFC available.
598
599 Expected Results:
600 2. DUT WiFi Calling feature bit return False, network rat is not iwlan.
601 4. DUT WiFI Calling feature bit return True, network rat is iwlan.
602 """
603 if WFC_MODE_WIFI_PREFERRED not in self.dut_wfc_modes:
604 raise signals.TestSkip("WFC_MODE_WIFI_PREFERRED is not supported")
605 if WFC_MODE_CELLULAR_PREFERRED not in self.dut_wfc_modes:
606 raise signals.TestSkip(
607 "WFC_MODE_CELLULAR_PREFERRED is not supported")
608
609 if not phone_setup_csfb(self.log, self.dut):
610 self.dut.log.error("Phone Failed to setup properly")
611 return False
612
613 if not provision_device_for_5g(self.log, self.dut):
614 return False
615
616 if not change_ims_setting(log=self.log,
617 ad=self.dut,
618 dut_client= self.dut_client,
619 wifi_network_ssid=self.wifi_network_ssid,
620 wifi_network_pass=self.wifi_network_pass,
621 dut_capabilities=self.dut_capabilities,
622 subid=self.subid,
623 airplane_mode=False,
624 wifi_enabled=True,
625 volte_enabled=False,
626 wfc_enabled=True,
627 nw_gen=RAT_NR,
628 wfc_mode=WFC_MODE_CELLULAR_PREFERRED):
629 return False
630 return change_ims_setting(log=self.log,
631 ad=self.dut,
632 dut_client= self.dut_client,
633 wifi_network_ssid=self.wifi_network_ssid,
634 wifi_network_pass=self.wifi_network_pass,
635 dut_capabilities=self.dut_capabilities,
636 subid=self.subid,
637 airplane_mode=False,
638 wifi_enabled=True,
639 volte_enabled=False,
640 wfc_enabled=True,
641 nw_gen=RAT_NR,
642 wfc_mode=WFC_MODE_WIFI_PREFERRED)
643
644