@@ -89,6 +89,30 @@ test( "allow form submit on enter when menu is not active", function() {
8989test ( "down arrow moves focus - contenteditable" , function ( ) {
9090arrowsMoveFocus ( "#autocomplete-contenteditable" , false ) ;
9191} ) ;
92+
93+ test ( "up arrow moves cursor - input" , function ( ) {
94+ arrowsNavigateElement ( "#autocomplete" , true , false ) ;
95+ } ) ;
96+
97+ test ( "down arrow moves cursor - input" , function ( ) {
98+ arrowsNavigateElement ( "#autocomplete" , false , false ) ;
99+ } ) ;
100+
101+ test ( "up arrow moves cursor - textarea" , function ( ) {
102+ arrowsNavigateElement ( "#autocomplete-textarea" , true , true ) ;
103+ } ) ;
104+
105+ test ( "down arrow moves cursor - textarea" , function ( ) {
106+ arrowsNavigateElement ( "#autocomplete-textarea" , false , true ) ;
107+ } ) ;
108+
109+ test ( "up arrow moves cursor - contenteditable" , function ( ) {
110+ arrowsNavigateElement ( "#autocomplete-contenteditable" , true , true ) ;
111+ } ) ;
112+
113+ test ( "down arrow moves cursor - contenteditable" , function ( ) {
114+ arrowsNavigateElement ( "#autocomplete-contenteditable" , false , true ) ;
115+ } ) ;
92116
93117function arrowsInvokeSearch ( id , isKeyUp , shouldMove ) {
94118expect ( 1 ) ;
@@ -120,6 +144,23 @@ test( "allow form submit on enter when menu is not active", function() {
120144element . autocomplete ( "search" ) ;
121145element . simulate ( "keydown" , { keyCode : ( isKeyUp ? $ . ui . keyCode . UP : $ . ui . keyCode . DOWN ) } ) ;
122146}
147+
148+ function arrowsNavigateElement ( id , isKeyUp , shouldMove ) {
149+ expect ( 1 ) ;
150+
151+ var didMove = false ,
152+ element = $ ( id ) . autocomplete ( {
153+ source : [ "a" ] ,
154+ delay : 0 ,
155+ minLength : 0
156+ } ) ;
157+ element . on ( "keypress" , function ( e ) {
158+ didMove = ! e . isDefaultPrevented ( ) ;
159+ } ) ;
160+ element . simulate ( "keydown" , { keyCode : ( isKeyUp ? $ . ui . keyCode . UP : $ . ui . keyCode . DOWN ) } ) ;
161+ element . simulate ( "keypress" ) ;
162+ equal ( didMove , shouldMove , "respond to arrow" ) ;
163+ }
123164} ) ( ) ;
124165
125166asyncTest ( "handle race condition" , function ( ) {
0 commit comments