Skip to content

Commit 1ed25d2

Browse files
committed
Provide consistent testing API
1 parent 235120c commit 1ed25d2

File tree

5 files changed

+29
-27
lines changed

5 files changed

+29
-27
lines changed

src/lib/core/style/focus-classes.spec.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ describe('FocusOriginMonitor', () => {
6363
if (platform.FIREFOX) { return; }
6464

6565
// Simulate focus via keyboard.
66-
dispatchKeyboardEvent(document, TAB);
66+
dispatchKeyboardEvent(document, 'keydown', TAB);
6767
buttonElement.focus();
6868
fixture.detectChanges();
6969

@@ -206,7 +206,7 @@ describe('cdkFocusClasses', () => {
206206
if (platform.FIREFOX) { return; }
207207

208208
// Simulate focus via keyboard.
209-
dispatchKeyboardEvent(document, TAB);
209+
dispatchKeyboardEvent(document, 'keydown', TAB);
210210
buttonElement.focus();
211211
fixture.detectChanges();
212212

src/lib/core/testing/dispatch-events.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ import {
66
} from './event-objects';
77

88
/** Shorthand to dispatch a fake event on a specified node. */
9-
export function dispatchFakeEvent(node: Node, eventName: string) {
10-
node.dispatchEvent(createFakeEvent(eventName));
9+
export function dispatchFakeEvent(node: Node, type: string) {
10+
node.dispatchEvent(createFakeEvent(type));
1111
}
1212

1313
/** Shorthand to dispatch a keyboard event with a specified key code. */
14-
export function dispatchKeyboardEvent(node: Node, keyCode: number, type = 'keydown') {
14+
export function dispatchKeyboardEvent(node: Node, type: string, keyCode: number) {
1515
node.dispatchEvent(createKeyboardEvent(type, keyCode));
1616
}
1717

src/lib/core/testing/event-objects.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@ export function createMouseEvent(type: string, x = 0, y = 0) {
2222
}
2323

2424
/** Dispatches a keydown event from an element. */
25-
export function createKeyboardEvent(eventType: string, keyCode: number) {
25+
export function createKeyboardEvent(type: string, keyCode: number) {
2626
let event = document.createEvent('KeyboardEvent') as any;
2727
// Firefox does not support `initKeyboardEvent`, but supports `initKeyEvent`.
2828
let initEventFn = (event.initKeyEvent || event.initKeyboardEvent).bind(event);
2929

30-
initEventFn(eventType, true, true, window, 0, 0, 0, 0, 0, keyCode);
30+
initEventFn(type, true, true, window, 0, 0, 0, 0, 0, keyCode);
3131

3232
// Webkit Browsers don't set the keyCode when calling the init function.
3333
// See related bug https://bugs.webkit.org/show_bug.cgi?id=16735
@@ -55,8 +55,8 @@ export function createTransitionEndEvent(propertyName: string, elapsedTime = 0)
5555
}
5656

5757
/** Creates a fake event object with any desired event type. */
58-
export function createFakeEvent(eventName: string) {
58+
export function createFakeEvent(type: string) {
5959
let event = document.createEvent('Event');
60-
event.initEvent(eventName, true, true);
60+
event.initEvent(type, true, true);
6161
return event;
6262
}

src/lib/slider/slider.spec.ts

+15-15
Original file line numberDiff line numberDiff line change
@@ -729,7 +729,7 @@ describe('MdSlider', () => {
729729
it('should update the model on keydown', () => {
730730
expect(testComponent.val).toBe(0);
731731

732-
dispatchKeyboardEvent(sliderNativeElement, UP_ARROW);
732+
dispatchKeyboardEvent(sliderNativeElement, 'keydown', UP_ARROW);
733733
fixture.detectChanges();
734734

735735
expect(testComponent.val).toBe(1);
@@ -949,14 +949,14 @@ describe('MdSlider', () => {
949949
});
950950

951951
it('should increment slider by 1 on up arrow pressed', () => {
952-
dispatchKeyboardEvent(sliderNativeElement, UP_ARROW);
952+
dispatchKeyboardEvent(sliderNativeElement, 'keydown', UP_ARROW);
953953
fixture.detectChanges();
954954

955955
expect(sliderInstance.value).toBe(1);
956956
});
957957

958958
it('should increment slider by 1 on right arrow pressed', () => {
959-
dispatchKeyboardEvent(sliderNativeElement, RIGHT_ARROW);
959+
dispatchKeyboardEvent(sliderNativeElement, 'keydown', RIGHT_ARROW);
960960
fixture.detectChanges();
961961

962962
expect(sliderInstance.value).toBe(1);
@@ -965,7 +965,7 @@ describe('MdSlider', () => {
965965
it('should decrement slider by 1 on down arrow pressed', () => {
966966
sliderInstance.value = 100;
967967

968-
dispatchKeyboardEvent(sliderNativeElement, DOWN_ARROW);
968+
dispatchKeyboardEvent(sliderNativeElement, 'keydown', DOWN_ARROW);
969969
fixture.detectChanges();
970970

971971
expect(sliderInstance.value).toBe(99);
@@ -974,14 +974,14 @@ describe('MdSlider', () => {
974974
it('should decrement slider by 1 on left arrow pressed', () => {
975975
sliderInstance.value = 100;
976976

977-
dispatchKeyboardEvent(sliderNativeElement, LEFT_ARROW);
977+
dispatchKeyboardEvent(sliderNativeElement, 'keydown', LEFT_ARROW);
978978
fixture.detectChanges();
979979

980980
expect(sliderInstance.value).toBe(99);
981981
});
982982

983983
it('should increment slider by 10 on page up pressed', () => {
984-
dispatchKeyboardEvent(sliderNativeElement, PAGE_UP);
984+
dispatchKeyboardEvent(sliderNativeElement, 'keydown', PAGE_UP);
985985
fixture.detectChanges();
986986

987987
expect(sliderInstance.value).toBe(10);
@@ -990,14 +990,14 @@ describe('MdSlider', () => {
990990
it('should decrement slider by 10 on page down pressed', () => {
991991
sliderInstance.value = 100;
992992

993-
dispatchKeyboardEvent(sliderNativeElement, PAGE_DOWN);
993+
dispatchKeyboardEvent(sliderNativeElement, 'keydown', PAGE_DOWN);
994994
fixture.detectChanges();
995995

996996
expect(sliderInstance.value).toBe(90);
997997
});
998998

999999
it('should set slider to max on end pressed', () => {
1000-
dispatchKeyboardEvent(sliderNativeElement, END);
1000+
dispatchKeyboardEvent(sliderNativeElement, 'keydown', END);
10011001
fixture.detectChanges();
10021002

10031003
expect(sliderInstance.value).toBe(100);
@@ -1006,7 +1006,7 @@ describe('MdSlider', () => {
10061006
it('should set slider to min on home pressed', () => {
10071007
sliderInstance.value = 100;
10081008

1009-
dispatchKeyboardEvent(sliderNativeElement, HOME);
1009+
dispatchKeyboardEvent(sliderNativeElement, 'keydown', HOME);
10101010
fixture.detectChanges();
10111011

10121012
expect(sliderInstance.value).toBe(0);
@@ -1067,7 +1067,7 @@ describe('MdSlider', () => {
10671067
testComponent.invert = true;
10681068
fixture.detectChanges();
10691069

1070-
dispatchKeyboardEvent(sliderNativeElement, RIGHT_ARROW);
1070+
dispatchKeyboardEvent(sliderNativeElement, 'keydown', RIGHT_ARROW);
10711071
fixture.detectChanges();
10721072

10731073
expect(sliderInstance.value).toBe(1);
@@ -1078,7 +1078,7 @@ describe('MdSlider', () => {
10781078
sliderInstance.value = 100;
10791079
fixture.detectChanges();
10801080

1081-
dispatchKeyboardEvent(sliderNativeElement, LEFT_ARROW);
1081+
dispatchKeyboardEvent(sliderNativeElement, 'keydown', LEFT_ARROW);
10821082
fixture.detectChanges();
10831083

10841084
expect(sliderInstance.value).toBe(99);
@@ -1089,7 +1089,7 @@ describe('MdSlider', () => {
10891089
sliderInstance.value = 100;
10901090
fixture.detectChanges();
10911091

1092-
dispatchKeyboardEvent(sliderNativeElement, RIGHT_ARROW);
1092+
dispatchKeyboardEvent(sliderNativeElement, 'keydown', RIGHT_ARROW);
10931093
fixture.detectChanges();
10941094

10951095
expect(sliderInstance.value).toBe(99);
@@ -1099,7 +1099,7 @@ describe('MdSlider', () => {
10991099
testComponent.dir = 'rtl';
11001100
fixture.detectChanges();
11011101

1102-
dispatchKeyboardEvent(sliderNativeElement, LEFT_ARROW);
1102+
dispatchKeyboardEvent(sliderNativeElement, 'keydown', LEFT_ARROW);
11031103
fixture.detectChanges();
11041104

11051105
expect(sliderInstance.value).toBe(1);
@@ -1111,7 +1111,7 @@ describe('MdSlider', () => {
11111111
sliderInstance.value = 100;
11121112
fixture.detectChanges();
11131113

1114-
dispatchKeyboardEvent(sliderNativeElement, RIGHT_ARROW);
1114+
dispatchKeyboardEvent(sliderNativeElement, 'keydown', RIGHT_ARROW);
11151115
fixture.detectChanges();
11161116

11171117
expect(sliderInstance.value).toBe(99);
@@ -1122,7 +1122,7 @@ describe('MdSlider', () => {
11221122
testComponent.invert = true;
11231123
fixture.detectChanges();
11241124

1125-
dispatchKeyboardEvent(sliderNativeElement, LEFT_ARROW);
1125+
dispatchKeyboardEvent(sliderNativeElement, 'keydown', LEFT_ARROW);
11261126
fixture.detectChanges();
11271127

11281128
expect(sliderInstance.value).toBe(1);

src/lib/tabs/tab-header.spec.ts

+5-3
Original file line numberDiff line numberDiff line change
@@ -106,19 +106,21 @@ describe('MdTabHeader', () => {
106106
fixture.detectChanges();
107107
expect(appComponent.mdTabHeader.focusIndex).toBe(0);
108108

109+
let tabListContainer = appComponent.mdTabHeader._tabListContainer.nativeElement;
110+
109111
// Move focus right to 2
110-
dispatchKeyboardEvent(appComponent.mdTabHeader._tabListContainer.nativeElement, RIGHT_ARROW);
112+
dispatchKeyboardEvent(tabListContainer, 'keydown', RIGHT_ARROW);
111113
fixture.detectChanges();
112114
expect(appComponent.mdTabHeader.focusIndex).toBe(2);
113115

114116
// Select the focused index 2
115117
expect(appComponent.selectedIndex).toBe(0);
116-
dispatchKeyboardEvent(appComponent.mdTabHeader._tabListContainer.nativeElement, ENTER);
118+
dispatchKeyboardEvent(tabListContainer, 'keydown', ENTER);
117119
fixture.detectChanges();
118120
expect(appComponent.selectedIndex).toBe(2);
119121

120122
// Move focus right to 0
121-
dispatchKeyboardEvent(appComponent.mdTabHeader._tabListContainer.nativeElement, LEFT_ARROW);
123+
dispatchKeyboardEvent(tabListContainer, 'keydown', LEFT_ARROW);
122124
fixture.detectChanges();
123125
expect(appComponent.mdTabHeader.focusIndex).toBe(0);
124126
});

0 commit comments

Comments
 (0)