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,20 +43,20 @@ 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
// TODO(kara): temporary, remove when #1607 is fixed
52
52
browser . sleep ( 250 ) ;
53
53
page . trigger ( ) . click ( ) ;
54
54
55
55
expect ( page . menu ( ) . getText ( ) ) . toEqual ( 'One\nTwo\nThree\nFour' ) ;
56
- utils . expectAlignedWith ( page . menu ( ) , '#trigger' ) ;
56
+ expectAlignedWith ( page . menu ( ) , '#trigger' ) ;
57
57
58
58
page . backdrop ( ) . click ( ) ;
59
- utils . expectToExist ( menuSelector , false ) ;
59
+ expectToExist ( menuSelector , false ) ;
60
60
} ) ;
61
61
62
62
it ( 'should mirror classes on host to menu template in overlay' , ( ) => {
@@ -70,71 +70,71 @@ describe('menu', () => {
70
70
beforeEach ( ( ) => {
71
71
// click start button to avoid tabbing past navigation
72
72
page . start ( ) . click ( ) ;
73
- utils . pressKeys ( Key . TAB ) ;
73
+ pressKeys ( Key . TAB ) ;
74
74
} ) ;
75
75
76
76
it ( 'should auto-focus the first item when opened with ENTER' , ( ) => {
77
- utils . pressKeys ( Key . ENTER ) ;
78
- utils . expectFocusOn ( page . items ( 0 ) ) ;
77
+ pressKeys ( Key . ENTER ) ;
78
+ expectFocusOn ( page . items ( 0 ) ) ;
79
79
} ) ;
80
80
81
81
it ( 'should auto-focus the first item when opened with SPACE' , ( ) => {
82
- utils . pressKeys ( Key . SPACE ) ;
83
- utils . expectFocusOn ( page . items ( 0 ) ) ;
82
+ pressKeys ( Key . SPACE ) ;
83
+ expectFocusOn ( page . items ( 0 ) ) ;
84
84
} ) ;
85
85
86
86
it ( 'should not focus the first item when opened with mouse' , ( ) => {
87
87
page . trigger ( ) . click ( ) ;
88
- utils . expectFocusOn ( page . trigger ( ) ) ;
88
+ expectFocusOn ( page . trigger ( ) ) ;
89
89
} ) ;
90
90
91
91
it ( 'should focus subsequent items when down arrow is pressed' , ( ) => {
92
- utils . pressKeys ( Key . ENTER , Key . DOWN ) ;
93
- utils . expectFocusOn ( page . items ( 1 ) ) ;
92
+ pressKeys ( Key . ENTER , Key . DOWN ) ;
93
+ expectFocusOn ( page . items ( 1 ) ) ;
94
94
} ) ;
95
95
96
96
it ( 'should focus previous items when up arrow is pressed' , ( ) => {
97
- utils . pressKeys ( Key . ENTER , Key . DOWN , Key . UP ) ;
98
- utils . expectFocusOn ( page . items ( 0 ) ) ;
97
+ pressKeys ( Key . ENTER , Key . DOWN , Key . UP ) ;
98
+ expectFocusOn ( page . items ( 0 ) ) ;
99
99
} ) ;
100
100
101
101
it ( 'should skip disabled items using arrow keys' , ( ) => {
102
- utils . pressKeys ( Key . ENTER , Key . DOWN , Key . DOWN ) ;
103
- utils . expectFocusOn ( page . items ( 3 ) ) ;
102
+ pressKeys ( Key . ENTER , Key . DOWN , Key . DOWN ) ;
103
+ expectFocusOn ( page . items ( 3 ) ) ;
104
104
105
- utils . pressKeys ( Key . UP ) ;
106
- utils . expectFocusOn ( page . items ( 1 ) ) ;
105
+ pressKeys ( Key . UP ) ;
106
+ expectFocusOn ( page . items ( 1 ) ) ;
107
107
} ) ;
108
108
109
109
it ( 'should close the menu when tabbing past items' , ( ) => {
110
- utils . pressKeys ( Key . ENTER , Key . TAB ) ;
111
- utils . expectToExist ( menuSelector , false ) ;
110
+ pressKeys ( Key . ENTER , Key . TAB ) ;
111
+ expectToExist ( menuSelector , false ) ;
112
112
113
- utils . pressKeys ( Key . TAB , Key . ENTER ) ;
114
- utils . expectToExist ( menuSelector ) ;
113
+ pressKeys ( Key . TAB , Key . ENTER ) ;
114
+ expectToExist ( menuSelector ) ;
115
115
116
- utils . pressKeys ( protractor . Key . chord ( Key . SHIFT , Key . TAB ) ) ;
117
- utils . expectToExist ( menuSelector , false ) ;
116
+ pressKeys ( protractor . Key . chord ( Key . SHIFT , Key . TAB ) ) ;
117
+ expectToExist ( menuSelector , false ) ;
118
118
} ) ;
119
119
120
120
it ( 'should wrap back to menu when arrow keying past items' , ( ) => {
121
121
let down = Key . DOWN ;
122
- utils . pressKeys ( Key . ENTER , down , down , down ) ;
123
- utils . expectFocusOn ( page . items ( 0 ) ) ;
122
+ pressKeys ( Key . ENTER , down , down , down ) ;
123
+ expectFocusOn ( page . items ( 0 ) ) ;
124
124
125
- utils . pressKeys ( Key . UP ) ;
126
- utils . expectFocusOn ( page . items ( 3 ) ) ;
125
+ pressKeys ( Key . UP ) ;
126
+ expectFocusOn ( page . items ( 3 ) ) ;
127
127
} ) ;
128
128
129
129
it ( 'should focus before and after trigger when tabbing past items' , ( ) => {
130
130
let shiftTab = protractor . Key . chord ( Key . SHIFT , Key . TAB ) ;
131
131
132
- utils . pressKeys ( Key . ENTER , Key . TAB ) ;
133
- utils . expectFocusOn ( page . triggerTwo ( ) ) ;
132
+ pressKeys ( Key . ENTER , Key . TAB ) ;
133
+ expectFocusOn ( page . triggerTwo ( ) ) ;
134
134
135
135
// navigate back to trigger
136
- utils . pressKeys ( shiftTab , Key . ENTER , shiftTab ) ;
137
- utils . expectFocusOn ( page . start ( ) ) ;
136
+ pressKeys ( shiftTab , Key . ENTER , shiftTab ) ;
137
+ expectFocusOn ( page . start ( ) ) ;
138
138
} ) ;
139
139
140
140
} ) ;
@@ -145,7 +145,7 @@ describe('menu', () => {
145
145
page . trigger ( ) . click ( ) ;
146
146
147
147
// menu.x should equal trigger.x, menu.y should equal trigger.y
148
- utils . expectAlignedWith ( page . menu ( ) , '#trigger' ) ;
148
+ expectAlignedWith ( page . menu ( ) , '#trigger' ) ;
149
149
} ) ;
150
150
151
151
it ( 'should align overlay end to origin end when x-position is "before"' , ( ) => {
@@ -156,7 +156,7 @@ describe('menu', () => {
156
156
// menu = 112px wide. trigger = 60px wide. 112 - 60 = 52px of menu to the left of trigger.
157
157
// trigger.x (left corner) - 52px (menu left of trigger) = expected menu.x (left corner)
158
158
// menu.y should equal trigger.y because only x position has changed.
159
- utils . expectLocation ( page . beforeMenu ( ) , { x : trigger . x - 52 , y : trigger . y } ) ;
159
+ expectLocation ( page . beforeMenu ( ) , { x : trigger . x - 52 , y : trigger . y } ) ;
160
160
} ) ;
161
161
} ) ;
162
162
@@ -168,7 +168,7 @@ describe('menu', () => {
168
168
// menu.x should equal trigger.x because only y position has changed.
169
169
// menu = 64px high. trigger = 20px high. 64 - 20 = 44px of menu extending up past trigger.
170
170
// trigger.y (top corner) - 44px (menu above trigger) = expected menu.y (top corner)
171
- utils . expectLocation ( page . aboveMenu ( ) , { x : trigger . x , y : trigger . y - 44 } ) ;
171
+ expectLocation ( page . aboveMenu ( ) , { x : trigger . x , y : trigger . y - 44 } ) ;
172
172
} ) ;
173
173
} ) ;
174
174
@@ -178,7 +178,7 @@ describe('menu', () => {
178
178
179
179
// trigger.x (left corner) - 52px (menu left of trigger) = expected menu.x
180
180
// trigger.y (top corner) - 44px (menu above trigger) = expected menu.y
181
- utils . expectLocation ( page . combinedMenu ( ) , { x : trigger . x - 52 , y : trigger . y - 44 } ) ;
181
+ expectLocation ( page . combinedMenu ( ) , { x : trigger . x - 52 , y : trigger . y - 44 } ) ;
182
182
} ) ;
183
183
} ) ;
184
184
0 commit comments