@@ -146,7 +146,8 @@ class TestLockscreen(UnityTestCase):
146146 pinentryField = self.main_window.get_pinentryField()
147147 self.touch.tap_object(pinentryField)
148148 self.assertThat(pinentryField.activeFocus, Eventually(Equals(True)))
149− self.keyboard.type(passphrase)
149+ for character in passphrase:
150+ self._type_character(character, pinentryField)
150151 logger.debug("Typed passphrase: %s", pinentryField.text)
151152 self.keyboard.type("\n")
152153
@@ -164,6 +165,16 @@ class TestLockscreen(UnityTestCase):
164165 prompt = self.main_window.get_greeter().get_prompt()
165166 self.touch.tap_object(prompt)
166167 self.assertThat(prompt.activeFocus, Eventually(Equals(True)))
167− self.keyboard.type(passphrase)
168+ for character in passphrase:
169+ self._type_character(character, prompt)
168170 logger.debug("Typed passphrase: %s", prompt.text)
169171 self.keyboard.type("\n")
172+
173+ def _type_character(self, character, prompt, retries=5):
174+ current_text = prompt.text
175+ self.keyboard.type(character)
176+ try:
177+ self.assertThat(prompt.text, Eventually(Equals(current_text + character)))
178+ except:
179+ if retries > 0:
180+ _type_character(character, retries-1)