1
1
import { browser , Key , protractor } from 'protractor' ;
2
- import { E2EUtils } from '../../utils.e2e' ;
3
2
import { MenuPage } from './menu-page' ;
3
+ import { expectToExist , expectAlignedWith , expectFocusOn , expectLocation } from '../../util/asserts' ;
4
+ import { pressKeys } from '../../util/actions' ;
4
5
5
6
describe ( 'menu' , ( ) => {
6
7
const menuSelector = '.md-menu-panel' ;
7
- const utils = new E2EUtils ( ) ;
8
8
let page : MenuPage ;
9
9
10
10
beforeEach ( ( ) => page = new MenuPage ( ) ) ;
11
11
12
12
it ( 'should open menu when the trigger is clicked' , ( ) => {
13
- utils . expectToExist ( menuSelector , false ) ;
13
+ expectToExist ( menuSelector , false ) ;
14
14
page . trigger ( ) . click ( ) ;
15
15
16
- utils . expectToExist ( menuSelector ) ;
16
+ expectToExist ( menuSelector ) ;
17
17
expect ( page . menu ( ) . getText ( ) ) . toEqual ( 'One\nTwo\nThree\nFour' ) ;
18
18
} ) ;
19
19
20
20
it ( 'should close menu when menu item is clicked' , ( ) => {
21
21
page . trigger ( ) . click ( ) ;
22
22
page . items ( 0 ) . click ( ) ;
23
- utils . expectToExist ( menuSelector , false ) ;
23
+ expectToExist ( menuSelector , false ) ;
24
24
} ) ;
25
25
26
26
it ( 'should run click handlers on regular menu items' , ( ) => {
@@ -43,18 +43,18 @@ describe('menu', () => {
43
43
page . triggerTwo ( ) . click ( ) ;
44
44
45
45
expect ( page . menu ( ) . getText ( ) ) . toEqual ( 'One\nTwo\nThree\nFour' ) ;
46
- utils . expectAlignedWith ( page . menu ( ) , '#trigger-two' ) ;
46
+ expectAlignedWith ( page . menu ( ) , '#trigger-two' ) ;
47
47
48
48
page . backdrop ( ) . click ( ) ;
49
- utils . expectToExist ( menuSelector , false ) ;
49
+ expectToExist ( menuSelector , false ) ;
50
50
51
51
page . trigger ( ) . click ( ) ;
52
52
53
53
expect ( page . menu ( ) . getText ( ) ) . toEqual ( 'One\nTwo\nThree\nFour' ) ;
54
- utils . expectAlignedWith ( page . menu ( ) , '#trigger' ) ;
54
+ expectAlignedWith ( page . menu ( ) , '#trigger' ) ;
55
55
56
56
page . backdrop ( ) . click ( ) ;
57
- utils . expectToExist ( menuSelector , false ) ;
57
+ expectToExist ( menuSelector , false ) ;
58
58
} ) ;
59
59
60
60
it ( 'should mirror classes on host to menu template in overlay' , ( ) => {
@@ -68,71 +68,71 @@ describe('menu', () => {
68
68
beforeEach ( ( ) => {
69
69
// click start button to avoid tabbing past navigation
70
70
page . start ( ) . click ( ) ;
71
- utils . pressKeys ( Key . TAB ) ;
71
+ pressKeys ( Key . TAB ) ;
72
72
} ) ;
73
73
74
74
it ( 'should auto-focus the first item when opened with ENTER' , ( ) => {
75
- utils . pressKeys ( Key . ENTER ) ;
76
- utils . expectFocusOn ( page . items ( 0 ) ) ;
75
+ pressKeys ( Key . ENTER ) ;
76
+ expectFocusOn ( page . items ( 0 ) ) ;
77
77
} ) ;
78
78
79
79
it ( 'should auto-focus the first item when opened with SPACE' , ( ) => {
80
- utils . pressKeys ( Key . SPACE ) ;
81
- utils . expectFocusOn ( page . items ( 0 ) ) ;
80
+ pressKeys ( Key . SPACE ) ;
81
+ expectFocusOn ( page . items ( 0 ) ) ;
82
82
} ) ;
83
83
84
84
it ( 'should not focus the first item when opened with mouse' , ( ) => {
85
85
page . trigger ( ) . click ( ) ;
86
- utils . expectFocusOn ( page . trigger ( ) ) ;
86
+ expectFocusOn ( page . trigger ( ) ) ;
87
87
} ) ;
88
88
89
89
it ( 'should focus subsequent items when down arrow is pressed' , ( ) => {
90
- utils . pressKeys ( Key . ENTER , Key . DOWN ) ;
91
- utils . expectFocusOn ( page . items ( 1 ) ) ;
90
+ pressKeys ( Key . ENTER , Key . DOWN ) ;
91
+ expectFocusOn ( page . items ( 1 ) ) ;
92
92
} ) ;
93
93
94
94
it ( 'should focus previous items when up arrow is pressed' , ( ) => {
95
- utils . pressKeys ( Key . ENTER , Key . DOWN , Key . UP ) ;
96
- utils . expectFocusOn ( page . items ( 0 ) ) ;
95
+ pressKeys ( Key . ENTER , Key . DOWN , Key . UP ) ;
96
+ expectFocusOn ( page . items ( 0 ) ) ;
97
97
} ) ;
98
98
99
99
it ( 'should skip disabled items using arrow keys' , ( ) => {
100
- utils . pressKeys ( Key . ENTER , Key . DOWN , Key . DOWN ) ;
101
- utils . expectFocusOn ( page . items ( 3 ) ) ;
100
+ pressKeys ( Key . ENTER , Key . DOWN , Key . DOWN ) ;
101
+ expectFocusOn ( page . items ( 3 ) ) ;
102
102
103
- utils . pressKeys ( Key . UP ) ;
104
- utils . expectFocusOn ( page . items ( 1 ) ) ;
103
+ pressKeys ( Key . UP ) ;
104
+ expectFocusOn ( page . items ( 1 ) ) ;
105
105
} ) ;
106
106
107
107
it ( 'should close the menu when tabbing past items' , ( ) => {
108
- utils . pressKeys ( Key . ENTER , Key . TAB ) ;
109
- utils . expectToExist ( menuSelector , false ) ;
108
+ pressKeys ( Key . ENTER , Key . TAB ) ;
109
+ expectToExist ( menuSelector , false ) ;
110
110
111
- utils . pressKeys ( Key . TAB , Key . ENTER ) ;
112
- utils . expectToExist ( menuSelector ) ;
111
+ pressKeys ( Key . TAB , Key . ENTER ) ;
112
+ expectToExist ( menuSelector ) ;
113
113
114
- utils . pressKeys ( protractor . Key . chord ( Key . SHIFT , Key . TAB ) ) ;
115
- utils . expectToExist ( menuSelector , false ) ;
114
+ pressKeys ( protractor . Key . chord ( Key . SHIFT , Key . TAB ) ) ;
115
+ expectToExist ( menuSelector , false ) ;
116
116
} ) ;
117
117
118
118
it ( 'should wrap back to menu when arrow keying past items' , ( ) => {
119
119
let down = Key . DOWN ;
120
- utils . pressKeys ( Key . ENTER , down , down , down ) ;
121
- utils . expectFocusOn ( page . items ( 0 ) ) ;
120
+ pressKeys ( Key . ENTER , down , down , down ) ;
121
+ expectFocusOn ( page . items ( 0 ) ) ;
122
122
123
- utils . pressKeys ( Key . UP ) ;
124
- utils . expectFocusOn ( page . items ( 3 ) ) ;
123
+ pressKeys ( Key . UP ) ;
124
+ expectFocusOn ( page . items ( 3 ) ) ;
125
125
} ) ;
126
126
127
127
it ( 'should focus before and after trigger when tabbing past items' , ( ) => {
128
128
let shiftTab = protractor . Key . chord ( Key . SHIFT , Key . TAB ) ;
129
129
130
- utils . pressKeys ( Key . ENTER , Key . TAB ) ;
131
- utils . expectFocusOn ( page . triggerTwo ( ) ) ;
130
+ pressKeys ( Key . ENTER , Key . TAB ) ;
131
+ expectFocusOn ( page . triggerTwo ( ) ) ;
132
132
133
133
// navigate back to trigger
134
- utils . pressKeys ( shiftTab , Key . ENTER , shiftTab ) ;
135
- utils . expectFocusOn ( page . start ( ) ) ;
134
+ pressKeys ( shiftTab , Key . ENTER , shiftTab ) ;
135
+ expectFocusOn ( page . start ( ) ) ;
136
136
} ) ;
137
137
138
138
} ) ;
@@ -143,7 +143,7 @@ describe('menu', () => {
143
143
page . trigger ( ) . click ( ) ;
144
144
145
145
// menu.x should equal trigger.x, menu.y should equal trigger.y
146
- utils . expectAlignedWith ( page . menu ( ) , '#trigger' ) ;
146
+ expectAlignedWith ( page . menu ( ) , '#trigger' ) ;
147
147
} ) ;
148
148
149
149
it ( 'should align overlay end to origin end when x-position is "before"' , ( ) => {
@@ -154,7 +154,7 @@ describe('menu', () => {
154
154
// menu = 112px wide. trigger = 60px wide. 112 - 60 = 52px of menu to the left of trigger.
155
155
// trigger.x (left corner) - 52px (menu left of trigger) = expected menu.x (left corner)
156
156
// menu.y should equal trigger.y because only x position has changed.
157
- utils . expectLocation ( page . beforeMenu ( ) , { x : trigger . x - 52 , y : trigger . y } ) ;
157
+ expectLocation ( page . beforeMenu ( ) , { x : trigger . x - 52 , y : trigger . y } ) ;
158
158
} ) ;
159
159
} ) ;
160
160
@@ -166,7 +166,7 @@ describe('menu', () => {
166
166
// menu.x should equal trigger.x because only y position has changed.
167
167
// menu = 64px high. trigger = 20px high. 64 - 20 = 44px of menu extending up past trigger.
168
168
// trigger.y (top corner) - 44px (menu above trigger) = expected menu.y (top corner)
169
- utils . expectLocation ( page . aboveMenu ( ) , { x : trigger . x , y : trigger . y - 44 } ) ;
169
+ expectLocation ( page . aboveMenu ( ) , { x : trigger . x , y : trigger . y - 44 } ) ;
170
170
} ) ;
171
171
} ) ;
172
172
@@ -176,7 +176,7 @@ describe('menu', () => {
176
176
177
177
// trigger.x (left corner) - 52px (menu left of trigger) = expected menu.x
178
178
// trigger.y (top corner) - 44px (menu above trigger) = expected menu.y
179
- utils . expectLocation ( page . combinedMenu ( ) , { x : trigger . x - 52 , y : trigger . y - 44 } ) ;
179
+ expectLocation ( page . combinedMenu ( ) , { x : trigger . x - 52 , y : trigger . y - 44 } ) ;
180
180
} ) ;
181
181
} ) ;
182
182
0 commit comments