@@ -72,7 +72,7 @@ describe('md-menu directive', function () {
72
72
expect ( getOpenMenuContainer ( ) . length ) . toBe ( 0 ) ;
73
73
} ) ) ;
74
74
75
- describe ( 'closes with ng-click ' , function ( ) {
75
+ ddescribe ( 'closes with - ' , function ( ) {
76
76
it ( 'closes on normal option click' , function ( ) {
77
77
expect ( getOpenMenuContainer ( ) . length ) . toBe ( 0 ) ;
78
78
@@ -91,53 +91,41 @@ describe('md-menu directive', function () {
91
91
expect ( getOpenMenuContainer ( ) . length ) . toBe ( 0 ) ;
92
92
} ) ;
93
93
94
- it ( 'closes with data-ng-click' , inject ( function ( $rootScope , $compile ) {
95
- expect ( getOpenMenuContainer ( ) . length ) . toBe ( 0 ) ;
96
-
97
- var template = '' +
98
- '<md-menu>' +
99
- ' <button ng-click="$mdOpenMenu($event)">Hello World</button>' +
100
- ' <md-menu-content>' +
101
- ' <md-menu-item>' +
102
- ' <md-button data-ng-click="doSomething($event)"></md-button>' +
103
- ' </md-menu-item>' +
104
- ' </md-menu-content>' +
105
- '</md-menu>' ;
106
-
107
- openMenu ( $compile ( template ) ( $rootScope ) ) ;
108
- expect ( getOpenMenuContainer ( ) . length ) . toBe ( 1 ) ;
109
-
110
- var btn = getOpenMenuContainer ( ) [ 0 ] . querySelector ( 'md-button' ) ;
111
- btn . click ( ) ;
112
-
113
- waitForMenuClose ( ) ;
114
-
115
- expect ( getOpenMenuContainer ( ) . length ) . toBe ( 0 ) ;
116
- } ) ) ;
117
-
118
- it ( 'closes with x-ng-click' , inject ( function ( $rootScope , $compile ) {
119
- expect ( getOpenMenuContainer ( ) . length ) . toBe ( 0 ) ;
120
-
121
- var template = '' +
122
- '<md-menu>' +
123
- ' <button ng-click="$mdOpenMenu($event)">Hello World</button>' +
124
- ' <md-menu-content>' +
125
- ' <md-menu-item>' +
126
- ' <md-button x-ng-click="doSomething($event)"></md-button>' +
127
- ' </md-menu-item>' +
128
- ' </md-menu-content>' +
129
- '</md-menu>' ;
130
-
131
- openMenu ( $compile ( template ) ( $rootScope ) ) ;
132
- expect ( getOpenMenuContainer ( ) . length ) . toBe ( 1 ) ;
133
-
134
- var btn = getOpenMenuContainer ( ) [ 0 ] . querySelector ( 'md-button' ) ;
135
- btn . click ( ) ;
136
-
137
- waitForMenuClose ( ) ;
138
-
139
- expect ( getOpenMenuContainer ( ) . length ) . toBe ( 0 ) ;
140
- } ) ) ;
94
+ itClosesWithAttributes ( [
95
+ 'data-ng-click' , 'x-ng-click' ,
96
+ 'ui-sref' , 'data-ui-sref' , 'x-ui-sref' ,
97
+ 'ng-href' , 'data-ng-href' , 'x-ng-href'
98
+ ] ) ;
99
+
100
+ function itClosesWithAttributes ( types ) {
101
+ for ( var i = 0 ; i < types . length ; ++ i ) {
102
+ it ( 'closes with ' + types [ i ] , testAttribute ( types [ i ] ) ) ;
103
+ }
104
+
105
+ function testAttribute ( attr ) {
106
+ return inject ( function ( $rootScope , $compile ) {
107
+ var template = '' +
108
+ '<md-menu>' +
109
+ ' <button ng-click="$mdOpenMenu($event)">Hello World</button>' +
110
+ ' <md-menu-content>' +
111
+ ' <md-menu-item>' +
112
+ ' <md-button ' + attr + '=""></md-button>' +
113
+ ' </md-menu-item>' +
114
+ ' </md-menu-content>' +
115
+ '</md-menu>' ;
116
+
117
+ openMenu ( $compile ( template ) ( $rootScope ) ) ;
118
+ expect ( getOpenMenuContainer ( ) . length ) . toBe ( 1 ) ;
119
+
120
+ var btn = getOpenMenuContainer ( ) [ 0 ] . querySelector ( 'md-button' ) ;
121
+ btn . click ( ) ;
122
+
123
+ waitForMenuClose ( ) ;
124
+
125
+ expect ( getOpenMenuContainer ( ) . length ) . toBe ( 0 ) ;
126
+ } ) ;
127
+ }
128
+ }
141
129
} ) ;
142
130
143
131
// ********************************************
0 commit comments