@@ -26,7 +26,16 @@ let singleSelectValues1 = {
26
26
name : 'selectomatic' ,
27
27
values : [ 'One' , 'Two' , 'Four' , 'Still learning how to count, apparently' ] ,
28
28
}
29
- let disabledSelect = { name : 'no-select' , values : [ 'Foo' ] }
29
+
30
+ let disabledSingleSelect = {
31
+ name : 'single_disabled' ,
32
+ values : [ 'Enabled' , 'Disabled' ] ,
33
+ }
34
+ let disabledMultiSelect = {
35
+ name : 'multi_disabled' ,
36
+ values : [ 'Enabled' , 'Disabled' ] ,
37
+ }
38
+
30
39
let multiSelectValues1 = {
31
40
name : 'multi' ,
32
41
values : [ 'Eggs' , 'Ham' , 'Sausages' , 'Onion gravy' ] ,
@@ -98,60 +107,6 @@ suite(
98
107
}
99
108
} )
100
109
101
- ignore ( browsers ( Browser . FIREFOX ) ) . it (
102
- 'Should check selected option if select is disabled by index' ,
103
- async function ( ) {
104
- await driver . get ( Pages . formPage )
105
-
106
- let selectorObject = new Select (
107
- driver . findElement ( By . name ( disabledSelect [ 'name' ] ) )
108
- )
109
- let firstSelected = await selectorObject . getFirstSelectedOption ( )
110
- await selectorObject . selectByIndex ( 1 )
111
- let lastSelected = await selectorObject . getFirstSelectedOption ( )
112
- assert . deepEqual (
113
- await firstSelected . getAttribute ( 'value' ) ,
114
- await lastSelected . getAttribute ( 'value' )
115
- )
116
- }
117
- )
118
-
119
- ignore ( browsers ( Browser . FIREFOX ) ) . it (
120
- 'Should check selected option if select is disabled by value' ,
121
- async function ( ) {
122
- await driver . get ( Pages . formPage )
123
-
124
- let selectorObject = new Select (
125
- driver . findElement ( By . name ( disabledSelect [ 'name' ] ) )
126
- )
127
- let firstSelected = await selectorObject . getFirstSelectedOption ( )
128
- await selectorObject . selectByValue ( 'bar' )
129
- let lastSelected = await selectorObject . getFirstSelectedOption ( )
130
- assert . deepEqual (
131
- await firstSelected . getAttribute ( 'value' ) ,
132
- await lastSelected . getAttribute ( 'value' )
133
- )
134
- }
135
- )
136
-
137
- ignore ( browsers ( Browser . FIREFOX ) ) . it (
138
- 'Should check selected option if select is disabled by visible text' ,
139
- async function ( ) {
140
- await driver . get ( Pages . formPage )
141
-
142
- let selectorObject = new Select (
143
- driver . findElement ( By . name ( disabledSelect [ 'name' ] ) )
144
- )
145
- let firstSelected = await selectorObject . getFirstSelectedOption ( )
146
- await selectorObject . selectByVisibleText ( 'Bar' )
147
- let lastSelected = await selectorObject . getFirstSelectedOption ( )
148
- assert . deepEqual (
149
- await firstSelected . getAttribute ( 'value' ) ,
150
- await lastSelected . getAttribute ( 'value' )
151
- )
152
- }
153
- )
154
-
155
110
it ( 'Should select by multiple index' , async function ( ) {
156
111
await driver . get ( Pages . formPage )
157
112
@@ -217,6 +172,142 @@ suite(
217
172
)
218
173
}
219
174
} )
175
+
176
+ it ( 'Should raise exception select by value single disabled' , async function ( ) {
177
+ await driver . get ( Pages . formPage )
178
+
179
+ let selector = new Select (
180
+ driver . findElement ( By . name ( disabledSingleSelect [ 'name' ] ) )
181
+ )
182
+
183
+ await assert . rejects (
184
+ async ( ) => {
185
+ await selector . selectByValue (
186
+ disabledSingleSelect . values [ 1 ] . toLowerCase ( )
187
+ )
188
+ } ,
189
+ ( err ) => {
190
+ assert . strictEqual ( err . name , 'UnsupportedOperationError' )
191
+ assert . strictEqual (
192
+ err . message ,
193
+ 'You may not select a disabled option'
194
+ )
195
+ return true
196
+ }
197
+ )
198
+ } )
199
+
200
+ it ( 'Should raise exception select by index single disabled' , async function ( ) {
201
+ await driver . get ( Pages . formPage )
202
+
203
+ let selector = new Select (
204
+ driver . findElement ( By . name ( disabledSingleSelect [ 'name' ] ) )
205
+ )
206
+
207
+ await assert . rejects (
208
+ async ( ) => {
209
+ await selector . selectByIndex ( 1 )
210
+ } ,
211
+ ( err ) => {
212
+ assert . strictEqual ( err . name , 'UnsupportedOperationError' )
213
+ assert . strictEqual (
214
+ err . message ,
215
+ 'You may not select a disabled option'
216
+ )
217
+ return true
218
+ }
219
+ )
220
+ } )
221
+
222
+ it ( 'Should raise exception select by text single disabled' , async function ( ) {
223
+ await driver . get ( Pages . formPage )
224
+
225
+ let selector = new Select (
226
+ driver . findElement ( By . name ( disabledSingleSelect [ 'name' ] ) )
227
+ )
228
+
229
+ await assert . rejects (
230
+ async ( ) => {
231
+ await selector . selectByVisibleText ( disabledSingleSelect . values [ 1 ] )
232
+ } ,
233
+ ( err ) => {
234
+ assert . strictEqual ( err . name , 'UnsupportedOperationError' )
235
+ assert . strictEqual (
236
+ err . message ,
237
+ 'You may not select a disabled option'
238
+ )
239
+ return true
240
+ }
241
+ )
242
+ } )
243
+
244
+ it ( 'Should raise exception select by index multiple disabled' , async function ( ) {
245
+ await driver . get ( Pages . formPage )
246
+
247
+ let selector = new Select (
248
+ driver . findElement ( By . name ( disabledMultiSelect [ 'name' ] ) )
249
+ )
250
+
251
+ await assert . rejects (
252
+ async ( ) => {
253
+ await selector . selectByIndex ( 1 )
254
+ } ,
255
+ ( err ) => {
256
+ assert . strictEqual ( err . name , 'UnsupportedOperationError' )
257
+ assert . strictEqual (
258
+ err . message ,
259
+ 'You may not select a disabled option'
260
+ )
261
+ return true
262
+ }
263
+ )
264
+ } )
265
+
266
+ it ( 'Should raise exception select by value multiple disabled' , async function ( ) {
267
+ await driver . get ( Pages . formPage )
268
+
269
+ let selector = new Select (
270
+ driver . findElement ( By . name ( disabledMultiSelect [ 'name' ] ) )
271
+ )
272
+
273
+ await assert . rejects (
274
+ async ( ) => {
275
+ await selector . selectByValue (
276
+ disabledMultiSelect . values [ 1 ] . toLowerCase ( )
277
+ )
278
+ } ,
279
+ ( err ) => {
280
+ assert . strictEqual ( err . name , 'UnsupportedOperationError' )
281
+ assert . strictEqual (
282
+ err . message ,
283
+ 'You may not select a disabled option'
284
+ )
285
+ return true
286
+ }
287
+ )
288
+ } )
289
+
290
+ it ( 'Should raise exception select by text multiple disabled' , async function ( ) {
291
+ await driver . get ( Pages . formPage )
292
+
293
+ let selector = new Select (
294
+ driver . findElement ( By . name ( disabledMultiSelect [ 'name' ] ) )
295
+ )
296
+
297
+ await assert . rejects (
298
+ async ( ) => {
299
+ await selector . selectByVisibleText ( disabledMultiSelect . values [ 1 ] )
300
+ } ,
301
+ ( err ) => {
302
+ assert . strictEqual ( err . name , 'UnsupportedOperationError' )
303
+ assert . strictEqual (
304
+ err . message ,
305
+ 'You may not select a disabled option'
306
+ )
307
+ return true
308
+ }
309
+ )
310
+ } )
220
311
} )
221
312
} ,
222
313
{ browsers : [ 'firefox' , 'chrome' ] }
0 commit comments