@@ -152,13 +152,62 @@ describe('material.components.menu', function() {
152
152
expect ( getOpenMenuContainer ( menu ) . length ) . toBe ( 0 ) ;
153
153
} ) ) ;
154
154
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
+
155
201
describe ( 'autofocus' , function ( ) {
156
202
157
203
it ( 'should focus a button with md-menu-focus-target' , inject ( function ( $compile , $rootScope , $document ) {
158
204
var menu = $compile (
159
205
'<md-menu>' +
160
206
'<button ng-click="$mdOpenMenu($event)">Hello World</button>' +
161
207
'<md-menu-content>' +
208
+ '<md-menu-item>' +
209
+ '<button ng-click="doSomething($event)"></button>' +
210
+ '</md-menu-item>' +
162
211
'<md-menu-item>' +
163
212
'<button id="menuFocus" md-menu-focus-target ng-click="doSomething($event)"></button>' +
164
213
'</md-menu-item>' +
@@ -178,6 +227,9 @@ describe('material.components.menu', function() {
178
227
'<md-menu>' +
179
228
'<button ng-click="$mdOpenMenu($event)">Hello World</button>' +
180
229
'<md-menu-content>' +
230
+ '<md-menu-item>' +
231
+ '<button ng-click="doSomething($event)"></button>' +
232
+ '</md-menu-item>' +
181
233
'<md-menu-item>' +
182
234
'<button id="menuFocus" md-autofocus ng-click="doSomething($event)"></button>' +
183
235
'</md-menu-item>' +
0 commit comments