@@ -248,18 +248,23 @@ describe('MdSlider', () => {
248
248
let sliderDimensions : ClientRect ;
249
249
let trackFillElement : HTMLElement ;
250
250
let thumbElement : HTMLElement ;
251
+ let tickContainerElement : HTMLElement ;
252
+ let testComponent : SliderWithMinAndMax ;
251
253
252
254
beforeEach ( ( ) => {
253
255
fixture = TestBed . createComponent ( SliderWithMinAndMax ) ;
254
256
fixture . detectChanges ( ) ;
255
257
256
258
sliderDebugElement = fixture . debugElement . query ( By . directive ( MdSlider ) ) ;
259
+ testComponent = fixture . debugElement . componentInstance ;
257
260
sliderNativeElement = sliderDebugElement . nativeElement ;
258
261
sliderInstance = sliderDebugElement . injector . get ( MdSlider ) ;
259
262
sliderTrackElement = < HTMLElement > sliderNativeElement . querySelector ( '.md-slider-track' ) ;
260
263
sliderDimensions = sliderTrackElement . getBoundingClientRect ( ) ;
261
264
trackFillElement = < HTMLElement > sliderNativeElement . querySelector ( '.md-slider-track-fill' ) ;
262
265
thumbElement = < HTMLElement > sliderNativeElement . querySelector ( '.md-slider-thumb-position' ) ;
266
+ tickContainerElement =
267
+ < HTMLElement > sliderNativeElement . querySelector ( '.md-slider-tick-container' ) ;
263
268
} ) ;
264
269
265
270
it ( 'should set the default values from the attributes' , ( ) => {
@@ -311,7 +316,33 @@ describe('MdSlider', () => {
311
316
// The closest snap is at the halfway point on the slider.
312
317
expect ( thumbDimensions . left ) . toBe ( sliderDimensions . left + sliderDimensions . width * 0.5 ) ;
313
318
expect ( trackFillDimensions . width ) . toBe ( thumbPosition ) ;
319
+ } ) ;
320
+
321
+ it ( 'should adjust thumb and ticks when min changes' , ( ) => {
322
+ testComponent . min = - 2 ;
323
+ fixture . detectChanges ( ) ;
314
324
325
+ let trackFillDimensions = trackFillElement . getBoundingClientRect ( ) ;
326
+ let tickContainerDimensions = tickContainerElement . getBoundingClientRect ( ) ;
327
+
328
+ expect ( trackFillDimensions . width ) . toBe ( sliderDimensions . width * 6 / 8 ) ;
329
+ expect ( tickContainerDimensions . width )
330
+ . toBe ( sliderDimensions . width - sliderDimensions . width * 6 / 8 ) ;
331
+ } ) ;
332
+
333
+ it ( 'should adjust thumb and ticks when max changes' , ( ) => {
334
+ testComponent . min = - 2 ;
335
+ fixture . detectChanges ( ) ;
336
+
337
+ testComponent . max = 10 ;
338
+ fixture . detectChanges ( ) ;
339
+
340
+ let trackFillDimensions = trackFillElement . getBoundingClientRect ( ) ;
341
+ let tickContainerDimensions = tickContainerElement . getBoundingClientRect ( ) ;
342
+
343
+ expect ( trackFillDimensions . width ) . toBe ( sliderDimensions . width * 6 / 12 ) ;
344
+ expect ( tickContainerDimensions . width )
345
+ . toBe ( sliderDimensions . width - sliderDimensions . width * 6 / 12 ) ;
315
346
} ) ;
316
347
} ) ;
317
348
@@ -640,11 +671,14 @@ class StandardSlider { }
640
671
class DisabledSlider { }
641
672
642
673
@Component ( {
643
- template : `<md-slider min="4" max="6"></md-slider>` ,
674
+ template : `<md-slider [ min]="min" [ max]="max" tick-interval ="6"></md-slider>` ,
644
675
styles : [ noTransitionStyle ] ,
645
676
encapsulation : ViewEncapsulation . None
646
677
} )
647
- class SliderWithMinAndMax { }
678
+ class SliderWithMinAndMax {
679
+ min = 4 ;
680
+ max = 6 ;
681
+ }
648
682
649
683
@Component ( {
650
684
template : `<md-slider value="26"></md-slider>`
0 commit comments