blob: 2ce82daa62fa5b4180071ea20515e1435dfbefd4 [file] [log] [blame]
"""Tests for event-related commands."""
import inspect
import time
import unittest
import testcase_base
from utils import util
EVENT = 'event'
CMD_EVENT_TYPES = '%s types\n' % EVENT
CMD_EVENT_CODES_PRE = '%s codes' % EVENT
CMD_EVENT_CODES_EV_SYN = '%s EV_SYN\n' % CMD_EVENT_CODES_PRE
CMD_EVENT_CODES_EV_MSC = '%s EV_MSC\n' % CMD_EVENT_CODES_PRE
CMD_EVENT_CODES_EV_SW = '%s EV_SW\n' % CMD_EVENT_CODES_PRE
CMD_EVENT_CODES_EV_LED = '%s EV_LED\n' % CMD_EVENT_CODES_PRE
CMD_EVENT_CODES_EV_SND = '%s EV_SND\n' % CMD_EVENT_CODES_PRE
CMD_EVENT_CODES_EV_REP = '%s EV_REP\n' % CMD_EVENT_CODES_PRE
CMD_EVENT_CODES_EV_FF = '%s EV_FF\n' % CMD_EVENT_CODES_PRE
CMD_EVENT_CODES_EV_PWR = '%s EV_PWR\n' % CMD_EVENT_CODES_PRE
CMD_EVENT_CODES_EV_FF_STATUS = '%s EV_FF_STATUS\n' % CMD_EVENT_CODES_PRE
CMD_EVENT_CODES_EV_MAX = '%s EV_MAX\n' % CMD_EVENT_CODES_PRE
CMD_EVENT_CODES_EV_KEY = '%s EV_KEY\n' % CMD_EVENT_CODES_PRE
CMD_EVENT_CODES_EV_REL = '%s EV_REL\n' % CMD_EVENT_CODES_PRE
CMD_EVENT_CODES_EV_ABS = '%s EV_ABS\n' % CMD_EVENT_CODES_PRE
class EventTest(testcase_base.BaseConsoleTest):
"""This class aims to test event-related emulator console commands."""
def __init__(self, method_name=None, avd=None):
if method_name:
super(EventTest, self).__init__(method_name)
else:
super(EventTest, self).__init__()
self.avd = avd
def _verify_events_no_alias(self, command):
is_cmd_successful, output_event_list_all = util.execute_console_command(
self.telnet, command, util.EVENTS_CODE_NO_ALIAS)
self.assert_cmd_successful(
is_cmd_successful,
'output mismatch: fail to run %s properly' % command,
False, '', util.EVENTS_CODE_NO_ALIAS, output_event_list_all)
def _verify_all_events_no_allias(self):
self._verify_events_no_alias(CMD_EVENT_CODES_EV_SYN)
self._verify_events_no_alias(CMD_EVENT_CODES_EV_MSC)
self._verify_events_no_alias(CMD_EVENT_CODES_EV_LED)
self._verify_events_no_alias(CMD_EVENT_CODES_EV_SND)
self._verify_events_no_alias(CMD_EVENT_CODES_EV_REP)
self._verify_events_no_alias(CMD_EVENT_CODES_EV_FF)
self._verify_events_no_alias(CMD_EVENT_CODES_EV_PWR)
self._verify_events_no_alias(CMD_EVENT_CODES_EV_FF_STATUS)
self._verify_events_no_alias(CMD_EVENT_CODES_EV_MAX)
def _verify_event_codes(self, command, filename):
is_cmd_successful = False
for i in range(util.NUM_MAX_TRIALS):
print ('Running: %s verified against %s, trial #%s' %
(inspect.stack()[0][3], filename.strip(), str(i + 1)))
self.telnet.write(command)
time.sleep(util.CMD_WAIT_TIMEOUT_S)
output_event_list_all = util.remove_all_spaces(
util.parse_output_for_ev(self.telnet))
correct_output = util.remove_all_spaces(
util.read_string_from_file(filename))
is_cmd_successful = (output_event_list_all == correct_output)
if is_cmd_successful:
break
time.sleep(util.TRIAL_WAIT_TIMEOUT_S)
self.assert_cmd_successful(
is_cmd_successful, 'output mismatch: fail to run %s properly' % command,
False, '', correct_output, output_event_list_all)
def _verify_all_event_codes(self):
self._verify_event_codes(CMD_EVENT_CODES_EV_KEY,
util.EVENTS_CODE_EV_KEY_FILENAME)
self._verify_event_codes(CMD_EVENT_CODES_EV_REL,
util.EVENTS_CODE_EV_REL_FILENAME)
self._verify_event_codes(CMD_EVENT_CODES_EV_ABS,
util.EVENTS_CODE_EV_ABS_FILENAME)
self._verify_event_codes(CMD_EVENT_CODES_EV_SW,
util.EVENTS_CODE_EV_SW_FILENAME)
def test_list_event_aliases(self):
"""Test for command: event types.
Test Rail ID: C14595360
Test steps:
1. Launch an emulator avd
2. From command prompt, run: telnet localhost <port>
3. Copy the auth_token value from ~/.emulator_console_auth_token
4. Run: auth auth_token
5. Run: event types
6. verify 1
Verify:
1. Available event types are listed
"""
print 'Running test: %s' % (inspect.stack()[0][3])
is_cmd_successful = False
for i in range(util.NUM_MAX_TRIALS):
print ('Running: %s, trial #%s' %
(inspect.stack()[0][3], str(i + 1)))
self.telnet.write(CMD_EVENT_TYPES)
time.sleep(util.CMD_WAIT_TIMEOUT_S)
output_event_aliases = util.remove_all_spaces(
util.parse_output_for_ev(self.telnet))
correct_output = util.remove_all_spaces(
util.read_string_from_file(util.EVENTS_EV_TYPES_FILENAME))
is_cmd_successful = (output_event_aliases == correct_output)
if is_cmd_successful:
break
time.sleep(util.TRIAL_WAIT_TIMEOUT_S)
self.assert_cmd_successful(
is_cmd_successful, 'Listing all aliases of events failed',
False, '', correct_output, output_event_aliases)
def test_list_all_code_aliases(self):
"""Test for command: event codes <type>" (for example: event codes EV_REL).
Test Rail ID: C14595360
Test steps:
1. Launch an emulator avd
2. From command prompt, run: telnet localhost <port>
3. Copy the auth_token value from ~/.emulator_console_auth_token
4. Run: auth auth_token
5. Run several "event codes <type>" commands
6. verify 1
Verify:
1. Available event code alias for the selected type are listed
"""
print 'Running test: %s' % (inspect.stack()[0][3])
self._verify_all_event_codes()
self._verify_all_events_no_allias()
def test_simulate_key_presses(self):
"""Test for command: event text <message>.
Test Rail ID: C14595360
"""
# b/204884
print 'Running test: %s' % (inspect.stack()[0][3])
pass
if __name__ == '__main__':
print '======= Event Test ======='
unittest.main()