Skip to content

Commit 3bb669c

Browse files
committed
added tests
1 parent 19ea3f6 commit 3bb669c

File tree

2 files changed

+70
-8
lines changed

2 files changed

+70
-8
lines changed

src/lib/core/rtl/dir.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import {
2-
NgModule,
3-
ModuleWithProviders,
4-
Directive,
5-
HostBinding,
6-
Output,
7-
Input,
8-
EventEmitter
2+
NgModule,
3+
ModuleWithProviders,
4+
Directive,
5+
HostBinding,
6+
Output,
7+
Input,
8+
EventEmitter
99
} from '@angular/core';
1010

1111
export type LayoutDirection = 'ltr' | 'rtl';

src/lib/slider/slider.spec.ts

Lines changed: 63 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {Component, DebugElement} from '@angular/core';
44
import {By, HAMMER_GESTURE_CONFIG} from '@angular/platform-browser';
55
import {MdSlider, MdSliderModule} from './slider';
66
import {TestGestureConfig} from './test-gesture-config';
7+
import {RtlModule} from '../core/rtl/dir';
78
import {
89
UP_ARROW,
910
RIGHT_ARROW,
@@ -20,7 +21,7 @@ describe('MdSlider', () => {
2021

2122
beforeEach(async(() => {
2223
TestBed.configureTestingModule({
23-
imports: [MdSliderModule.forRoot(), ReactiveFormsModule],
24+
imports: [MdSliderModule.forRoot(), RtlModule.forRoot(), ReactiveFormsModule],
2425
declarations: [
2526
StandardSlider,
2627
DisabledSlider,
@@ -35,6 +36,7 @@ describe('MdSlider', () => {
3536
SliderWithValueSmallerThanMin,
3637
SliderWithValueGreaterThanMax,
3738
SliderWithChangeHandler,
39+
SliderWithDirAndInvert,
3840
],
3941
providers: [
4042
{provide: HAMMER_GESTURE_CONFIG, useFactory: () => {
@@ -838,6 +840,57 @@ describe('MdSlider', () => {
838840
expect(sliderInstance.value).toBe(0);
839841
});
840842
});
843+
844+
describe('slider with direction and invert', () => {
845+
let fixture: ComponentFixture<SliderWithDirAndInvert>;
846+
let sliderDebugElement: DebugElement;
847+
let sliderNativeElement: HTMLElement;
848+
let sliderTrackElement: HTMLElement;
849+
let sliderInstance: MdSlider;
850+
let testComponent: SliderWithDirAndInvert;
851+
852+
beforeEach(() => {
853+
fixture = TestBed.createComponent(SliderWithDirAndInvert);
854+
fixture.detectChanges();
855+
856+
testComponent = fixture.debugElement.componentInstance;
857+
sliderDebugElement = fixture.debugElement.query(By.directive(MdSlider));
858+
sliderInstance = sliderDebugElement.injector.get(MdSlider);
859+
sliderNativeElement = sliderDebugElement.nativeElement;
860+
sliderTrackElement = <HTMLElement>sliderNativeElement.querySelector('.md-slider-track');
861+
});
862+
863+
it('works in inverted mode', () => {
864+
testComponent.invert = true;
865+
fixture.detectChanges();
866+
867+
dispatchClickEventSequence(sliderNativeElement, 0.3);
868+
fixture.detectChanges();
869+
870+
expect(sliderInstance.value).toBe(70);
871+
});
872+
873+
it('works in RTL languages', () => {
874+
testComponent.dir = 'rtl';
875+
fixture.detectChanges();
876+
877+
dispatchClickEventSequence(sliderNativeElement, 0.3);
878+
fixture.detectChanges();
879+
880+
expect(sliderInstance.value).toBe(70);
881+
});
882+
883+
it('works in RTL languages in inverted mode', () => {
884+
testComponent.dir = 'rtl';
885+
testComponent.invert = true;
886+
fixture.detectChanges();
887+
888+
dispatchClickEventSequence(sliderNativeElement, 0.3);
889+
fixture.detectChanges();
890+
891+
expect(sliderInstance.value).toBe(30);
892+
});
893+
});
841894
});
842895

843896
// Disable animations and make the slider an even 100px (+ 8px padding on either side)
@@ -934,6 +987,15 @@ class SliderWithChangeHandler {
934987
onChange() { }
935988
}
936989

990+
@Component({
991+
template: `<div [dir]="dir"><md-slider [invert]="invert"></md-slider></div>`,
992+
styles: [styles],
993+
})
994+
class SliderWithDirAndInvert {
995+
dir = 'ltr';
996+
invert = false;
997+
}
998+
937999
/**
9381000
* Dispatches a click event sequence (consisting of moueseenter, click) from an element.
9391001
* Note: The mouse event truncates the position for the click.

0 commit comments

Comments
 (0)