@@ -66,25 +66,23 @@ describe('material.components.menu', function() {
66
66
} ) ;
67
67
68
68
it ( 'opens on click without $event' , function ( ) {
69
- var noEvent = true ;
70
- var menu = setup ( 'ng-click' , noEvent ) ;
69
+ var menu = setup ( 'ng-click="$mdMenu.open()"' ) ;
71
70
openMenu ( menu ) ;
72
71
expect ( getOpenMenuContainer ( menu ) . length ) . toBe ( 1 ) ;
73
72
closeMenu ( menu ) ;
74
73
expect ( getOpenMenuContainer ( menu ) . length ) . toBe ( 0 ) ;
75
74
} ) ;
76
75
77
76
it ( 'opens on mouseEnter' , function ( ) {
78
- var menu = setup ( 'ng-mouseenter' ) ;
77
+ var menu = setup ( 'ng-mouseenter="$mdMenu.open($event)" ' ) ;
79
78
openMenu ( menu , 'mouseenter' ) ;
80
79
expect ( getOpenMenuContainer ( menu ) . length ) . toBe ( 1 ) ;
81
80
closeMenu ( menu ) ;
82
81
expect ( getOpenMenuContainer ( menu ) . length ) . toBe ( 0 ) ;
83
82
} ) ;
84
83
85
84
it ( 'opens on mouseEnter without $event' , function ( ) {
86
- var noEvent = true ;
87
- var menu = setup ( 'ng-mouseenter' , noEvent ) ;
85
+ var menu = setup ( 'ng-mouseenter="$mdMenu.open()"' ) ;
88
86
openMenu ( menu , 'mouseenter' ) ;
89
87
expect ( getOpenMenuContainer ( menu ) . length ) . toBe ( 1 ) ;
90
88
closeMenu ( menu ) ;
@@ -116,7 +114,7 @@ describe('material.components.menu', function() {
116
114
117
115
it ( 'should remove the backdrop if the container scope got destroyed' , inject ( function ( $document , $rootScope ) {
118
116
var scope = $rootScope . $new ( ) ;
119
- var menu = setup ( null , null , scope ) ;
117
+ var menu = setup ( null , scope ) ;
120
118
121
119
openMenu ( menu ) ;
122
120
expect ( $document . find ( 'md-backdrop' ) . length ) . not . toBe ( 0 ) ;
@@ -203,7 +201,7 @@ describe('material.components.menu', function() {
203
201
it ( 'should focus a button with md-menu-focus-target' , inject ( function ( $compile , $rootScope , $document ) {
204
202
var menu = $compile (
205
203
'<md-menu>' +
206
- '<button ng-click="$mdOpenMenu ($event)">Hello World</button>' +
204
+ '<button ng-click="$mdMenu.open ($event)">Hello World</button>' +
207
205
'<md-menu-content>' +
208
206
'<md-menu-item>' +
209
207
'<button ng-click="doSomething($event)"></button>' +
@@ -225,7 +223,7 @@ describe('material.components.menu', function() {
225
223
it ( 'should focus a button with md-autofocus' , inject ( function ( $compile , $rootScope , $document ) {
226
224
var menu = $compile (
227
225
'<md-menu>' +
228
- '<button ng-click="$mdOpenMenu ($event)">Hello World</button>' +
226
+ '<button ng-click="$mdMenu.open ($event)">Hello World</button>' +
229
227
'<md-menu-content>' +
230
228
'<md-menu-item>' +
231
229
'<button ng-click="doSomething($event)"></button>' +
@@ -266,6 +264,18 @@ describe('material.components.menu', function() {
266
264
expect ( getOpenMenuContainer ( menu ) . length ) . toBe ( 0 ) ;
267
265
} ) ;
268
266
267
+ it ( 'closes via the scope method' , function ( ) {
268
+ var menu = setup ( 'ng-mouseenter="$mdMenu.open($event)" ng-mouseleave="$mdMenu.close()"' ) ;
269
+
270
+ expect ( getOpenMenuContainer ( menu ) . length ) . toBe ( 0 ) ;
271
+ openMenu ( menu , 'mouseenter' ) ;
272
+ expect ( getOpenMenuContainer ( menu ) . length ) . toBe ( 1 ) ;
273
+
274
+ menu . find ( 'button' ) . triggerHandler ( 'mouseleave' ) ;
275
+ waitForMenuClose ( ) ;
276
+ expect ( getOpenMenuContainer ( menu ) . length ) . toBe ( 0 ) ;
277
+ } ) ;
278
+
269
279
itClosesWithAttributes ( [
270
280
'data-ng-click' , 'x-ng-click' ,
271
281
'ui-sref' , 'data-ui-sref' , 'x-ui-sref' ,
@@ -278,10 +288,10 @@ describe('material.components.menu', function() {
278
288
}
279
289
280
290
function testAttribute ( attr ) {
281
- return inject ( function ( $rootScope , $compile , $timeout , $browser ) {
291
+ return inject ( function ( $rootScope , $compile , $timeout ) {
282
292
var template = '' +
283
293
'<md-menu>' +
284
- ' <button ng-click="$mdOpenMenu ($event)">Hello World</button>' +
294
+ ' <button ng-click="$mdMenu.open ($event)">Hello World</button>' +
285
295
' <md-menu-content>' +
286
296
' <md-menu-item>' +
287
297
' <md-button ' + attr + '=""></md-button>' +
@@ -307,17 +317,17 @@ describe('material.components.menu', function() {
307
317
}
308
318
} ) ;
309
319
310
- function setup ( triggerType , noEvent , scope ) {
320
+ function setup ( buttonAttrs , scope ) {
311
321
var menu ,
312
322
template = $mdUtil . supplant ( '' +
313
323
'<md-menu>' +
314
- ' <button {0}="$mdOpenMenu({1})" >Hello World</button>' +
324
+ ' <button {0}>Hello World</button>' +
315
325
' <md-menu-content>' +
316
326
' <md-menu-item>' +
317
327
' <md-button ng-click="doSomething($event)"></md-button>' +
318
328
' </md-menu-item>' +
319
329
' </md-menu-content>' +
320
- '</md-menu>' , [ triggerType || 'ng-click' , noEvent ? '' : "$ event" ] ) ;
330
+ '</md-menu>' , [ buttonAttrs || 'ng-click="$mdMenu.open($ event)"' ] ) ;
321
331
322
332
inject ( function ( $compile , $rootScope ) {
323
333
$rootScope . doSomething = function ( $event ) {
@@ -357,7 +367,6 @@ describe('material.components.menu', function() {
357
367
358
368
function closeMenu ( ) {
359
369
inject ( function ( $document ) {
360
- $document . find ( 'md-backdrop' ) ;
361
370
$document . find ( 'md-backdrop' ) . triggerHandler ( 'click' ) ;
362
371
waitForMenuClose ( ) ;
363
372
} ) ;
0 commit comments