1
1
import { MenuController } from '../../app/menu-controller' ;
2
- import { mockMenu } from '../../../util/mock-providers' ;
3
-
2
+ import { mockMenu , mockPlatform } from '../../../util/mock-providers' ;
3
+ import { Side } from '../../app/menu-interface' ;
4
4
5
5
describe ( 'MenuController' , ( ) => {
6
6
@@ -116,6 +116,30 @@ describe('MenuController', () => {
116
116
expect ( menu ) . toEqual ( someMenu ) ;
117
117
} ) ;
118
118
119
+ it ( 'should get the only left menu on start ltr' , ( ) => {
120
+ let someMenu = mockMenu ( ) ;
121
+ someMenu . side = 'start' ;
122
+ menuCtrl . _register ( someMenu ) ;
123
+
124
+ let menu = menuCtrl . get ( 'left' ) ;
125
+ expect ( menu ) . toEqual ( someMenu ) ;
126
+ } ) ;
127
+
128
+ it ( 'should get the only left menu on end rtl' , ( ) => {
129
+ let platform = mockPlatform ( ) ;
130
+ platform . setDir ( 'rtl' , true ) ;
131
+ expect ( platform . dir ( ) ) . toEqual ( 'rtl' ) ;
132
+
133
+ let someMenu = mockMenu ( platform ) ;
134
+ someMenu . side = 'end' ;
135
+ menuCtrl . _register ( someMenu ) ;
136
+
137
+ expect ( someMenu . side ) . toEqual ( 'left' ) ;
138
+
139
+ let menu = menuCtrl . get ( 'left' ) ;
140
+ expect ( menu ) . toEqual ( someMenu ) ;
141
+ } ) ;
142
+
119
143
it ( 'should get the enabled left menu' , ( ) => {
120
144
let someMenu1 = mockMenu ( ) ;
121
145
someMenu1 . side = 'left' ;
@@ -155,6 +179,30 @@ describe('MenuController', () => {
155
179
expect ( menu ) . toEqual ( someMenu ) ;
156
180
} ) ;
157
181
182
+ it ( 'should get the only right menu on end ltr' , ( ) => {
183
+ let someMenu = mockMenu ( ) ;
184
+ someMenu . side = 'end' ;
185
+ menuCtrl . _register ( someMenu ) ;
186
+
187
+ let menu = menuCtrl . get ( 'right' ) ;
188
+ expect ( menu ) . toEqual ( someMenu ) ;
189
+ } ) ;
190
+
191
+ it ( 'should get the only right menu on start rtl' , ( ) => {
192
+ let platform = mockPlatform ( ) ;
193
+ platform . setDir ( 'rtl' , true ) ;
194
+ expect ( platform . dir ( ) ) . toEqual ( 'rtl' ) ;
195
+
196
+ let someMenu = mockMenu ( platform ) ;
197
+ someMenu . side = 'start' ;
198
+ menuCtrl . _register ( someMenu ) ;
199
+
200
+ expect ( someMenu . side ) . toEqual ( 'right' ) ;
201
+
202
+ let menu = menuCtrl . get ( 'right' ) ;
203
+ expect ( menu ) . toEqual ( someMenu ) ;
204
+ } ) ;
205
+
158
206
it ( 'should get the menu by left with id' , ( ) => {
159
207
let someMenu = mockMenu ( ) ;
160
208
someMenu . id = 'myMenu' ;
@@ -165,6 +213,40 @@ describe('MenuController', () => {
165
213
expect ( menu ) . toEqual ( someMenu ) ;
166
214
} ) ;
167
215
216
+ it ( 'should switch menu side in runtime' , ( ) => {
217
+ let someMenu = mockMenu ( ) ;
218
+ menuCtrl . _register ( someMenu ) ;
219
+
220
+ [ 'left' , 'right' ] . forEach ( ( side : Side ) => {
221
+ someMenu . side = side ;
222
+ expect ( someMenu . side ) . toEqual ( side ) ;
223
+
224
+ let menu = menuCtrl . get ( side ) ;
225
+ expect ( menu ) . toEqual ( someMenu ) ;
226
+ } ) ;
227
+ } ) ;
228
+
229
+ it ( 'should switch menu side in runtime by direction' , ( ) => {
230
+ let platform = mockPlatform ( ) ;
231
+ platform . setDir ( 'ltr' , true ) ;
232
+ expect ( platform . dir ( ) ) . toEqual ( 'ltr' ) ;
233
+
234
+ let someMenu = mockMenu ( platform ) ;
235
+ menuCtrl . _register ( someMenu ) ;
236
+
237
+ expect ( someMenu . side ) . toEqual ( 'left' ) ;
238
+
239
+ let menu = menuCtrl . get ( 'left' ) ;
240
+ expect ( menu ) . toEqual ( someMenu ) ;
241
+
242
+ platform . setDir ( 'rtl' , true ) ;
243
+
244
+ expect ( someMenu . side ) . toEqual ( 'right' ) ;
245
+
246
+ let menu2 = menuCtrl . get ( 'right' ) ;
247
+ expect ( menu2 ) . toEqual ( someMenu ) ;
248
+ } ) ;
249
+
168
250
} ) ;
169
251
170
252
describe ( 'enable()' , ( ) => {
0 commit comments