@@ -89,6 +89,30 @@ test( "allow form submit on enter when menu is not active", function() {
89
89
test ( "down arrow moves focus - contenteditable" , function ( ) {
90
90
arrowsMoveFocus ( "#autocomplete-contenteditable" , false ) ;
91
91
} ) ;
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
+ } ) ;
92
116
93
117
function arrowsInvokeSearch ( id , isKeyUp , shouldMove ) {
94
118
expect ( 1 ) ;
@@ -120,6 +144,23 @@ test( "allow form submit on enter when menu is not active", function() {
120
144
element . autocomplete ( "search" ) ;
121
145
element . simulate ( "keydown" , { keyCode : ( isKeyUp ? $ . ui . keyCode . UP : $ . ui . keyCode . DOWN ) } ) ;
122
146
}
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
+ }
123
164
} ) ( ) ;
124
165
125
166
asyncTest ( "handle race condition" , function ( ) {
0 commit comments