@@ -207,15 +207,23 @@ module.exports.describe = function({testRunner, expect, FFOX, CHROMIUM, WEBKIT,
207
207
await textarea . press ( 'NumpadSubtract' ) ;
208
208
expect ( await page . evaluate ( 'keyLocation' ) ) . toBe ( 3 ) ;
209
209
} ) ;
210
- it . skip ( FFOX ) ( 'should press Enter' , async ( { page, server} ) => {
211
- await page . setContent ( '<input></input>' ) ;
212
- await page . $eval ( 'input' , body => body . addEventListener ( 'keydown' , event => {
213
- if ( event . key === 'Enter' )
214
- window . ENTER_DOWN = true ;
215
- } , false ) ) ;
216
- await page . focus ( 'input' ) ;
217
- await page . keyboard . press ( 'Enter' ) ;
218
- expect ( await page . evaluate ( ( ) => window . ENTER_DOWN ) ) . toBe ( true ) ;
210
+ it ( 'should press Enter' , async ( { page, server} ) => {
211
+ await page . setContent ( '<textarea></textarea>' ) ;
212
+ await page . focus ( 'textarea' ) ;
213
+ await page . evaluate ( ( ) => window . addEventListener ( 'keydown' , e => window . lastEvent = { key : e . key , code :e . code } ) ) ;
214
+ await testEnterKey ( 'Enter' , 'Enter' , 'Enter' ) ;
215
+ await testEnterKey ( 'NumpadEnter' , 'Enter' , 'NumpadEnter' ) ;
216
+ await testEnterKey ( '\n' , 'Enter' , 'Enter' ) ;
217
+ await testEnterKey ( '\r' , 'Enter' , 'Enter' ) ;
218
+
219
+ async function testEnterKey ( key , expectedKey , expectedCode ) {
220
+ await page . keyboard . press ( key ) ;
221
+ const lastEvent = await page . evaluate ( 'lastEvent' ) ;
222
+ expect ( lastEvent . key ) . toBe ( expectedKey , `${ JSON . stringify ( key ) } had the wrong key: ${ lastEvent . key } ` ) ;
223
+ expect ( lastEvent . code ) . toBe ( expectedCode , `${ JSON . stringify ( key ) } had the wrong code: ${ lastEvent . code } ` ) ;
224
+ expect ( await page . $eval ( 'textarea' , t => t . value ) ) . toBe ( '\n' , `${ JSON . stringify ( key ) } failed to create a newline` ) ;
225
+ await page . $eval ( 'textarea' , t => t . value = '' ) ;
226
+ }
219
227
} ) ;
220
228
it ( 'should throw on unknown keys' , async ( { page, server} ) => {
221
229
let error = await page . keyboard . press ( 'NotARealKey' ) . catch ( e => e ) ;
0 commit comments