34 lines
1.2 KiB
JavaScript
34 lines
1.2 KiB
JavaScript
/*
|
|
* Function that sends an accesskey using the proper key combination depending on the browser and OS.
|
|
*
|
|
* This needs that the test imports the following scripts:
|
|
* <script src="/resources/testdriver.js"></script>
|
|
* <script src="/resources/testdriver-actions.js"></script>
|
|
* <script src="/resources/testdriver-vendor.js"></script>
|
|
*/
|
|
function pressAccessKey(accessKey){
|
|
let controlKey = '\uE009'; // left Control key
|
|
let altKey = '\uE00A'; // left Alt key
|
|
let optionKey = altKey; // left Option key
|
|
let shiftKey = '\uE008'; // left Shift key
|
|
// There are differences in using accesskey across browsers and OS's.
|
|
// See: // https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/accesskey
|
|
let isMacOSX = navigator.userAgent.indexOf("Mac") != -1;
|
|
let osAccessKey = isMacOSX ? [controlKey, optionKey] : [shiftKey, altKey];
|
|
let actions = new test_driver.Actions();
|
|
// Press keys.
|
|
for (let key of osAccessKey) {
|
|
actions = actions.keyDown(key);
|
|
}
|
|
actions = actions
|
|
.keyDown(accessKey)
|
|
.addTick()
|
|
.keyUp(accessKey);
|
|
osAccessKey.reverse();
|
|
for (let key of osAccessKey) {
|
|
actions = actions.keyUp(key);
|
|
}
|
|
return actions.send();
|
|
}
|
|
|
|
|