@@ -233,6 +233,30 @@ describe('MatSelectionList without forms', () => {
233
233
expect ( manager . activeItemIndex ) . toEqual ( 1 ) ;
234
234
} ) ;
235
235
236
+ it ( 'should focus and toggle the next item when pressing SHIFT + UP_ARROW' , ( ) => {
237
+ const manager = selectionList . componentInstance . _keyManager ;
238
+ const upKeyEvent = createKeyboardEvent ( 'keydown' , UP_ARROW ) ;
239
+ Object . defineProperty ( upKeyEvent , 'shiftKey' , { get : ( ) => true } ) ;
240
+
241
+ dispatchFakeEvent ( listOptions [ 3 ] . nativeElement , 'focus' ) ;
242
+ expect ( manager . activeItemIndex ) . toBe ( 3 ) ;
243
+
244
+ expect ( listOptions [ 1 ] . componentInstance . selected ) . toBe ( false ) ;
245
+ expect ( listOptions [ 2 ] . componentInstance . selected ) . toBe ( false ) ;
246
+
247
+ selectionList . componentInstance . _keydown ( upKeyEvent ) ;
248
+ fixture . detectChanges ( ) ;
249
+
250
+ expect ( listOptions [ 1 ] . componentInstance . selected ) . toBe ( false ) ;
251
+ expect ( listOptions [ 2 ] . componentInstance . selected ) . toBe ( true ) ;
252
+
253
+ selectionList . componentInstance . _keydown ( upKeyEvent ) ;
254
+ fixture . detectChanges ( ) ;
255
+
256
+ expect ( listOptions [ 1 ] . componentInstance . selected ) . toBe ( true ) ;
257
+ expect ( listOptions [ 2 ] . componentInstance . selected ) . toBe ( true ) ;
258
+ } ) ;
259
+
236
260
it ( 'should focus next item when press DOWN ARROW' , ( ) => {
237
261
const manager = selectionList . componentInstance . _keyManager ;
238
262
@@ -245,6 +269,30 @@ describe('MatSelectionList without forms', () => {
245
269
expect ( manager . activeItemIndex ) . toEqual ( 3 ) ;
246
270
} ) ;
247
271
272
+ it ( 'should focus and toggle the next item when pressing SHIFT + DOWN_ARROW' , ( ) => {
273
+ const manager = selectionList . componentInstance . _keyManager ;
274
+ const downKeyEvent = createKeyboardEvent ( 'keydown' , DOWN_ARROW ) ;
275
+ Object . defineProperty ( downKeyEvent , 'shiftKey' , { get : ( ) => true } ) ;
276
+
277
+ dispatchFakeEvent ( listOptions [ 0 ] . nativeElement , 'focus' ) ;
278
+ expect ( manager . activeItemIndex ) . toBe ( 0 ) ;
279
+
280
+ expect ( listOptions [ 1 ] . componentInstance . selected ) . toBe ( false ) ;
281
+ expect ( listOptions [ 2 ] . componentInstance . selected ) . toBe ( false ) ;
282
+
283
+ selectionList . componentInstance . _keydown ( downKeyEvent ) ;
284
+ fixture . detectChanges ( ) ;
285
+
286
+ expect ( listOptions [ 1 ] . componentInstance . selected ) . toBe ( true ) ;
287
+ expect ( listOptions [ 2 ] . componentInstance . selected ) . toBe ( false ) ;
288
+
289
+ selectionList . componentInstance . _keydown ( downKeyEvent ) ;
290
+ fixture . detectChanges ( ) ;
291
+
292
+ expect ( listOptions [ 1 ] . componentInstance . selected ) . toBe ( true ) ;
293
+ expect ( listOptions [ 2 ] . componentInstance . selected ) . toBe ( true ) ;
294
+ } ) ;
295
+
248
296
it ( 'should be able to focus the first item when pressing HOME' , ( ) => {
249
297
const manager = selectionList . componentInstance . _keyManager ;
250
298
expect ( manager . activeItemIndex ) . toBe ( - 1 ) ;
0 commit comments