blob: 6f874c66ada1cd2693f4592401ff7f01164a9f2d [file] [log] [blame]
#!/usr/bin/env python3.4
#
# Copyright 2022 - 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.
import time
from acts import asserts
from acts import signals
from acts.test_decorators import test_tracker_info
from acts.libs.utils.multithread import multithread_func
from acts.utils import get_current_epoch_time
from acts_contrib.test_utils.net import ui_utils as uutils
from acts_contrib.test_utils.tel.TelephonyBaseTest import TelephonyBaseTest
from acts.controllers.android_lib.errors import AndroidDeviceError
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_logging_utils import get_screen_shot_logs
from acts_contrib.test_utils.tel.tel_rcs_utils import go_to_message_app
from acts_contrib.test_utils.tel.tel_rcs_utils import go_to_rcs_settings
from acts_contrib.test_utils.tel.tel_rcs_utils import is_rcs_enabled
from acts_contrib.test_utils.tel.tel_rcs_utils import enable_chat_feature
from acts_contrib.test_utils.tel.tel_rcs_utils import disable_chat_feature
from acts_contrib.test_utils.tel.tel_rcs_utils import is_rcs_connected
class TelLiveGFTRcsTest(TelephonyBaseTest):
def setup_class(self):
super().setup_class()
self.my_error_msg = ""
def setup_test(self):
TelephonyBaseTest.setup_test(self)
for ad in self.android_devices:
ad.send_keycode("HOME")
def teardown_test(self):
TelephonyBaseTest.teardown_test(self)
get_screen_shot_logs(self.android_devices)
def teardown_class(self):
TelephonyBaseTest.teardown_class(self)
def test_is_single_reg_capable(self):
""" Tests single registration provisioning.
"""
for ad in self.android_devices:
isRcsVolteSingleRegistrationCapable = ad.droid.isRcsVolteSingleRegistrationCapable()
ad.log.info("isRcsVolteSingleRegistrationCapable: %r",
isRcsVolteSingleRegistrationCapable)
@TelephonyBaseTest.tel_test_wrap
@test_tracker_info(uuid="eb68fdc6-b070-4ba2-92f4-3dd8aca78a2b")
def test_rcs_enable(self):
"""1.1.1 - First time Registration over Cellular - Successful
"""
tasks = [(enable_chat_feature, (ad,)) for ad in self.android_devices]
if not multithread_func(self.log, tasks):
raise signals.TestFailure("enable_chat_feature failure: %s"
%(self.my_error_msg))
@TelephonyBaseTest.tel_test_wrap
@test_tracker_info(uuid="176a0230-c35d-454d-a1f7-c706f71c5dbd")
def test_rcs_message(self):
"""Sends rcs message
Returns:
True if pass; False if fail
"""
try:
for ad in self.android_devices:
enable_chat_feature(ad)
# Go to message
go_to_message_app(ad)
time.sleep(2)
if uutils.has_element(ad, text="Start chat"):
uutils.wait_and_click(ad, text="Start chat")
time.sleep(2)
log_screen_shot(ad, "click_start_chat")
# input MT phone number
uutils.wait_and_input_text(ad, input_text=ad.mt_phone_number)
time.sleep(2)
self.log.info("input mt phone number")
log_screen_shot(ad, "input_message_phone_num")
self.log.info("select receiver")
# com.google.android.apps.messaging:id/contact_picker_create_group
uutils.wait_and_click(ad, resource_id="com.google.android.apps."
"messaging:id/contact_picker_create_group")
time.sleep(2)
log_screen_shot(ad, "message_select_receiver")
# input chat message
uutils.wait_and_input_text(ad, input_text="RCS test")
self.log.info("input rcs message")
time.sleep(2)
log_screen_shot(ad, "message_input_rcs")
self.log.info("click send message button")
uutils.wait_and_click(ad, resource_id="com.google.android.apps."
"messaging:id/send_message_button_icon")
time.sleep(2)
log_screen_shot(ad, "message_click_send")
is_rcs_connected(ad)
return True
except AndroidDeviceError:
return False