@@ -26,7 +26,16 @@ let singleSelectValues1 = {
2626 name : 'selectomatic' ,
2727 values : [ 'One' , 'Two' , 'Four' , 'Still learning how to count, apparently' ] ,
2828}
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+
3039let multiSelectValues1 = {
3140 name : 'multi' ,
3241 values : [ 'Eggs' , 'Ham' , 'Sausages' , 'Onion gravy' ] ,
@@ -98,60 +107,6 @@ suite(
98107 }
99108 } )
100109
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-
155110 it ( 'Should select by multiple index' , async function ( ) {
156111 await driver . get ( Pages . formPage )
157112
@@ -217,6 +172,142 @@ suite(
217172 )
218173 }
219174 } )
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+ } )
220311 } )
221312 } ,
222313 { browsers : [ 'firefox' , 'chrome' ] }
0 commit comments