Написание тестов пользовательского интерфейса для языка RTL - PullRequest
0 голосов
/ 28 ноября 2018

Я пытаюсь написать тесты пользовательского интерфейса для языка RTL.Вот сценарий.У меня есть AutoCompleteTextView, на котором, когда я пытаюсь пометить пользователя ("@user"), он показывает выпадающий список предлагаемых пользователей.Это работает для языков RTL и LTR, когда я вручную печатаю строки.Однако, если я попытаюсь проверить функциональность эспрессо, он не будет работать, как ожидалось.

Вот как я пытаюсь написать тест пользовательского интерфейса: Всякий раз, когда я говорю редактировать текст, набирая «@u», используя onView(withId(R.id.message_input_field)).perform(typeText("@u")), Espresso генерирует ключевые события, чтобы ввести символы в текст редактирования.Что-то вроде KEY_DOWN_SHIFT, KEY_DOWN_2, KEY_UP_SHIFT, KEY_UP_2, это типа «@» и так далее.Все отлично работает на английском языке.Проблема возникает, когда мы пытаемся пометить, используя символы RTL, используя что-то вроде onView(withId(R.id.message_input_field)).perform(typeText("@פ")).Эспрессо не распознает символы RTL и не может генерировать ключевые события, в конечном итоге выдает java.lang.RuntimeException: Failed to get key events for string פ (i.e. current IME does not understand how to translate the string into key events) Я пытался сделать replaceText(…) вместо typeText(…), но replaceText в свою очередь выполняет editText.setText (…).но это не показывает раскрывающийся список.Странно.

Как мне написать тест интерфейса для этого сценария?

PS Не имеет значения, какой у вас язык устройства или какая клавиатура выбрана в данный момент.

...