blob: 4086f2a2876063e3f3cefbe221c302f1a6dca54d [file] [log] [blame]
#!/usr/bin/env python3.4
#
# Copyright 2020 - 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 CellBroadcast Module Test
"""
import xml.etree.ElementTree as ET
import time
import random
import os
from acts import signals
from acts.logger import epoch_to_log_line_timestamp
from acts.keys import Config
from acts.test_decorators import test_tracker_info
from acts.utils import load_config
from acts_contrib.test_utils.tel.TelephonyBaseTest import TelephonyBaseTest
from acts_contrib.test_utils.tel.tel_defines import CARRIER_TEST_CONF_XML_PATH, GERMANY_TELEKOM, QATAR_VODAFONE
from acts_contrib.test_utils.tel.tel_defines import CLEAR_NOTIFICATION_BAR
from acts_contrib.test_utils.tel.tel_defines import DEFAULT_ALERT_TYPE
from acts_contrib.test_utils.tel.tel_defines import EXPAND_NOTIFICATION_BAR
from acts_contrib.test_utils.tel.tel_defines import COLLAPSE_NOTIFICATION_BAR
from acts_contrib.test_utils.tel.tel_defines import UAE
from acts_contrib.test_utils.tel.tel_defines import JAPAN_KDDI
from acts_contrib.test_utils.tel.tel_defines import NEWZEALAND
from acts_contrib.test_utils.tel.tel_defines import HONGKONG
from acts_contrib.test_utils.tel.tel_defines import CHILE_ENTEL
from acts_contrib.test_utils.tel.tel_defines import CHILE_TELEFONICA
from acts_contrib.test_utils.tel.tel_defines import MEXICO_TELEFONICA
from acts_contrib.test_utils.tel.tel_defines import ELSALVADOR_TELEFONICA
from acts_contrib.test_utils.tel.tel_defines import PERU_TELEFONICA
from acts_contrib.test_utils.tel.tel_defines import PERU_ENTEL
from acts_contrib.test_utils.tel.tel_defines import KOREA
from acts_contrib.test_utils.tel.tel_defines import TAIWAN
from acts_contrib.test_utils.tel.tel_defines import CANADA
from acts_contrib.test_utils.tel.tel_defines import AUSTRALIA
from acts_contrib.test_utils.tel.tel_defines import BRAZIL
from acts_contrib.test_utils.tel.tel_defines import COLUMBIA
from acts_contrib.test_utils.tel.tel_defines import ECUADOR_TELEFONICA
from acts_contrib.test_utils.tel.tel_defines import ECUADOR_CLARO
from acts_contrib.test_utils.tel.tel_defines import FRANCE
from acts_contrib.test_utils.tel.tel_defines import PUERTORICO
from acts_contrib.test_utils.tel.tel_defines import NETHERLANDS
from acts_contrib.test_utils.tel.tel_defines import ROMANIA
from acts_contrib.test_utils.tel.tel_defines import ESTONIA
from acts_contrib.test_utils.tel.tel_defines import LITHUANIA
from acts_contrib.test_utils.tel.tel_defines import LATVIA
from acts_contrib.test_utils.tel.tel_defines import GREECE
from acts_contrib.test_utils.tel.tel_defines import ITALY
from acts_contrib.test_utils.tel.tel_defines import SOUTHAFRICA
from acts_contrib.test_utils.tel.tel_defines import UK
from acts_contrib.test_utils.tel.tel_defines import US_VZW
from acts_contrib.test_utils.tel.tel_defines import US_ATT
from acts_contrib.test_utils.tel.tel_defines import US_TMO
from acts_contrib.test_utils.tel.tel_defines import ISRAEL
from acts_contrib.test_utils.tel.tel_defines import OMAN
from acts_contrib.test_utils.tel.tel_defines import JAPAN_SOFTBANK
from acts_contrib.test_utils.tel.tel_defines import SAUDIARABIA
from acts_contrib.test_utils.tel.tel_defines import MAIN_ACTIVITY
from acts_contrib.test_utils.tel.tel_defines import CBR_PACKAGE
from acts_contrib.test_utils.tel.tel_defines import SYSUI_PACKAGE
from acts_contrib.test_utils.tel.tel_defines import CBR_ACTIVITY
from acts_contrib.test_utils.tel.tel_defines import CBR_TEST_APK
from acts_contrib.test_utils.tel.tel_defines import MCC_MNC
from acts_contrib.test_utils.tel.tel_defines import IMSI
from acts_contrib.test_utils.tel.tel_defines import PLMN_ADB_PROPERTY
from acts_contrib.test_utils.tel.tel_defines import WAIT_TIME_FOR_ALERTS_TO_POPULATE
from acts_contrib.test_utils.tel.tel_defines import WAIT_TIME_FOR_UI
from acts_contrib.test_utils.tel.tel_defines import SCROLL_DOWN
from acts_contrib.test_utils.tel.tel_defines import WAIT_TIME_ANDROID_STATE_SETTLING
from acts_contrib.test_utils.tel.tel_defines import WAIT_TIME_FOR_ALERT_TO_RECEIVE
from acts_contrib.test_utils.tel.tel_defines import EXIT_ALERT_LIST
from acts_contrib.test_utils.tel.tel_defines import CMD_DND_OFF
from acts_contrib.test_utils.tel.tel_defines import DUMPSYS_VIBRATION
from acts_contrib.test_utils.tel.tel_defines import DEFAULT_SOUND_TIME
from acts_contrib.test_utils.tel.tel_defines import DEFAULT_VIBRATION_TIME
from acts_contrib.test_utils.tel.tel_defines import DEFAULT_OFFSET
from acts_contrib.test_utils.tel.tel_defines import DIRECTION_MOBILE_ORIGINATED
from acts_contrib.test_utils.tel.tel_defines import MAX_WAIT_TIME_DATA_SUB_CHANGE
from acts_contrib.test_utils.tel.tel_defines import WFC_MODE_WIFI_ONLY
from acts_contrib.test_utils.tel.tel_defines import MAX_WAIT_TIME_WFC_ENABLED
from acts_contrib.test_utils.tel.tel_defines import GEN_5G
from acts_contrib.test_utils.tel.tel_defines import GEN_4G
from acts_contrib.test_utils.tel.tel_defines import GEN_3G
from acts_contrib.test_utils.tel.tel_logging_utils import log_screen_shot
from acts_contrib.test_utils.tel.tel_logging_utils import get_screen_shot_log
from acts_contrib.test_utils.tel.tel_test_utils import reboot_device
from acts_contrib.test_utils.tel.tel_test_utils import get_device_epoch_time
from acts_contrib.test_utils.tel.tel_data_utils import wait_for_data_connection
from acts_contrib.test_utils.tel.tel_wifi_utils import wifi_toggle_state
from acts_contrib.test_utils.tel.tel_wifi_utils import ensure_wifi_connected
from acts_contrib.test_utils.tel.tel_subscription_utils import get_subid_from_slot_index
from acts_contrib.test_utils.tel.tel_subscription_utils import get_default_data_sub_id
from acts_contrib.test_utils.net import ui_utils as uutils
from acts_contrib.test_utils.tel.tel_voice_utils import hangup_call
from acts_contrib.test_utils.tel.tel_voice_utils import call_setup_teardown
from acts_contrib.test_utils.tel.tel_phone_setup_utils import phone_setup_data_for_subscription
from acts_contrib.test_utils.tel.tel_phone_setup_utils import phone_setup_voice_general
from test_utils.tel.tel_5g_test_utils import provision_device_for_5g
from test_utils.tel.tel_ims_utils import set_wfc_mode_for_subscription
from test_utils.tel.tel_ims_utils import wait_for_wfc_enabled
class CellBroadcastTest(TelephonyBaseTest):
def setup_class(self):
super().setup_class()
req_param = ["region_plmn_list", "emergency_alert_settings", "emergency_alert_channels", "carrier_test_conf"]
self.unpack_userparams(req_param_names=req_param)
if hasattr(self, "region_plmn_list"):
if isinstance(self.region_plmn_list, list):
self.region_plmn_list = self.region_plmn_list[0]
if not os.path.isfile(self.region_plmn_list):
self.region_plmn_list = os.path.join(
self.user_params[Config.key_config_path.value],
self.region_plmn_list)
if hasattr(self, "emergency_alert_settings"):
if isinstance(self.emergency_alert_settings, list):
self.emergency_alert_settings = self.emergency_alert_settings[0]
if not os.path.isfile(self.emergency_alert_settings):
self.emergency_alert_settings = os.path.join(
self.user_params[Config.key_config_path.value],
self.emergency_alert_settings)
if hasattr(self, "emergency_alert_channels"):
if isinstance(self.emergency_alert_channels, list):
self.emergency_alert_channels = self.emergency_alert_channels[0]
if not os.path.isfile(self.emergency_alert_channels):
self.emergency_alert_channels = os.path.join(
self.user_params[Config.key_config_path.value],
self.emergency_alert_channels)
subInfo = self.android_devices[0].droid.subscriptionGetAllSubInfoList()
self.slot_sub_id_list = {}
for info in subInfo:
if info["simSlotIndex"] >= 0:
self.slot_sub_id_list[info["subscriptionId"]] = info["simSlotIndex"]
if len(subInfo) > 1:
self.android_devices[0].log.info("device is operated at DSDS!")
else:
self.android_devices[0].log.info("device is operated at single SIM!")
self.current_sub_id = self.android_devices[0].droid.subscriptionGetDefaultVoiceSubId()
self.android_devices[0].log.info("Active slot: %d, active voice subscription id: %d",
self.slot_sub_id_list[self.current_sub_id], self.current_sub_id)
if hasattr(self, "carrier_test_conf"):
if isinstance(self.carrier_test_conf, list):
self.carrier_test_conf = self.carrier_test_conf[self.slot_sub_id_list[self.current_sub_id]]
if not os.path.isfile(self.carrier_test_conf):
self.carrier_test_conf = os.path.join(
self.user_params[Config.key_config_path.value],
self.carrier_test_conf)
self.verify_vibration = self.user_params.get("verify_vibration", True)
self._disable_vibration_check_for_11()
self.verify_sound = self.user_params.get("verify_sound", True)
self.region_plmn_dict = load_config(self.region_plmn_list)
self.emergency_alert_settings_dict = load_config(self.emergency_alert_settings)
self.emergency_alert_channels_dict = load_config(self.emergency_alert_channels)
self._verify_cbr_test_apk_install(self.android_devices[0])
def setup_test(self):
TelephonyBaseTest.setup_test(self)
self.number_of_devices = 1
def teardown_class(self):
TelephonyBaseTest.teardown_class(self)
def _verify_cbr_test_apk_install(self, ad):
if not ad.is_apk_installed(CBR_TEST_APK):
cbrtestapk = self.user_params.get("cbrtestapk")
ad.adb.install("%s" % cbrtestapk)
else:
ad.log.debug("%s apk already installed", CBR_TEST_APK)
def _verify_device_in_specific_region(self, ad, region=None):
mccmnc = self.region_plmn_dict[region][MCC_MNC]
plmns = ad.adb.getprop(PLMN_ADB_PROPERTY)
plmn_list = plmns.split(",")
current_plmn = plmn_list[self.slot_sub_id_list[self.current_sub_id]]
if current_plmn == mccmnc:
ad.log.info("device in %s region", region.upper())
return True
else:
ad.log.info("device not in %s region", region.upper())
return False
def _disable_vibration_check_for_11(self):
if self.android_devices[0].adb.getprop("ro.build.version.release") in ("11", "R"):
self.verify_vibration = False
def _get_toggle_value(self, ad, alert_text=None):
if alert_text == "Alerts":
node = uutils.wait_and_get_xml_node(ad, timeout=30, matching_node=2, text=alert_text)
else:
node = uutils.wait_and_get_xml_node(ad, timeout=30, text=alert_text)
return node.parentNode.nextSibling.firstChild.attributes['checked'].value
def _wait_and_click(self, ad, alert_text=None):
if alert_text == "Alerts":
uutils.wait_and_click(ad, text=alert_text, matching_node=2)
else:
uutils.wait_and_click(ad, text=alert_text)
def _has_element(self, ad, alert_text=None):
if alert_text == "Alerts":
return uutils.has_element(ad, text=alert_text, matching_node=2)
else:
return uutils.has_element(ad, text=alert_text)
def _open_wea_settings_page(self, ad):
ad.adb.shell("am start -a %s -n %s/%s" % (MAIN_ACTIVITY, CBR_PACKAGE, CBR_ACTIVITY))
def _close_wea_settings_page(self, ad):
pid = ad.adb.shell("pidof %s" % CBR_PACKAGE, ignore_status=True)
ad.adb.shell("kill -9 %s" % pid, ignore_status=True)
def _set_device_to_specific_region(self, ad, region=None):
"""
Args:
ad: AndroidDevice
country: name of country
"""
# fetch country codes
mccmnc = self.region_plmn_dict[region][MCC_MNC]
imsi = self.region_plmn_dict[region][IMSI]
ad.log.info("setting device to %s with mccmnc %s imsi %s",
region.upper(), mccmnc, imsi)
# update carrier xml file
tree = ET.parse(self.carrier_test_conf)
root = tree.getroot()
root[1].attrib['value'] = mccmnc
root[2].attrib['value'] = imsi
tree.write(self.carrier_test_conf)
# push carrier xml to device
ad.log.info("push %s to %s" % (self.carrier_test_conf, CARRIER_TEST_CONF_XML_PATH))
ad.adb.push("%s %s" % (self.carrier_test_conf, CARRIER_TEST_CONF_XML_PATH))
# reboot device
reboot_device(ad)
time.sleep(WAIT_TIME_FOR_ALERTS_TO_POPULATE)
# verify adb property
if not self._verify_device_in_specific_region(ad, region):
raise signals.TestSkip("unable to set device to %s region" % region.upper())
return True
def _verify_wea_default_settings(self, ad, region=None):
result = True
for key, value in self.emergency_alert_settings_dict[region].items():
alert_text = key
alert_value = value["default_value"]
self._open_wea_settings_page(ad)
# scroll till bottom
if not self._has_element(ad, alert_text):
for _ in range(3):
ad.adb.shell(SCROLL_DOWN)
if not self._has_element(ad, alert_text):
ad.log.error("UI - %s missing", alert_text)
result = False
continue
current_value = self._get_toggle_value(ad, alert_text)
if current_value == alert_value:
ad.log.info("UI - %s, default: %s",
alert_text, alert_value)
else:
ad.log.error("UI - %s, default: %s, expected: %s",
alert_text, current_value, alert_value)
result = False
return result
def _verify_wea_toggle_settings(self, ad, region=None):
result = True
for key, value in self.emergency_alert_settings_dict[region].items():
alert_text = key
alert_toggle = value["toggle_avail"]
if alert_toggle == "true":
self._open_wea_settings_page(ad)
if not self._has_element(ad, alert_text):
for _ in range(3):
ad.adb.shell(SCROLL_DOWN)
if not self._has_element(ad, alert_text):
ad.log.error("UI - %s missing", alert_text)
result = False
continue
before_toggle = self._get_toggle_value(ad, alert_text)
self._wait_and_click(ad, alert_text)
after_toggle = self._get_toggle_value(ad, alert_text)
if before_toggle == after_toggle:
for _ in range(3):
ad.adb.shell(SCROLL_DOWN)
self._wait_and_click(ad, alert_text)
after_toggle = self._get_toggle_value(ad, alert_text)
if before_toggle == after_toggle:
ad.log.error("UI - fail to toggle %s", alert_text)
result = False
else:
self._wait_and_click(ad, alert_text)
reset_toggle = self._get_toggle_value(ad, alert_text)
if reset_toggle != before_toggle:
ad.log.error("UI - fail to reset toggle %s", alert_text)
result = False
else:
ad.log.info("UI - toggle verified for %s", alert_text)
return result
def _convert_formatted_time_to_secs(self, formatted_time):
try:
time_list = formatted_time.split(":")
return int(time_list[0]) * 3600 + int(time_list[1]) * 60 + int(time_list[2])
except Exception as e:
self.log.error(e)
def _get_current_time_in_secs(self, ad):
try:
c_time = get_device_epoch_time(ad)
c_time = epoch_to_log_line_timestamp(c_time).split()[1].split('.')[0]
return self._convert_formatted_time_to_secs(c_time)
except Exception as e:
ad.log.error(e)
def _verify_flashlight(self, ad):
count = 0
while(count < 10):
status = ad.adb.shell("settings get secure flashlight_available")
if status == "1":
ad.log.info("LED lights OK")
return True
ad.log.error("LED lights not OK")
return False
def _verify_vibration(self, ad, begintime, expectedtime, offset):
if not self.verify_vibration:
return True
out = ad.adb.shell(DUMPSYS_VIBRATION)
if out:
try:
starttime = out.split()[2].split('.')[0]
endtime = out.split()[5].split('.')[0]
starttime = self._convert_formatted_time_to_secs(starttime)
endtime = self._convert_formatted_time_to_secs(endtime)
vibration_time = endtime - starttime
if (starttime < begintime):
ad.log.error("vibration: actualtime:%s logtime:%s Not OK", begintime, starttime)
return False
if not vibration_time in range(expectedtime - offset, expectedtime + offset + 1):
ad.log.error("vibration: %d secs Not OK", vibration_time)
return False
ad.log.info("vibration: %d secs OK", vibration_time)
return True
except Exception as e:
ad.log.error("vibration parsing is broken %s", e)
return False
return False
def _verify_sound(self, ad, begintime, expectedtime, offset, calling_package=CBR_PACKAGE):
if not self.verify_sound:
return True
cbr_pid = ad.adb.shell("pidof %s" % calling_package)
DUMPSYS_START_AUDIO = "dumpsys audio | grep %s | grep requestAudioFocus | tail -1" % cbr_pid
DUMPSYS_END_AUDIO = "dumpsys audio | grep %s | grep abandonAudioFocus | tail -1" % cbr_pid
start_audio = ad.adb.shell(DUMPSYS_START_AUDIO)
end_audio = ad.adb.shell(DUMPSYS_END_AUDIO)
if start_audio and end_audio:
try:
starttime = start_audio.split()[1]
endtime = end_audio.split()[1]
starttime = self._convert_formatted_time_to_secs(starttime)
endtime = self._convert_formatted_time_to_secs(endtime)
sound_time = endtime - starttime
if (starttime < begintime):
ad.log.error("sound: actualtime:%s logtime:%s Not OK", begintime, starttime)
return False
if not sound_time in range(expectedtime - offset, expectedtime + offset + 1):
ad.log.error("sound: %d secs Not OK", sound_time)
return False
ad.log.info("sound: %d secs OK", sound_time)
return True
except Exception as e:
ad.log.error("sound parsing is broken %s", e)
return False
return False
def _exit_alert_pop_up(self, ad):
for text in EXIT_ALERT_LIST:
try:
uutils.wait_and_click(ad, text_contains=text, timeout=1)
except Exception:
continue
def _verify_text_present_on_ui(self, ad, alert_text):
if uutils.has_element(ad, text=alert_text, timeout=5):
return True
elif uutils.has_element(ad, text_contains=alert_text, timeout=5):
return True
else:
return False
def _log_and_screenshot_alert_fail(self, ad, state, region, channel):
ad.log.error("Fail for alert: %s for %s: %s", state, region, channel)
log_screen_shot(ad, "alert_%s_for_%s_%s" % (state, region, channel))
def _show_statusbar_notifications(self, ad):
ad.adb.shell(EXPAND_NOTIFICATION_BAR)
def _hide_statusbar_notifications(self, ad):
ad.adb.shell(COLLAPSE_NOTIFICATION_BAR)
def _clear_statusbar_notifications(self, ad):
ad.adb.shell(CLEAR_NOTIFICATION_BAR)
def _popup_alert_in_statusbar_notifications(self, ad, alert_text):
alert_in_notification = False
# Open status bar notifications.
self._show_statusbar_notifications(ad)
# Wait for status bar notifications showing.
time.sleep(WAIT_TIME_ANDROID_STATE_SETTLING)
if self._verify_text_present_on_ui(ad, alert_text):
# Found alert in notifications, display it.
uutils.wait_and_click(ad, text=alert_text)
alert_in_notification = True
else:
# Close status bar notifications
self._hide_statusbar_notifications(ad)
return alert_in_notification
def _verify_send_receive_wea_alerts(self, ad, region=None, call=False, call_direction=DIRECTION_MOBILE_ORIGINATED):
result = True
# Always clear notifications in the status bar before testing to find alert notification easily.
self._clear_statusbar_notifications(ad)
for key, value in self.emergency_alert_channels_dict[region].items():
if call:
if not self._setup_voice_call(self.log,
self.android_devices,
call_direction=call_direction):
self.log("Fail to set up voice call!")
return False
# Configs
iteration_result = True
channel = int(key)
alert_text = value["title"]
alert_expected = value["default_value"]
wait_for_alert = value.get("alert_time", WAIT_TIME_FOR_ALERT_TO_RECEIVE)
vibration_time = value.get("vibration_time", DEFAULT_VIBRATION_TIME)
sound_time = value.get("sound_time", DEFAULT_SOUND_TIME)
offset = value.get("offset", DEFAULT_OFFSET)
alert_type = value.get("alert_type", DEFAULT_ALERT_TYPE)
# Begin Iteration
begintime = self._get_current_time_in_secs(ad)
sequence_num = random.randrange(10000, 40000)
ad.log.info("Iteration: %s for %s: %s", alert_text, region, channel)
# Send Alert
ad.droid.cbrSendTestAlert(sequence_num, channel)
if region == NEWZEALAND:
if not self._verify_flashlight(ad):
iteration_result = False
time.sleep(WAIT_TIME_ANDROID_STATE_SETTLING)
if call:
hangup_call(self.log, ad)
time.sleep(wait_for_alert)
# Receive Alert
if not self._verify_text_present_on_ui(ad, alert_text):
alert_in_notification = False
# Check if alert message is expected to be in the notification drawer
if alert_expected == "true" and alert_type == "notification":
# Verify expected notification in notification drawer and open the message
if self._popup_alert_in_statusbar_notifications(ad, alert_text):
ad.log.info("Found alert channel %d in status bar notifications, pop it up.", channel)
# Verify alert text in message.
alert_in_notification = self._verify_text_present_on_ui(ad, alert_text)
if alert_in_notification:
# Verify vibration and notification sound.
# We check sound generated by com.android.systemui package.
# For the reason of offset + 1, refer to b/199565843
# TODO: The notification sound is initiated by system
# rather than CellBroadcastReceiver. In case there are
# any non-emergency notifications coming during testing, we
# should consider to validate notification id instead of
# com.android.systemui package. b/199565843
if not (self._verify_vibration(ad, begintime, vibration_time, offset) and
self._verify_sound(ad, begintime, sound_time, offset+1, SYSUI_PACKAGE)):
iteration_result = False
if alert_expected == "true" and not alert_in_notification:
iteration_result = False
self._log_and_screenshot_alert_fail(ad, "missing", region, channel)
else:
if alert_expected == "true":
ad.log.info("Alert received OK")
self._exit_alert_pop_up(ad)
time.sleep(WAIT_TIME_ANDROID_STATE_SETTLING)
# Vibration and Sound
if not self._verify_text_present_on_ui(ad, alert_text):
ad.log.info("Alert exited OK")
if not (self._verify_vibration(ad, begintime, vibration_time, offset) and
self._verify_sound(ad, begintime, sound_time, offset)):
iteration_result = False
else:
iteration_result = False
self._log_and_screenshot_alert_fail(ad, "present", region, channel)
else:
iteration_result = False
self._log_and_screenshot_alert_fail(ad, "present", region, channel)
if iteration_result:
ad.log.info("Success alert: %s for %s: %s", alert_text, region, channel)
else:
ad.log.error("Failure alert: %s for %s: %s", alert_text, region, channel)
result = iteration_result
self._exit_alert_pop_up(ad)
return result
def _settings_test_flow(self, region):
ad = self.android_devices[0]
result = True
self._set_device_to_specific_region(ad, region)
time.sleep(WAIT_TIME_FOR_UI)
if not self._verify_wea_default_settings(ad, region):
result = False
log_screen_shot(ad, "default_settings_%s" % region)
self._close_wea_settings_page(ad)
# Here close wea setting UI and then immediately open the UI that sometimes causes
# failing to open the wea setting UI. So we just delay 1 sec after closing
# the wea setting UI.
time.sleep(WAIT_TIME_ANDROID_STATE_SETTLING)
if not self._verify_wea_toggle_settings(ad, region):
log_screen_shot(ad, "toggle_settings_%s" % region)
result = False
get_screen_shot_log(ad)
self._close_wea_settings_page(ad)
return result
def _send_receive_test_flow(self, region):
ad = self.android_devices[0]
result = True
self._set_device_to_specific_region(ad, region)
time.sleep(WAIT_TIME_FOR_UI)
ad.log.info("disable DND: %s", CMD_DND_OFF)
ad.adb.shell(CMD_DND_OFF)
if not self._verify_send_receive_wea_alerts(ad, region):
result = False
get_screen_shot_log(ad)
return result
def _setup_receive_test_flow_wifi(self, region, gen, data):
""" Setup send/receive WEA with wifi enabled and various RAT."""
ad = self.android_devices[0]
self._set_device_to_specific_region(ad, region)
time.sleep(WAIT_TIME_FOR_UI)
ad.log.info("disable DND: %s", CMD_DND_OFF)
ad.adb.shell(CMD_DND_OFF)
if gen == GEN_5G:
if not provision_device_for_5g(self.log, ad):
return False
else:
phone_setup_data_for_subscription(ad.log,
ad,
get_default_data_sub_id(ad),
gen)
if data:
ad.log.info("Enable data network!")
else:
ad.log.info("Disable data network!")
ad.droid.telephonyToggleDataConnection(data)
if not wait_for_data_connection(ad.log, ad, data,
MAX_WAIT_TIME_DATA_SUB_CHANGE):
if data:
ad.log.error("Failed to enable data network!")
else:
ad.log.error("Failed to disable data network!")
return False
wifi_toggle_state(ad.log, ad, True)
if not ensure_wifi_connected(ad.log, ad,
self.wifi_network_ssid,
self.wifi_network_pass):
ad.log.error("WiFi connect fail.")
return False
return True
def _setup_voice_call(self, log, ads, call_direction=DIRECTION_MOBILE_ORIGINATED):
if call_direction == DIRECTION_MOBILE_ORIGINATED:
ad_caller = ads[0]
ad_callee = ads[1]
else:
ad_caller = ads[1]
ad_callee = ads[0]
return call_setup_teardown(log, ad_caller, ad_callee, wait_time_in_call=0)
def _setup_wfc_mode(self, ad):
if not set_wfc_mode_for_subscription(ad,
WFC_MODE_WIFI_ONLY,
get_default_data_sub_id(ad)):
ad.log.error("Unable to set WFC mode to %s.", WFC_MODE_WIFI_ONLY)
return False
if not wait_for_wfc_enabled(ad.log, ad, max_time=MAX_WAIT_TIME_WFC_ENABLED):
ad.log.error("WFC is not enabled")
return False
return True
""" Tests Begin """
@test_tracker_info(uuid="a4df03a7-2e44-4f8a-8d62-18435d92fc75")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_uae(self):
""" Verifies Wireless Emergency Alert settings for UAE
configures the device to UAE
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(UAE)
@test_tracker_info(uuid="ac4639ca-b77e-4200-b3f0-9079e2783f60")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_australia(self):
""" Verifies Wireless Emergency Alert settings for Australia
configures the device to Australia
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(AUSTRALIA)
@test_tracker_info(uuid="d0255023-d9bb-45c5-bede-446d720e619a")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_france(self):
""" Verifies Wireless Emergency Alert settings for France
configures the device to France
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(FRANCE)
@test_tracker_info(uuid="fd461335-21c0-470c-aca7-74c8ebb67711")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_japan_kddi(self):
""" Verifies Wireless Emergency Alert settings for Japan (KDDI)
configures the device to KDDI carrier on Japan
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(JAPAN_KDDI)
@test_tracker_info(uuid="63806dbe3-3cce-4b03-b92c-18529f81b7c5")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_newzealand(self):
""" Verifies Wireless Emergency Alert settings for NZ
configures the device to NZ
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(NEWZEALAND)
@test_tracker_info(uuid="426a295e-f64b-43f7-a0df-3959f07ff568")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_hongkong(self):
""" Verifies Wireless Emergency Alert settings for HongKong
configures the device to HongKong
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(HONGKONG)
@test_tracker_info(uuid="d9e2dca2-4965-48d5-9d79-352c4ccf9e0f")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_chile_entel(self):
""" Verifies Wireless Emergency Alert settings for Chile_Entel
configures the device to Chile_Entel
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(CHILE_ENTEL)
@test_tracker_info(uuid="2a045a0e-145c-4677-b454-b0b63a69ea10")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_chile_telefonica(self):
""" Verifies Wireless Emergency Alert settings for Chile_Telefonica
configures the device to Chile_Telefonica
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(CHILE_TELEFONICA)
@test_tracker_info(uuid="77cff297-fe3b-4b4c-b502-5324b4e91506")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_peru_entel(self):
""" Verifies Wireless Emergency Alert settings for Peru_Entel
configures the device to Peru_Entel
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(PERU_ENTEL)
@test_tracker_info(uuid="8b683505-288f-4587-95f2-9a8705476f09")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_peru_telefonica(self):
""" Verifies Wireless Emergency Alert settings for Peru_Telefonica
configures the device to Peru_Telefonica
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(PERU_TELEFONICA)
@test_tracker_info(uuid="cc0e0f64-2c77-4e20-b55e-6f555f7ecb97")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_elsalvador_telefonica(self):
""" Verifies Wireless Emergency Alert settings for Elsalvador_Telefonica
configures the device to Elsalvador_Telefonica
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(ELSALVADOR_TELEFONICA)
@test_tracker_info(uuid="339be9ef-7e0e-463a-ad45-12b7e74bb1c4")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_mexico_telefonica(self):
""" Verifies Wireless Emergency Alert settings for Mexico_Telefonica
configures the device to Mexico_Telefonica
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(MEXICO_TELEFONICA)
@test_tracker_info(uuid="4c3c4e65-c624-4eba-9a81-263f4ee01e12")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_korea(self):
""" Verifies Wireless Emergency Alert settings for Korea
configures the device to Korea
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(KOREA)
@test_tracker_info(uuid="fbaf258e-b596-4bfa-a20f-4b93fc4ccc4c")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_taiwan(self):
""" Verifies Wireless Emergency Alert settings for Taiwan
configures the device to Taiwan
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(TAIWAN)
@test_tracker_info(uuid="3f8e4110-a7d3-4b3b-ac2b-36ea17cfc141")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_canada(self):
""" Verifies Wireless Emergency Alert settings for Canada
configures the device to Canada
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(CANADA)
@test_tracker_info(uuid="fa0cd219-b0f2-4a38-8733-cd4212a954c5")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_brazil(self):
""" Verifies Wireless Emergency Alert settings for Brazil
configures the device to Brazil
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(BRAZIL)
@test_tracker_info(uuid="581ecebe-9f68-4270-ab5d-182b1ee4e13b")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_columbia(self):
""" Verifies Wireless Emergency Alert settings for Columbia
configures the device to Columbia
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(COLUMBIA)
@test_tracker_info(uuid="2ebfc05b-3512-4eff-9c09-5d8f49fe0b5e")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_ecuador_telefonica(self):
""" Verifies Wireless Emergency Alert settings for Ecuador Telefonica
configures the device to Ecuador Telefonica
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(ECUADOR_TELEFONICA)
@test_tracker_info(uuid="694bf8f6-9e6e-46b4-98df-c7ab1a9a3ec8")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_ecuador_claro(self):
""" Verifies Wireless Emergency Alert settings for Ecuador Claro
configures the device to Ecuador Claro
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(ECUADOR_CLARO)
@test_tracker_info(uuid="96628975-a23f-47f7-ab18-1aa7a7dc08b5")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_puertorico(self):
""" Verifies Wireless Emergency Alert settings for Puertorico
configures the device to Puertorico
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(PUERTORICO)
@test_tracker_info(uuid="9f73f7ec-cb2a-45e5-8829-db14798dcdac")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_netherlands(self):
""" Verifies Wireless Emergency Alert settings for Netherlands
configures the device to Netherlands
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(NETHERLANDS)
@test_tracker_info(uuid="b3caf3b4-3024-4431-9a7a-4982e20b178b")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_romania(self):
""" Verifies Wireless Emergency Alert settings for Romania
configures the device to Romania
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(ROMANIA)
@test_tracker_info(uuid="081a5329-d23f-4df8-b472-d4f3ca5ee3c1")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_estonia(self):
""" Verifies Wireless Emergency Alert settings for Estonia
configures the device to Estonia
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(ESTONIA)
@test_tracker_info(uuid="7e0d3b96-f11c-44d9-b3a3-9ce9e21bf37d")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_lithuania(self):
""" Verifies Wireless Emergency Alert settings for Lithuania
configures the device to Lithuania
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(LITHUANIA)
@test_tracker_info(uuid="b40648a0-d04f-4c45-9051-76e64756ef00")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_latvia(self):
""" Verifies Wireless Emergency Alert settings for Latvia
configures the device to Latvia
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(LATVIA)
@test_tracker_info(uuid="9488a6ef-2903-421d-adec-fd65df3aac60")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_greece(self):
""" Verifies Wireless Emergency Alert settings for Greece
configures the device to Greece
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(GREECE)
@test_tracker_info(uuid="53cf276e-8617-45ce-b3f5-e8995b4be279")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_italy(self):
""" Verifies Wireless Emergency Alert settings for Italy
configures the device to Italy
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(ITALY)
@test_tracker_info(uuid="a1a57aa8-c229-4f04-bc65-1f17688159a1")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_southafrica(self):
""" Verifies Wireless Emergency Alert settings for SouthAfrica
configures the device to SouthAfrica
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(SOUTHAFRICA)
@test_tracker_info(uuid="a0ed231e-07e0-4dc8-a071-14ec7818e96f")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_uk(self):
""" Verifies Wireless Emergency Alert settings for UK
configures the device to UK
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(UK)
@test_tracker_info(uuid="00c77647-0986-41f8-9202-cc0e2e51e278")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_israel(self):
""" Verifies Wireless Emergency Alert settings for Israel
configures the device to Israel
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(ISRAEL)
@test_tracker_info(uuid="7f2ca9f5-31f6-4477-9383-5acd1ed2598f")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_oman(self):
""" Verifies Wireless Emergency Alert settings for Oman
configures the device to Oman
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(OMAN)
@test_tracker_info(uuid="97525c27-3cba-4472-b00d-d5dabc5a2fe5")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_japan_softbank(self):
""" Verifies Wireless Emergency Alert settings for Japan (Softbank)
configures the device to Japan (Softbank)
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(JAPAN_SOFTBANK)
@test_tracker_info(uuid="109494df-3ae2-4b77-ae52-fb0c22e654c8")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_saudiarabia(self):
""" Verifies Wireless Emergency Alert settings for SaudiArabia
configures the device to SaudiArabia
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(SAUDIARABIA)
@test_tracker_info(uuid="a5f232c4-e0fa-4ce6-aa00-c838f0d86272")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_us_att(self):
""" Verifies Wireless Emergency Alert settings for US ATT
configures the device to US ATT
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(US_ATT)
@test_tracker_info(uuid="a712c136-8ce9-4bc2-9dda-05ecdd11e8ad")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_us_tmo(self):
""" Verifies Wireless Emergency Alert settings for US TMO
configures the device to US TMO
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(US_TMO)
@test_tracker_info(uuid="20403705-f627-42d7-9dc2-4e820273a622")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_us_vzw(self):
""" Verifies Wireless Emergency Alert settings for US VZW
configures the device to US VZW
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(US_VZW)
@test_tracker_info(uuid="fb4cda9e-7b4c-469e-a480-670bfb9dc6d7")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_germany_telekom(self):
""" Verifies Wireless Emergency Alert settings for Germany telecom
configures the device to Germany telecom
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(GERMANY_TELEKOM)
@test_tracker_info(uuid="f4afbef9-c1d7-4fab-ad0f-e03bc961a689")
@TelephonyBaseTest.tel_test_wrap
def test_default_alert_settings_qatar_vodafone(self):
""" Verifies Wireless Emergency Alert settings for Qatar vodafone
configures the device to Qatar vodafone
verifies alert names and its default values
toggles the alert twice if available
Returns:
True if pass; False if fail and collects screenshot
"""
return self._settings_test_flow(QATAR_VODAFONE)
@test_tracker_info(uuid="f3a99475-a23f-427c-a371-d2a46d357d75")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_australia(self):
""" Verifies Wireless Emergency Alerts for AUSTRALIA
configures the device to AUSTRALIA
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(AUSTRALIA)
@test_tracker_info(uuid="73c98624-2935-46ea-bf7c-43c431177ebd")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_brazil(self):
""" Verifies Wireless Emergency Alerts for BRAZIL
configures the device to BRAZIL
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(BRAZIL)
@test_tracker_info(uuid="8c2e16f8-9b7f-4733-a65e-f087d2480e92")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_canada(self):
""" Verifies Wireless Emergency Alerts for CANADA
configures the device to CANADA
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(CANADA)
@test_tracker_info(uuid="feea4e42-99cc-4075-bd78-15b149cb2e4c")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_chile_entel(self):
""" Verifies Wireless Emergency Alerts for CHILE_ENTEL
configures the device to CHILE_ENTEL
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(CHILE_ENTEL)
@test_tracker_info(uuid="d2ec84ad-7f9a-4aa2-97e8-ca9ffa6c58a7")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_chile_telefonica(self):
""" Verifies Wireless Emergency Alerts for CHILE_TELEFONICA
configures the device to CHILE_TELEFONICA
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(CHILE_TELEFONICA)
@test_tracker_info(uuid="4af30b94-50ea-4e19-8866-31fd3573a059")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_columbia(self):
""" Verifies Wireless Emergency Alerts for COLUMBIA
configures the device to COLUMBIA
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(COLUMBIA)
@test_tracker_info(uuid="2378b651-2097-48e6-b409-885bde9f4586")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_ecuador_telefonica(self):
""" Verifies Wireless Emergency Alerts for ECUADOR Telefonica
configures the device to ECUADOR Telefonica
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(ECUADOR_TELEFONICA)
@test_tracker_info(uuid="cd064259-6cb2-460b-8225-de613f6cf967")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_ecuador_claro(self):
""" Verifies Wireless Emergency Alerts for ECUADOR Claro
configures the device to ECUADOR Claro
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(ECUADOR_CLARO)
@test_tracker_info(uuid="b11d1dd7-2090-463a-ba3a-39703db7f376")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_elsalvador_telefonica(self):
""" Verifies Wireless Emergency Alerts for ELSALVADOR telefonica
configures the device to ELSALVADOR telefonica
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(ELSALVADOR_TELEFONICA)
@test_tracker_info(uuid="46d6c612-21df-476e-a41b-3baa621b52f0")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_estonia(self):
""" Verifies Wireless Emergency Alerts for ESTONIA
configures the device to ESTONIA
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(ESTONIA)
@test_tracker_info(uuid="6de32af0-9545-4143-b327-146e4d0af28c")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_france(self):
""" Verifies Wireless Emergency Alerts for FRANCE
configures the device to FRANCE
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(FRANCE)
@test_tracker_info(uuid="9c5826db-0457-4c6f-9d06-6973b5f77e3f")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_greece(self):
""" Verifies Wireless Emergency Alerts for GREECE
configures the device to GREECE
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(GREECE)
@test_tracker_info(uuid="57dd9a79-6ac2-41c7-b7eb-3afb01f35bd2")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_hongkong(self):
""" Verifies Wireless Emergency Alerts for Japan HONGKONG
configures the device to HONGKONG
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(HONGKONG)
@test_tracker_info(uuid="8ffdfaf8-5925-4e66-be22-e1ac25165784")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_israel(self):
""" Verifies Wireless Emergency Alerts for ISRAEL
configures the device to ISRAEL
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(ISRAEL)
@test_tracker_info(uuid="f38e289c-4c7d-48a7-9b21-f7d872e3eb98")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_italy(self):
""" Verifies Wireless Emergency Alerts for ITALY
configures the device to ITALY
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(ITALY)
@test_tracker_info(uuid="d434dbf8-72e8-44a7-ab15-d418133088c6")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_japan_kddi(self):
""" Verifies Wireless Emergency Alerts for JAPAN_KDDI
configures the device to JAPAN_KDDI
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(JAPAN_KDDI)
@test_tracker_info(uuid="c597995f-8937-4987-91db-7f83a0f5f4ec")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_japan_softbank(self):
""" Verifies Wireless Emergency Alerts for JAPAN_SOFTBANK
configures the device to JAPAN_SOFTBANK
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(JAPAN_SOFTBANK)
@test_tracker_info(uuid="b159d6b2-b900-4329-9b77-c9ba9e83dddc")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_korea(self):
""" Verifies Wireless Emergency Alerts for KOREA
configures the device to KOREA
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(KOREA)
@test_tracker_info(uuid="9b59c594-179a-44d6-9dbf-68adc43aa820")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_latvia(self):
""" Verifies Wireless Emergency Alerts for LATVIA
configures the device to LATVIA
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(LATVIA)
@test_tracker_info(uuid="af7d916b-42f0-4420-8a1c-b39d3f184953")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_lithuania(self):
""" Verifies Wireless Emergency Alerts for LITHUANIA
configures the device to LITHUANIA
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(LITHUANIA)
@test_tracker_info(uuid="061cd0f3-cefa-4e5d-a1aa-f6125ccf9347")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_mexico_telefonica(self):
""" Verifies Wireless Emergency Alerts for MEXICO telefonica
configures the device to MEXICO telefonica
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(MEXICO_TELEFONICA)
@test_tracker_info(uuid="a9c7cdbe-5a9e-49fb-af60-953e8c1547c0")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_netherlands(self):
""" Verifies Wireless Emergency Alerts for NETHERLANDS
configures the device to NETHERLANDS
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(NETHERLANDS)
@test_tracker_info(uuid="23db0b77-1a1c-494c-bcc6-1355fb037a6f")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_newzealand(self):
""" Verifies Wireless Emergency Alerts for NEWZEALAND
configures the device to NEWZEALAND
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(NEWZEALAND)
@test_tracker_info(uuid="a4216cbb-4ed7-4e72-98e7-2ebebe904956")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_oman(self):
""" Verifies Wireless Emergency Alerts for OMAN
configures the device to OMAN
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(OMAN)
@test_tracker_info(uuid="35f0f156-1555-4bf1-98b1-b5848d8e2d39")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_peru_entel(self):
""" Verifies Wireless Emergency Alerts for PERU_ENTEL
configures the device to PERU_ENTEL
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(PERU_ENTEL)
@test_tracker_info(uuid="4708c783-ca89-498d-b74c-a6bc9df3fb32")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_peru_telefonica(self):
""" Verifies Wireless Emergency Alerts for PERU_TELEFONICA
configures the device to PERU_TELEFONICA
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(PERU_TELEFONICA)
@test_tracker_info(uuid="fefb293a-5c22-45b2-9323-ccb355245c9a")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_puertorico(self):
""" Verifies Wireless Emergency Alerts for PUERTORICO
configures the device to PUERTORICO
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(PUERTORICO)
@test_tracker_info(uuid="7df5a2fd-fc20-46a1-8a57-c7690daf97ff")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_romania(self):
""" Verifies Wireless Emergency Alerts for ROMANIA
configures the device to ROMANIA
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(ROMANIA)
@test_tracker_info(uuid="cb1a2e92-eddb-4d8a-8b8d-96a0b8c558dd")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_saudiarabia(self):
""" Verifies Wireless Emergency Alerts for SAUDIARABIA
configures the device to SAUDIARABIA
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(SAUDIARABIA)
@test_tracker_info(uuid="0bf0196a-e456-4fa8-a735-b8d6d014ce7f")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_southafrica(self):
""" Verifies Wireless Emergency Alerts for SOUTHAFRICA
configures the device to SOUTHAFRICA
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(SOUTHAFRICA)
@test_tracker_info(uuid="513c7d24-4957-49a4-98a2-f8a9444124ae")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_taiwan(self):
""" Verifies Wireless Emergency Alerts for TAIWAN
configures the device to TAIWAN
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(TAIWAN)
@test_tracker_info(uuid="43d54588-95e2-4e8a-b322-f6c99b9d3fbb")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_uae(self):
""" Verifies Wireless Emergency Alerts for UAE
configures the device to UAE
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(UAE)
@test_tracker_info(uuid="b44425c3-0d5b-498a-8322-86cc03eefd7d")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_uk(self):
""" Verifies Wireless Emergency Alerts for UK
configures the device to UK
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(UK)
@test_tracker_info(uuid="b3e73b61-6232-44f0-9507-9954387ab25b")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_us_att(self):
""" Verifies Wireless Emergency Alerts for US ATT
configures the device to US ATT
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(US_ATT)
@test_tracker_info(uuid="f993d21d-c240-4196-8015-ea8f5967fdb3")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_us_tmo(self):
""" Verifies Wireless Emergency Alerts for US TMO
configures the device to US TMO
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(US_TMO)
@test_tracker_info(uuid="173293f2-4876-4891-ad2c-2b0d5269b2e0")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_us_vzw(self):
""" Verifies Wireless Emergency Alerts for US Verizon
configures the device to US Verizon
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(US_VZW)
@test_tracker_info(uuid="b94cc715-d2e2-47a4-91cd-acb47d64e6b2")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_germany_telekom(self):
""" Verifies Wireless Emergency Alerts for Germany telekom
configures the device to Germany telekom
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(GERMANY_TELEKOM)
@test_tracker_info(uuid="f0b0cdbf-32c4-4dfd-b8fb-03d8b6169fd1")
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_qatar_vodafone(self):
""" Verifies Wireless Emergency Alerts for Qatar vodafone.
configures the device to Qatar vodafone
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
return self._send_receive_test_flow(QATAR_VODAFONE)
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_5g_wifi_us_vzw(self):
""" Verifies WEA with WiFi and 5G NSA data network enabled for US Verizon.
configures the device to US Verizon
enables WiFi and 5G NSA data network.
connects to internet via WiFi.
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
result = True
if not self._setup_receive_test_flow_wifi(US_VZW, GEN_5G, True):
result = False
if result:
if not self._verify_send_receive_wea_alerts(self.android_devices[0], US_VZW):
result = False
get_screen_shot_log(self.android_devices[0])
return result
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_4g_wifi_us_vzw(self):
""" Verifies WEA with WiFi and 4G data network enabled for US Verizon.
configures the device to US Verizon
enables WiFi and 4G data network.
connects to internet via WiFi.
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
result = True
if not self._setup_receive_test_flow_wifi(US_VZW, GEN_4G, True):
result = False
if result:
if not self._verify_send_receive_wea_alerts(self.android_devices[0], US_VZW):
result = False
get_screen_shot_log(self.android_devices[0])
return result
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_3g_wifi_us_vzw(self):
""" Verifies WEA with WiFi and 3G data network enabled for US Verizon.
configures the device to US Verizon
enables WiFi and 3G data network.
connects to internet via WiFi.
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
result = True
if not self._setup_receive_test_flow_wifi(US_VZW, GEN_3G, True):
result = False
if result:
if not self._verify_send_receive_wea_alerts(self.android_devices[0], US_VZW):
result = False
get_screen_shot_log(self.android_devices[0])
return result
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_5g_wifi_only_us_vzw(self):
""" Verifies WEA with WiFi enabled and 5G NSA data network disabled for US Verizon.
configures the device to US Verizon
enables WiFi and disable 5G NSA data network.
connects to internet via WiFi.
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
result = True
if not self._setup_receive_test_flow_wifi(US_VZW, GEN_5G, False):
result = False
if result:
if not self._verify_send_receive_wea_alerts(self.android_devices[0], US_VZW):
result = False
get_screen_shot_log(self.android_devices[0])
return result
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_4g_wifi_only_us_vzw(self):
""" Verifies WEA with WiFi enabled and 4G data network disabled for US Verizon.
configures the device to US Verizon
enables WiFi and disable 4G data network.
connects to internet via WiFi.
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
result = True
if not self._setup_receive_test_flow_wifi(US_VZW, GEN_4G, False):
result = False
if result:
if not self._verify_send_receive_wea_alerts(self.android_devices[0], US_VZW):
result = False
get_screen_shot_log(self.android_devices[0])
return result
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_3g_wifi_only_us_vzw(self):
""" Verifies WEA with WiFi enabled and 3G data network disabled for US Verizon.
configures the device to US Verizon
enables WiFi and disable 3G data network.
connects to internet via WiFi.
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
result = True
if not self._setup_receive_test_flow_wifi(US_VZW, GEN_3G, False):
result = False
if result:
if not self._verify_send_receive_wea_alerts(self.android_devices[0], US_VZW):
result = False
get_screen_shot_log(self.android_devices[0])
return result
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_5g_wfc_wifi_only_us_vzw(self):
""" Verifies WEA with WFC mode and 5G NSA data network disabled for US Verizon.
configures the device to US Verizon
enables WFC mode and disable 5G NSA data network.
connects to internet via WiFi.
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
result = True
if not self._setup_receive_test_flow_wifi(US_VZW, GEN_5G, False)\
or not self._setup_wfc_mode(self.android_devices[0]):
result = False
if result:
if not self._verify_send_receive_wea_alerts(self.android_devices[0], US_VZW):
result = False
get_screen_shot_log(self.android_devices[0])
return result
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_4g_wfc_wifi_only_us_vzw(self):
""" Verifies WEA with WFC mode and 4G data network disabled for US Verizon.
configures the device to US Verizon
enables WFC mode and disable 4G data network.
connects to internet via WiFi.
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
result = True
if not self._setup_receive_test_flow_wifi(US_VZW, GEN_4G, False)\
or not self._setup_wfc_mode(self.android_devices[0]):
result = False
if result:
if not self._verify_send_receive_wea_alerts(self.android_devices[0], US_VZW):
result = False
get_screen_shot_log(self.android_devices[0])
return True
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_3g_wfc_wifi_only_us_vzw(self):
""" Verifies WEA with WFC mode and 3G data network disabled for US Verizon.
configures the device to US Verizon
enables WFC mode and disable 3G data network.
connects to internet via WiFi.
send alerts across all channels,
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
result = True
if not self._setup_receive_test_flow_wifi(US_VZW, GEN_3G, False)\
or not self._setup_wfc_mode(self.android_devices[0]):
result = False
if result:
if not self._verify_send_receive_wea_alerts(self.android_devices[0], US_VZW):
result = False
get_screen_shot_log(self.android_devices[0])
return True
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_5g_epdg_mo_wfc_wifi_only_us_vzw(self):
""" Verifies WEA during VoWiFi call for US Verizon.
configures the device to US Verizon
enables WFC mode and disable 5G NSA data network.
connects to internet via WiFi.
sends alerts across all channels and initiates mo VoWiFi call respectively.
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
result = True
if not self._setup_receive_test_flow_wifi(US_VZW, GEN_5G, False)\
or not self._setup_wfc_mode(self.android_devices[0]):
result = False
phone_setup_voice_general(self.log, self.android_devices[1] )
if result:
if not self._verify_send_receive_wea_alerts(self.android_devices[0], US_VZW, call=True):
result = False
get_screen_shot_log(self.android_devices[0])
return result
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_4g_epdg_mo_wfc_wifi_only_us_vzw(self):
""" Verifies WEA during VoWiFi call for US Verizon.
configures the device to US Verizon
enables WFC mode and disable 5G NSA data network.
connects to internet via WiFi.
sends alerts across all channels and initiates mo VoWiFi call respectively.
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
result = True
if not self._setup_receive_test_flow_wifi(US_VZW, GEN_4G, False)\
or not self._setup_wfc_mode(self.android_devices[0]):
result = False
phone_setup_voice_general(self.log, self.android_devices[1] )
if result:
if not self._verify_send_receive_wea_alerts(self.android_devices[0], US_VZW, call=True):
result = False
get_screen_shot_log(self.android_devices[0])
return result
@TelephonyBaseTest.tel_test_wrap
def test_send_receive_alerts_3g_epdg_mo_wfc_wifi_only_us_vzw(self):
""" Verifies WEA during VoWiFi call for US Verizon.
configures the device to US Verizon
enables WFC mode and disable 5G NSA data network.
connects to internet via WiFi.
sends alerts across all channels and initiates mo VoWiFi call respectively.
verify if alert is received correctly
verify sound and vibration timing
click on OK/exit alert and verify text
Returns:
True if pass; False if fail and collects screenshot
"""
result = True
if not self._setup_receive_test_flow_wifi(US_VZW, GEN_3G, False)\
or not self._setup_wfc_mode(self.android_devices[0]):
result = False
phone_setup_voice_general(self.log, self.android_devices[1] )
if result:
if not self._verify_send_receive_wea_alerts(self.android_devices[0], US_VZW, call=True):
result = False
get_screen_shot_log(self.android_devices[0])
return result