TestingWithFrank / Frank

Automated acceptance tests for native iOS apps
http://testingwithfrank.github.io/
Apache License 2.0
215 stars 57 forks source link

KEYSTROKE_DELAY in KIFTypist.m not long enough when switching keypads #44

Closed CMTaylor closed 9 years ago

CMTaylor commented 9 years ago

As of iOS 8 and running Frankified apps in the iPad Simulator, the KEYSTROKE_DELAY in KIFTypist.m not long enough when switching keypads. Keys like Shift, or any other of the Modifier Keys, cause the keypad to be redrawn. This redraw takes longer in iOS 8, especially on Retina devices. The result is that the modified key (e.g. '[' or ']') is not actually ready to be touched following the standard inter-key delay defined by KEYSTROKE_DELAY.

I have a solution for this and will issue a PR. The solution is to define a longer MODIFIER_DELAY (double the current KEYSTROKE_DELAY) and to follow each use of a Modifier Key with an additional MODIFIER_DELAY delay. This has been thoroughly tested on my app and has resulted in close to 100% reliability when sending arbitrary sequences of keys that require various modifiers.

moredip commented 9 years ago

I pulled in the KIFTypist fix in the PublicAutomation repo. When I get a moment in front of a computer I'll update git submodules, rebuild things, and put out a new frank release with that fix in. Thanks again for the contribution.

moredip commented 9 years ago

This is now available in frank-cucumber 1.2.5, released off of 858d8e740c5b31eedbd4ca2660ebd1618ca50e2a.