/*
Siesta 5.6.1
Copyright(c) 2009-2022 Bryntum AB
https://bryntum.com/contact
https://bryntum.com/products/siesta/license
*/
/**
@class Siesta.Test.UserAgent.KeyCodes
@singleton
This is a singleton class, containing the mnemonical names for various advanced key codes. You can use this names in the {@link Siesta.Test.Browser#type} method, like this:
t.type(el, 'Foo bar[ENTER]', function () {
...
})
Below is the full list:
- `BACKSPACE`
- `TAB`
- `ENTER` (`RETURN`)
- `SPACE`
- `SHIFT`
- `CTRL`
- `ALT`
- `PAUSE-BREAK`
- `CAPS`
- `ESCAPE` (`ESC`)
- `NUM-LOCK`
- `SCROLL-LOCK`
- `PRINT`
- `PAGE-UP`
- `PAGE-DOWN`
- `END`
- `HOME`
- `LEFT`
- `UP`
- `RIGHT`
- `DOWN`
- `INSERT`
- `DELETE`
- `NUM0`
- `NUM1`
- `NUM2`
- `NUM3`
- `NUM4`
- `NUM5`
- `NUM6`
- `NUM7`
- `NUM8`
- `NUM9`
- `F1`
- `F2`
- `F3`
- `F4`
- `F5`
- `F6`
- `F7`
- `F8`
- `F9`
- `F10`
- `F11`
- `F12`
*/
Singleton('Siesta.Test.UserAgent.KeyCodes', {
methods : {
isNav : function (k) {
var keys = this.keys
return (k >= 33 && k <= 40) ||
k == keys.RETURN ||
k == keys.TAB ||
k == keys.ESCAPE;
},
isSpecial : function (k) {
return k === this.keys.BACKSPACE ||
(k >= 16 && k <= 20) ||
(k >= 44 && k <= 46) ||
(k >= 112 && k <= 123) ||
k === 91;
},
isModifier : function(k) {
return k === this.keys.SHIFT ||
k === this.keys.CTRL ||
k === this.keys.ALT ||
k === this.keys.CMD; // TODO add check to make sure it's a Mac?
},
fromCharCode : function (code, readableForm) {
var keys = this.keys
for (var key in keys) if (keys[ key ] === code && (!readableForm || key.length > 1)) return key;
}
},
has : {
// FROM Syn library by JupiterJS, MIT License. www.jupiterjs.com
// key codes
keys : {
init : {
//backspace
'\b' : 8,
'BACKSPACE' : 8,
//tab
'\t' : 9,
'TAB' : 9,
//enter
'\r' : 13,
'RETURN' : 13,
'ENTER' : 13,
'SPACE' : 32,
//special
'SHIFT' : 16,
'CTRL' : 17,
'ALT' : 18,
'CMD' : 91, // Mac
//weird
'PAUSE-BREAK' : 19,
'CAPS' : 20,
'ESCAPE' : 27,
'ESC' : 27,
'NUM-LOCK' : 144,
'SCROLL-LOCK' : 145,
'PRINT' : 44,
//navigation
'PAGE-UP' : 33,
'PAGEUP' : 33,
'PAGE-DOWN' : 34,
'PAGEDOWN' : 34,
'END' : 35,
'HOME' : 36,
'LEFT' : 37,
'ARROWLEFT' : 37,
'UP' : 38,
'ARROWUP' : 38,
'RIGHT' : 39,
'ARROWRIGHT' : 39,
'DOWN' : 40,
'ARROWDOWN' : 40,
'INSERT' : 45,
'DELETE' : 46,
//normal characters
' ' : 32,
'0' : 48,
'1' : 49,
'2' : 50,
'3' : 51,
'4' : 52,
'5' : 53,
'6' : 54,
'7' : 55,
'8' : 56,
'9' : 57,
'A' : 65,
'B' : 66,
'C' : 67,
'D' : 68,
'E' : 69,
'F' : 70,
'G' : 71,
'H' : 72,
'I' : 73,
'J' : 74,
'K' : 75,
'L' : 76,
'M' : 77,
'N' : 78,
'O' : 79,
'P' : 80,
'Q' : 81,
'R' : 82,
'S' : 83,
'T' : 84,
'U' : 85,
'V' : 86,
'W' : 87,
'X' : 88,
'Y' : 89,
'Z' : 90,
//NORMAL-CHARACTERS, NUMPAD
'NUM0' : 96,
'NUM1' : 97,
'NUM2' : 98,
'NUM3' : 99,
'NUM4' : 100,
'NUM5' : 101,
'NUM6' : 102,
'NUM7' : 103,
'NUM8' : 104,
'NUM9' : 105,
'*' : 106,
'+' : 107,
//normal-characters, others
';' : 186,
'=' : 187,
',' : 188,
'-' : 189,
'.' : 190,
'/' : 191,
'`' : 192,
'[' : 219,
'\\' : 220,
']' : 221,
"'" : 222,
'F1' : 112,
'F2' : 113,
'F3' : 114,
'F4' : 115,
'F5' : 116,
'F6' : 117,
'F7' : 118,
'F8' : 119,
'F9' : 120,
'F10' : 121,
'F11' : 122,
'F12' : 123
}
},
// eof key codes
// key names // https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values
keyNameMap : {
init : {
//backspace
'8' : 'Backspace',
'9' : 'Tab',
//enter
'13' : 'Enter',
//space
'32' : 'Space',
//special
'16' : 'Shift',
'17' : 'Control',
'18' : 'Alt',
'91' : 'Meta', // Mac Cmd
'20' : 'CapsLock',
'27' : 'Escape',
'144' : 'NumLock',
'145' : 'ScrollLock',
'44' : 'Print',
//navigation
'33' : 'PageUp',
'34' : 'PageDown',
'35' : 'End',
'36' : 'Home',
'37' : 'ArrowLeft',
'38' : 'ArrowUp',
'39' : 'ArrowRight',
'40' : 'ArrowDown',
'45' : 'Insert',
'46' : 'Delete',
'106' : 'Multiply',
'107' : 'Add',
'112' : 'F1',
'113' : 'F2',
'114' : 'F3',
'115' : 'F4',
'116' : 'F5',
'117' : 'F6',
'118' : 'F7',
'119' : 'F8',
'120' : 'F9',
'121' : 'F10',
'122' : 'F11',
'123' : 'F12'
}
}
// eof key names
}
// eof has
});