@@ -152,13 +152,62 @@ describe('material.components.menu', function() {
152152 expect ( getOpenMenuContainer ( menu ) . length ) . toBe ( 0 ) ;
153153 } ) ) ;
154154
155+ describe ( 'default focus' , function ( ) {
156+ it ( 'should focus on first item automatically' , inject ( function ( $compile , $rootScope , $document ) {
157+ var menu = $compile (
158+ '<md-menu>' +
159+ '<button ng-click="$mdOpenMenu($event)">Hello World</button>' +
160+ '<md-menu-content>' +
161+ '<md-menu-item>' +
162+ '<button id="menuItem0" ng-click="doSomething($event)"></button>' +
163+ '</md-menu-item>' +
164+ '<md-menu-item>' +
165+ '<button ng-click="doSomething($event)"></button>' +
166+ '</md-menu-item>' +
167+ '</md-menu-content>' +
168+ '</md-menu>'
169+ ) ( $rootScope ) ;
170+
171+ openMenu ( menu ) ;
172+
173+ var menuTarget = $document [ 0 ] . querySelector ( '#menuItem0' ) ;
174+
175+ expect ( document . activeElement ) . toBe ( menuTarget ) ;
176+ } ) ) ;
177+
178+ it ( 'should focus on first non-disabled item' , inject ( function ( $compile , $rootScope , $document ) {
179+ var menu = $compile (
180+ '<md-menu>' +
181+ '<button ng-click="$mdOpenMenu($event)">Hello World</button>' +
182+ '<md-menu-content>' +
183+ '<md-menu-item>' +
184+ '<button disabled ng-click="doSomething($event)"></button>' +
185+ '</md-menu-item>' +
186+ '<md-menu-item>' +
187+ '<button id="menuItem1" ng-click="doSomething($event)"></button>' +
188+ '</md-menu-item>' +
189+ '</md-menu-content>' +
190+ '</md-menu>'
191+ ) ( $rootScope ) ;
192+
193+ openMenu ( menu ) ;
194+
195+ var menuTarget = $document [ 0 ] . querySelector ( '#menuItem1' ) ;
196+
197+ expect ( document . activeElement ) . toBe ( menuTarget ) ;
198+ } ) ) ;
199+ } ) ;
200+
155201 describe ( 'autofocus' , function ( ) {
156202
157203 it ( 'should focus a button with md-menu-focus-target' , inject ( function ( $compile , $rootScope , $document ) {
158204 var menu = $compile (
159205 '<md-menu>' +
160206 '<button ng-click="$mdOpenMenu($event)">Hello World</button>' +
161207 '<md-menu-content>' +
208+ '<md-menu-item>' +
209+ '<button ng-click="doSomething($event)"></button>' +
210+ '</md-menu-item>' +
162211 '<md-menu-item>' +
163212 '<button id="menuFocus" md-menu-focus-target ng-click="doSomething($event)"></button>' +
164213 '</md-menu-item>' +
@@ -178,6 +227,9 @@ describe('material.components.menu', function() {
178227 '<md-menu>' +
179228 '<button ng-click="$mdOpenMenu($event)">Hello World</button>' +
180229 '<md-menu-content>' +
230+ '<md-menu-item>' +
231+ '<button ng-click="doSomething($event)"></button>' +
232+ '</md-menu-item>' +
181233 '<md-menu-item>' +
182234 '<button id="menuFocus" md-autofocus ng-click="doSomething($event)"></button>' +
183235 '</md-menu-item>' +
0 commit comments