@@ -151,4 +151,49 @@ describe('MaterialLayout', function () {
151
151
expect ( $ ( drawerBtn ) ) . to . have . attr ( 'aria-expanded' , 'false' ) ;
152
152
} ) ;
153
153
} ) ;
154
+
155
+ describe ( 'Manual switch mode' , function ( ) {
156
+ it ( 'should disable content switching' , function ( done ) {
157
+ var el = document . createElement ( 'div' ) ;
158
+ el . innerHTML = '' +
159
+ ' <header class="mdl-layout__header">' +
160
+ ' <div class="mdl-layout__tab-bar mdl-js-ripple-effect mdl-layout__tab-manual-switch">' +
161
+ ' <a id="tab1" href="#scroll-tab-1" class="mdl-layout__tab is-active">Tab 1</a>' +
162
+ ' <a id="tab2" href="#scroll-tab-2" class="mdl-layout__tab">Tab 2</a>' +
163
+ ' </div>' +
164
+ ' </header>' +
165
+ ' <main class="mdl-layout__content">' +
166
+ ' <section class="mdl-layout__tab-panel is-active" id="scroll-tab-1">' +
167
+ ' <div class="page-content"><!-- Your content goes here --></div>' +
168
+ ' </section>' +
169
+ ' <section class="mdl-layout__tab-panel" id="scroll-tab-2">' +
170
+ ' <div class="page-content"><!-- Your content goes here --></div>' +
171
+ ' </section>' +
172
+ ' </main>' ;
173
+
174
+ var parent = document . createElement ( 'div' ) ;
175
+ parent . appendChild ( el ) ; // MaterialLayout.init() expects a parent
176
+
177
+ var tab1 = el . querySelector ( '#tab1' ) ;
178
+ var tab2 = el . querySelector ( '#tab2' ) ;
179
+ var content1 = el . querySelector ( '#scroll-tab-1' ) ;
180
+ var content2 = el . querySelector ( '#scroll-tab-2' ) ;
181
+
182
+ componentHandler . upgradeElement ( el , 'MaterialLayout' ) ;
183
+
184
+ var ev = document . createEvent ( 'MouseEvents' ) ;
185
+ ev . initEvent ( 'click' , true , true ) ;
186
+ tab2 . dispatchEvent ( ev ) ;
187
+
188
+ window . setTimeout ( function ( ) {
189
+ // Since content switching has been set to manual, layout shouldn't
190
+ // have been switched.
191
+ expect ( $ ( tab1 ) ) . to . have . class ( 'is-active' ) ;
192
+ expect ( $ ( content1 ) ) . to . have . class ( 'is-active' ) ;
193
+ expect ( $ ( tab2 ) ) . to . not . have . class ( 'is-active' ) ;
194
+ expect ( $ ( content2 ) ) . to . not . have . class ( 'is-active' ) ;
195
+ done ( ) ;
196
+ } , 100 ) ;
197
+ } ) ;
198
+ } ) ;
154
199
} ) ;
0 commit comments