@@ -21,7 +21,7 @@ import {OverlayContainer} from '../core/overlay/overlay-container';
2121import { Directionality , Direction } from '../core/bidi/index' ;
2222import { extendObject } from '../core/util/object-extend' ;
2323import { ESCAPE } from '../core/keyboard/keycodes' ;
24- import { dispatchKeyboardEvent } from '../core/testing/dispatch-events' ;
24+ import { dispatchKeyboardEvent , dispatchFakeEvent } from '../core/testing/dispatch-events' ;
2525
2626
2727describe ( 'MdMenu' , ( ) => {
@@ -146,6 +146,23 @@ describe('MdMenu', () => {
146146 expect ( role ) . toBe ( 'menu' , 'Expected panel to have the "menu" role.' ) ;
147147 } ) ;
148148
149+ it ( 'should focus the menu panel root node when it was opened by mouse' , ( ) => {
150+ const fixture = TestBed . createComponent ( SimpleMenu ) ;
151+
152+ fixture . detectChanges ( ) ;
153+
154+ const triggerEl = fixture . componentInstance . triggerEl . nativeElement ;
155+
156+ dispatchFakeEvent ( triggerEl , 'mousedown' ) ;
157+ triggerEl . click ( ) ;
158+ fixture . detectChanges ( ) ;
159+
160+ const panel = overlayContainerElement . querySelector ( '.mat-menu-panel' ) ;
161+
162+ expect ( panel ) . toBeTruthy ( 'Expected the panel to be rendered.' ) ;
163+ expect ( document . activeElement ) . toBe ( panel , 'Expected the panel to be focused.' ) ;
164+ } ) ;
165+
149166 describe ( 'positions' , ( ) => {
150167 let fixture : ComponentFixture < PositionedMenu > ;
151168 let panel : HTMLElement ;
@@ -553,6 +570,7 @@ class CustomMenuPanel implements MdMenuPanel {
553570 @ViewChild ( TemplateRef ) templateRef : TemplateRef < any > ;
554571 @Output ( ) close = new EventEmitter < void > ( ) ;
555572 focusFirstItem = ( ) => { } ;
573+ resetActiveItem = ( ) => { } ;
556574 setPositionClasses = ( ) => { } ;
557575 _emitCloseEvent ( ) {
558576 this . close . emit ( ) ;
0 commit comments