@@ -249,18 +249,23 @@ describe('MdSlider', () => {
249
249
let sliderDimensions : ClientRect ;
250
250
let trackFillElement : HTMLElement ;
251
251
let thumbElement : HTMLElement ;
252
+ let tickContainerElement : HTMLElement ;
253
+ let testComponent : SliderWithMinAndMax ;
252
254
253
255
beforeEach ( ( ) => {
254
256
fixture = TestBed . createComponent ( SliderWithMinAndMax ) ;
255
257
fixture . detectChanges ( ) ;
256
258
257
259
sliderDebugElement = fixture . debugElement . query ( By . directive ( MdSlider ) ) ;
260
+ testComponent = fixture . debugElement . componentInstance ;
258
261
sliderNativeElement = sliderDebugElement . nativeElement ;
259
262
sliderInstance = sliderDebugElement . injector . get ( MdSlider ) ;
260
263
sliderTrackElement = < HTMLElement > sliderNativeElement . querySelector ( '.md-slider-track' ) ;
261
264
sliderDimensions = sliderTrackElement . getBoundingClientRect ( ) ;
262
265
trackFillElement = < HTMLElement > sliderNativeElement . querySelector ( '.md-slider-track-fill' ) ;
263
266
thumbElement = < HTMLElement > sliderNativeElement . querySelector ( '.md-slider-thumb-position' ) ;
267
+ tickContainerElement =
268
+ < HTMLElement > sliderNativeElement . querySelector ( '.md-slider-tick-container' ) ;
264
269
} ) ;
265
270
266
271
it ( 'should set the default values from the attributes' , ( ) => {
@@ -312,7 +317,33 @@ describe('MdSlider', () => {
312
317
// The closest snap is at the halfway point on the slider.
313
318
expect ( thumbDimensions . left ) . toBe ( sliderDimensions . left + sliderDimensions . width * 0.5 ) ;
314
319
expect ( trackFillDimensions . width ) . toBe ( thumbPosition ) ;
320
+ } ) ;
321
+
322
+ it ( 'should adjust thumb and ticks when min changes' , ( ) => {
323
+ testComponent . min = - 2 ;
324
+ fixture . detectChanges ( ) ;
315
325
326
+ let trackFillDimensions = trackFillElement . getBoundingClientRect ( ) ;
327
+ let tickContainerDimensions = tickContainerElement . getBoundingClientRect ( ) ;
328
+
329
+ expect ( trackFillDimensions . width ) . toBe ( sliderDimensions . width * 6 / 8 ) ;
330
+ expect ( tickContainerDimensions . width )
331
+ . toBe ( sliderDimensions . width - sliderDimensions . width * 6 / 8 ) ;
332
+ } ) ;
333
+
334
+ it ( 'should adjust thumb and ticks when max changes' , ( ) => {
335
+ testComponent . min = - 2 ;
336
+ fixture . detectChanges ( ) ;
337
+
338
+ testComponent . max = 10 ;
339
+ fixture . detectChanges ( ) ;
340
+
341
+ let trackFillDimensions = trackFillElement . getBoundingClientRect ( ) ;
342
+ let tickContainerDimensions = tickContainerElement . getBoundingClientRect ( ) ;
343
+
344
+ expect ( trackFillDimensions . width ) . toBe ( sliderDimensions . width * 6 / 12 ) ;
345
+ expect ( tickContainerDimensions . width )
346
+ . toBe ( sliderDimensions . width - sliderDimensions . width * 6 / 12 ) ;
316
347
} ) ;
317
348
} ) ;
318
349
@@ -689,11 +720,14 @@ class StandardSlider { }
689
720
class DisabledSlider { }
690
721
691
722
@Component ( {
692
- template : `<md-slider min="4" max="6"></md-slider>` ,
723
+ template : `<md-slider [ min]="min" [ max]="max" tick-interval ="6"></md-slider>` ,
693
724
styles : [ noTransitionStyle ] ,
694
725
encapsulation : ViewEncapsulation . None
695
726
} )
696
- class SliderWithMinAndMax { }
727
+ class SliderWithMinAndMax {
728
+ min = 4 ;
729
+ max = 6 ;
730
+ }
697
731
698
732
@Component ( {
699
733
template : `<md-slider value="26"></md-slider>`
0 commit comments