@@ -502,6 +502,33 @@ describe('Menu', () => {
502502 } ) ) ;
503503 } ) ;
504504 } ) ;
505+
506+ describe ( 'menu with active item' , ( ) => {
507+ let fixture : ComponentFixture < MenuWithActiveItem > ;
508+ let nativeMenu : HTMLElement ;
509+ let nativeMenuItems : HTMLElement [ ] ;
510+
511+ beforeEach ( waitForAsync ( ( ) => {
512+ TestBed . configureTestingModule ( {
513+ imports : [ CdkMenuModule , MenuWithActiveItem ] ,
514+ } ) ;
515+ } ) ) ;
516+
517+ beforeEach ( ( ) => {
518+ fixture = TestBed . createComponent ( MenuWithActiveItem ) ;
519+ fixture . detectChanges ( ) ;
520+
521+ nativeMenu = fixture . debugElement . query ( By . directive ( CdkMenu ) ) . nativeElement ;
522+ nativeMenuItems = fixture . debugElement
523+ . queryAll ( By . directive ( CdkMenuItem ) )
524+ . map ( e => e . nativeElement ) ;
525+ } ) ;
526+
527+ it ( 'should set the active item with setActiveMenuItem' , ( ) => {
528+ fixture . componentInstance . menu . setActiveMenuItem ( 2 ) ;
529+ expect ( document . activeElement ) . toEqual ( nativeMenuItems [ 2 ] ) ;
530+ } ) ;
531+ } ) ;
505532} ) ;
506533
507534@Component ( {
@@ -655,3 +682,18 @@ class WithComplexNestedMenusOnBottom {
655682
656683 @ViewChildren ( CdkMenu ) menus : QueryList < CdkMenu > ;
657684}
685+
686+ @Component ( {
687+ template : `
688+ <div cdkMenu>
689+ <button cdkMenuItem>Inbox</button>
690+ <button cdkMenuItem>Starred</button>
691+ <button cdkMenuItem>Foo</button>
692+ <button cdkMenuItem>Bar</button>
693+ </div>
694+ ` ,
695+ imports : [ CdkMenuModule ] ,
696+ } )
697+ class MenuWithActiveItem {
698+ @ViewChild ( CdkMenu ) menu : CdkMenu ;
699+ }
0 commit comments