@@ -12,7 +12,7 @@ import {
12
12
dispatchPointerEvent ,
13
13
dispatchTouchEvent ,
14
14
} from '@angular/cdk/testing/private' ;
15
- import { Component , DebugElement , Type } from '@angular/core' ;
15
+ import { Component , Type } from '@angular/core' ;
16
16
import { ComponentFixture , fakeAsync , TestBed , tick , waitForAsync } from '@angular/core/testing' ;
17
17
import { By } from '@angular/platform-browser' ;
18
18
import { Thumb } from '@material/slider' ;
@@ -82,16 +82,14 @@ describe('MDC-based MatSlider' , () => {
82
82
} ) ;
83
83
84
84
describe ( 'standard range slider' , ( ) => {
85
- let fixture : ComponentFixture < StandardRangeSlider > ;
86
- let sliderDebugElement : DebugElement ;
87
85
let sliderInstance : MatSlider ;
88
86
let startInputInstance : MatSliderThumb ;
89
87
let endInputInstance : MatSliderThumb ;
90
88
91
89
beforeEach ( waitForAsync ( ( ) => {
92
- fixture = createComponent ( StandardRangeSlider ) ;
90
+ const fixture = createComponent ( StandardRangeSlider ) ;
93
91
fixture . detectChanges ( ) ;
94
- sliderDebugElement = fixture . debugElement . query ( By . directive ( MatSlider ) ) ;
92
+ const sliderDebugElement = fixture . debugElement . query ( By . directive ( MatSlider ) ) ;
95
93
sliderInstance = sliderDebugElement . componentInstance ;
96
94
startInputInstance = sliderInstance . _getInput ( Thumb . START ) ;
97
95
endInputInstance = sliderInstance . _getInput ( Thumb . END ) ;
@@ -235,15 +233,14 @@ describe('MDC-based MatSlider' , () => {
235
233
} ) ;
236
234
237
235
describe ( 'ripple states' , ( ) => {
238
- let fixture : ComponentFixture < StandardSlider > ;
239
236
let inputInstance : MatSliderThumb ;
240
237
let thumbInstance : MatSliderVisualThumb ;
241
238
let thumbElement : HTMLElement ;
242
239
let thumbX : number ;
243
240
let thumbY : number ;
244
241
245
242
beforeEach ( waitForAsync ( ( ) => {
246
- fixture = createComponent ( StandardSlider ) ;
243
+ const fixture = createComponent ( StandardSlider ) ;
247
244
fixture . detectChanges ( ) ;
248
245
const sliderDebugElement = fixture . debugElement . query ( By . directive ( MatSlider ) ) ;
249
246
const sliderInstance = sliderDebugElement . componentInstance ;
@@ -457,6 +454,73 @@ describe('MDC-based MatSlider' , () => {
457
454
expect ( endInputInstance . value ) . toBe ( 75 ) ;
458
455
} ) ;
459
456
} ) ;
457
+
458
+ describe ( 'slider with set value' , ( ) => {
459
+ let sliderInstance : MatSlider ;
460
+ let inputInstance : MatSliderThumb ;
461
+
462
+ beforeEach ( waitForAsync ( ( ) => {
463
+ const fixture = createComponent ( SliderWithValue ) ;
464
+ fixture . detectChanges ( ) ;
465
+ const sliderDebugElement = fixture . debugElement . query ( By . directive ( MatSlider ) ) ;
466
+ sliderInstance = sliderDebugElement . componentInstance ;
467
+ inputInstance = sliderInstance . _getInput ( Thumb . END ) ;
468
+ } ) ) ;
469
+
470
+ it ( 'should set the default value from the attribute' , ( ) => {
471
+ expect ( inputInstance . value ) . toBe ( 50 ) ;
472
+ } ) ;
473
+
474
+ it ( 'should set the correct value on mousedown' , ( ) => {
475
+ setValueByClick ( sliderInstance , 19 , platform . IOS ) ;
476
+ expect ( inputInstance . value ) . toBe ( 19 ) ;
477
+ } ) ;
478
+
479
+ it ( 'should set the correct value on slide' , ( ) => {
480
+ slideToValue ( sliderInstance , 77 , Thumb . END , platform . IOS ) ;
481
+ expect ( inputInstance . value ) . toBe ( 77 ) ;
482
+ } ) ;
483
+ } ) ;
484
+
485
+ describe ( 'range slider with set value' , ( ) => {
486
+ let sliderInstance : MatSlider ;
487
+ let startInputInstance : MatSliderThumb ;
488
+ let endInputInstance : MatSliderThumb ;
489
+
490
+ beforeEach ( waitForAsync ( ( ) => {
491
+ const fixture = createComponent ( RangeSliderWithValue ) ;
492
+ fixture . detectChanges ( ) ;
493
+ const sliderDebugElement = fixture . debugElement . query ( By . directive ( MatSlider ) ) ;
494
+ sliderInstance = sliderDebugElement . componentInstance ;
495
+ startInputInstance = sliderInstance . _getInput ( Thumb . START ) ;
496
+ endInputInstance = sliderInstance . _getInput ( Thumb . END ) ;
497
+ } ) ) ;
498
+
499
+ it ( 'should set the default value from the attribute' , ( ) => {
500
+ expect ( startInputInstance . value ) . toBe ( 25 ) ;
501
+ expect ( endInputInstance . value ) . toBe ( 75 ) ;
502
+ } ) ;
503
+
504
+ it ( 'should set the correct start value on mousedown behind the start thumb' , ( ) => {
505
+ setValueByClick ( sliderInstance , 19 , platform . IOS ) ;
506
+ expect ( startInputInstance . value ) . toBe ( 19 ) ;
507
+ } ) ;
508
+
509
+ it ( 'should set the correct start value on mousedown in front of the end thumb' , ( ) => {
510
+ setValueByClick ( sliderInstance , 77 , platform . IOS ) ;
511
+ expect ( endInputInstance . value ) . toBe ( 77 ) ;
512
+ } ) ;
513
+
514
+ it ( 'should set the correct start value on slide' , ( ) => {
515
+ slideToValue ( sliderInstance , 73 , Thumb . START , platform . IOS ) ;
516
+ expect ( startInputInstance . value ) . toBe ( 73 ) ;
517
+ } ) ;
518
+
519
+ it ( 'should set the correct end value on slide' , ( ) => {
520
+ slideToValue ( sliderInstance , 99 , Thumb . END , platform . IOS ) ;
521
+ expect ( endInputInstance . value ) . toBe ( 99 ) ;
522
+ } ) ;
523
+ } ) ;
460
524
} ) ;
461
525
462
526
@@ -517,6 +581,25 @@ class SliderWithMinAndMax {}
517
581
} )
518
582
class RangeSliderWithMinAndMax { }
519
583
584
+ @Component ( {
585
+ template : `
586
+ <mat-slider>
587
+ <input value="50" matSliderThumb>
588
+ </mat-slider>
589
+ ` ,
590
+ } )
591
+ class SliderWithValue { }
592
+
593
+ @Component ( {
594
+ template : `
595
+ <mat-slider>
596
+ <input value="25" matSliderStartThumb>
597
+ <input value="75" matSliderEndThumb>
598
+ </mat-slider>
599
+ ` ,
600
+ } )
601
+ class RangeSliderWithValue { }
602
+
520
603
/** The pointer event types used by the MDC Slider. */
521
604
const enum PointerEventType {
522
605
POINTER_DOWN = 'pointerdown' ,
0 commit comments