@@ -2,7 +2,6 @@ import {HarnessLoader} from '@angular/cdk-experimental/testing';
22import { TestbedHarnessEnvironment } from '@angular/cdk-experimental/testing/testbed' ;
33import { Component } from '@angular/core' ;
44import { ComponentFixture , TestBed } from '@angular/core/testing' ;
5- import { ReactiveFormsModule } from '@angular/forms' ;
65import { MatSliderModule } from '@angular/material/slider' ;
76import { MatSliderHarness } from './slider-harness' ;
87
@@ -15,7 +14,7 @@ describe('MatSliderHarness', () => {
1514 beforeEach ( async ( ) => {
1615 await TestBed
1716 . configureTestingModule ( {
18- imports : [ MatSliderModule , ReactiveFormsModule ] ,
17+ imports : [ MatSliderModule ] ,
1918 declarations : [ SliderHarnessTest ] ,
2019 } )
2120 . compileComponents ( ) ;
@@ -113,6 +112,37 @@ function runTests() {
113112 expect ( getActiveElementTagName ( ) ) . not . toBe ( 'mat-slider' ) ;
114113 } ) ;
115114
115+ it ( 'should be able to set value of slider' , async ( ) => {
116+ const sliders = await loader . getAllHarnesses ( sliderHarness ) ;
117+ expect ( await sliders [ 1 ] . getValue ( ) ) . toBe ( 0 ) ;
118+ expect ( await sliders [ 2 ] . getValue ( ) ) . toBe ( 225 ) ;
119+
120+ await sliders [ 1 ] . setValue ( 33 ) ;
121+ await sliders [ 2 ] . setValue ( 300 ) ;
122+
123+ expect ( await sliders [ 1 ] . getValue ( ) ) . toBe ( 33 ) ;
124+ // value should be clamped to the maximum.
125+ expect ( await sliders [ 2 ] . getValue ( ) ) . toBe ( 250 ) ;
126+
127+ // should not retrieve incorrect values in case slider is inverted
128+ // due to RTL page layout.
129+ fixture . componentInstance . dir = 'rtl' ;
130+ fixture . detectChanges ( ) ;
131+
132+ await sliders [ 1 ] . setValue ( 80 ) ;
133+ expect ( await sliders [ 1 ] . getValue ( ) ) . toBe ( 80 ) ;
134+
135+ // should not retrieve incorrect values in case sliders are inverted.
136+ fixture . componentInstance . invertSliders = true ;
137+ fixture . detectChanges ( ) ;
138+
139+ await sliders [ 1 ] . setValue ( 75 ) ;
140+ await sliders [ 2 ] . setValue ( 210 ) ;
141+
142+ expect ( await sliders [ 1 ] . getValue ( ) ) . toBe ( 75 ) ;
143+ expect ( await sliders [ 2 ] . getValue ( ) ) . toBe ( 210 ) ;
144+ } ) ;
145+
116146 it ( 'should get disabled state of slider' , async ( ) => {
117147 const sliders = await loader . getAllHarnesses ( sliderHarness ) ;
118148 expect ( await sliders [ 0 ] . isDisabled ( ) ) . toBe ( true ) ;
@@ -128,12 +158,19 @@ function getActiveElementTagName() {
128158@Component ( {
129159 template : `
130160 <mat-slider value="50" disabled></mat-slider>
131- <mat-slider [id]="sliderId" [displayWith]="displayFn"></mat-slider>
132- <mat-slider min="200" max="250" value="225" [displayWith]="displayFn" vertical></mat-slider>
133- `
161+ <div [dir]="dir">
162+ <mat-slider [id]="sliderId" [displayWith]="displayFn"
163+ [invert]="invertSliders"></mat-slider>
164+ </div>
165+ <mat-slider min="200" max="250" value="225" [displayWith]="displayFn" vertical
166+ [invert]="invertSliders">
167+ </mat-slider>
168+ `
134169} )
135170class SliderHarnessTest {
136171 sliderId = 'my-slider' ;
172+ invertSliders = false ;
173+ dir = 'ltr' ;
137174
138175 displayFn ( value : number | null ) {
139176 if ( ! value ) {
0 commit comments