UNPKG

testcafe

Version:

Automated browser testing for the modern web development stack.

42 lines 6.92 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.changeLetterCaseIfNecessary = exports.getSimulatedKeyInfo = void 0; const get_key_info_1 = __importDefault(require("../../../client/automation/playback/press/get-key-info")); const shortcut_type_1 = __importDefault(require("../../../client/automation/playback/press/shortcut-type")); // @ts-ignore const hammerhead_1 = require("../../../client/core/deps/hammerhead"); // @ts-ignore const testcafe_core_1 = require("../../../client/automation/deps/testcafe-core"); const utils_1 = require("../../../client/automation/playback/press/utils"); const utils_2 = require("../utils"); const get_key_code_1 = __importDefault(require("../../../client/automation/utils/get-key-code")); const SHORTCUT_TO_COMMANDS_MAP = { [shortcut_type_1.default.ctrlA]: 'selectAll', }; function getKeyCombinationCommands(keyCombination, keyIndex) { const sanitizedKeyCombination = keyCombination.toLowerCase(); if (keyIndex === 1 && SHORTCUT_TO_COMMANDS_MAP[sanitizedKeyCombination]) return [SHORTCUT_TO_COMMANDS_MAP[sanitizedKeyCombination]]; return []; } function getSimulatedKeyInfo(keyCombination) { const keysArray = (0, testcafe_core_1.getKeyArray)(keyCombination); const { actualKeys, eventKeyProperties } = (0, utils_1.getActualKeysAndEventKeyProperties)(keysArray); return testcafe_core_1.arrayUtils.map(actualKeys, (key, index) => { const commands = getKeyCombinationCommands(keyCombination, index); return hammerhead_1.utils.extend({ key, commands }, (0, get_key_info_1.default)(key, eventKeyProperties[index])); }); } exports.getSimulatedKeyInfo = getSimulatedKeyInfo; function changeLetterCaseIfNecessary(keyInfo) { const modifiersState = (0, utils_2.getModifiersState)(keyInfo.modifiers); if (modifiersState.shift && keyInfo.isLetter) { keyInfo.keyProperty = (0, utils_1.changeLetterCase)(keyInfo.keyProperty); keyInfo.keyCode = (0, get_key_code_1.default)(keyInfo.keyProperty); } } exports.changeLetterCaseIfNecessary = changeLetterCaseIfNecessary; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmF0aXZlLWF1dG9tYXRpb24vY2xpZW50L2tleS1wcmVzcy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwwR0FBZ0Y7QUFDaEYsNEdBQW9GO0FBQ3BGLGFBQWE7QUFDYixxRUFBNkQ7QUFDN0QsYUFBYTtBQUNiLGlGQUF3RjtBQUN4RiwyRUFBdUg7QUFDdkgsb0NBQTZDO0FBQzdDLGlHQUF1RTtBQUV2RSxNQUFNLHdCQUF3QixHQUFHO0lBQzdCLENBQUMsdUJBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxXQUFXO0NBQ3JDLENBQUM7QUFjRixTQUFTLHlCQUF5QixDQUFFLGNBQXNCLEVBQUUsUUFBZ0I7SUFDeEUsTUFBTSx1QkFBdUIsR0FBRyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFN0QsSUFBSSxRQUFRLEtBQUssQ0FBQyxJQUFJLHdCQUF3QixDQUFDLHVCQUF1QixDQUFDO1FBQ25FLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7SUFFL0QsT0FBTyxFQUFFLENBQUM7QUFDZCxDQUFDO0FBRUQsU0FBZ0IsbUJBQW1CLENBQUUsY0FBc0I7SUFDdkQsTUFBTSxTQUFTLEdBQTRCLElBQUEsMkJBQVcsRUFBQyxjQUFjLENBQUMsQ0FBQztJQUN2RSxNQUFNLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLEdBQUcsSUFBQSwwQ0FBa0MsRUFBQyxTQUFTLENBQUMsQ0FBQztJQUV6RixPQUFPLDBCQUFVLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDLEdBQVcsRUFBRSxLQUFhLEVBQUUsRUFBRTtRQUM3RCxNQUFNLFFBQVEsR0FBRyx5QkFBeUIsQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFbEUsT0FBTyxrQkFBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRSxJQUFBLHNCQUFVLEVBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFURCxrREFTQztBQUVELFNBQWdCLDJCQUEyQixDQUFFLE9BQXlCO0lBQ2xFLE1BQU0sY0FBYyxHQUFHLElBQUEseUJBQWlCLEVBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTVELElBQUksY0FBYyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFO1FBQzFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBQSx3QkFBZ0IsRUFBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUQsT0FBTyxDQUFDLE9BQU8sR0FBTyxJQUFBLHNCQUFVLEVBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBQ3pEO0FBQ0wsQ0FBQztBQVBELGtFQU9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldEtleUluZm8gZnJvbSAnLi4vLi4vLi4vY2xpZW50L2F1dG9tYXRpb24vcGxheWJhY2svcHJlc3MvZ2V0LWtleS1pbmZvJztcbmltcG9ydCBTSE9SVENVVF9UWVBFIGZyb20gJy4uLy4uLy4uL2NsaWVudC9hdXRvbWF0aW9uL3BsYXliYWNrL3ByZXNzL3Nob3J0Y3V0LXR5cGUnO1xuLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHsgdXRpbHMgfSBmcm9tICcuLi8uLi8uLi9jbGllbnQvY29yZS9kZXBzL2hhbW1lcmhlYWQnO1xuLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHsgZ2V0S2V5QXJyYXksIGFycmF5VXRpbHMgfSBmcm9tICcuLi8uLi8uLi9jbGllbnQvYXV0b21hdGlvbi9kZXBzL3Rlc3RjYWZlLWNvcmUnO1xuaW1wb3J0IHsgY2hhbmdlTGV0dGVyQ2FzZSwgZ2V0QWN0dWFsS2V5c0FuZEV2ZW50S2V5UHJvcGVydGllcyB9IGZyb20gJy4uLy4uLy4uL2NsaWVudC9hdXRvbWF0aW9uL3BsYXliYWNrL3ByZXNzL3V0aWxzJztcbmltcG9ydCB7IGdldE1vZGlmaWVyc1N0YXRlIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IGdldEtleUNvZGUgZnJvbSAnLi4vLi4vLi4vY2xpZW50L2F1dG9tYXRpb24vdXRpbHMvZ2V0LWtleS1jb2RlJztcblxuY29uc3QgU0hPUlRDVVRfVE9fQ09NTUFORFNfTUFQID0ge1xuICAgIFtTSE9SVENVVF9UWVBFLmN0cmxBXTogJ3NlbGVjdEFsbCcsXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpbXVsYXRlZEtleUluZm8ge1xuICAgIGtleTogc3RyaW5nO1xuICAgIGtleUNvZGU6IG51bWJlcjtcbiAgICBrZXlQcm9wZXJ0eTogc3RyaW5nO1xuICAgIG1vZGlmaWVyczogbnVtYmVyO1xuICAgIG1vZGlmaWVyS2V5Q29kZTogbnVtYmVyO1xuICAgIGlzTGV0dGVyOiBib29sZWFuO1xuICAgIGlzQ2hhcjogYm9vbGVhbjtcbiAgICBpc05ld0xpbmU6IGJvb2xlYW47XG4gICAgY29tbWFuZHM6IHN0cmluZ1tdO1xufVxuXG5mdW5jdGlvbiBnZXRLZXlDb21iaW5hdGlvbkNvbW1hbmRzIChrZXlDb21iaW5hdGlvbjogc3RyaW5nLCBrZXlJbmRleDogbnVtYmVyKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHNhbml0aXplZEtleUNvbWJpbmF0aW9uID0ga2V5Q29tYmluYXRpb24udG9Mb3dlckNhc2UoKTtcblxuICAgIGlmIChrZXlJbmRleCA9PT0gMSAmJiBTSE9SVENVVF9UT19DT01NQU5EU19NQVBbc2FuaXRpemVkS2V5Q29tYmluYXRpb25dKVxuICAgICAgICByZXR1cm4gW1NIT1JUQ1VUX1RPX0NPTU1BTkRTX01BUFtzYW5pdGl6ZWRLZXlDb21iaW5hdGlvbl1dO1xuXG4gICAgcmV0dXJuIFtdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2ltdWxhdGVkS2V5SW5mbyAoa2V5Q29tYmluYXRpb246IHN0cmluZyk6IFNpbXVsYXRlZEtleUluZm9bXSB7XG4gICAgY29uc3Qga2V5c0FycmF5ICAgICAgICAgICAgICAgICAgICAgICAgICA9IGdldEtleUFycmF5KGtleUNvbWJpbmF0aW9uKTtcbiAgICBjb25zdCB7IGFjdHVhbEtleXMsIGV2ZW50S2V5UHJvcGVydGllcyB9ID0gZ2V0QWN0dWFsS2V5c0FuZEV2ZW50S2V5UHJvcGVydGllcyhrZXlzQXJyYXkpO1xuXG4gICAgcmV0dXJuIGFycmF5VXRpbHMubWFwKGFjdHVhbEtleXMsIChrZXk6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICBjb25zdCBjb21tYW5kcyA9IGdldEtleUNvbWJpbmF0aW9uQ29tbWFuZHMoa2V5Q29tYmluYXRpb24sIGluZGV4KTtcblxuICAgICAgICByZXR1cm4gdXRpbHMuZXh0ZW5kKHsga2V5LCBjb21tYW5kcyB9LCBnZXRLZXlJbmZvKGtleSwgZXZlbnRLZXlQcm9wZXJ0aWVzW2luZGV4XSkpO1xuICAgIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hhbmdlTGV0dGVyQ2FzZUlmTmVjZXNzYXJ5IChrZXlJbmZvOiBTaW11bGF0ZWRLZXlJbmZvKTogdm9pZCB7XG4gICAgY29uc3QgbW9kaWZpZXJzU3RhdGUgPSBnZXRNb2RpZmllcnNTdGF0ZShrZXlJbmZvLm1vZGlmaWVycyk7XG5cbiAgICBpZiAobW9kaWZpZXJzU3RhdGUuc2hpZnQgJiYga2V5SW5mby5pc0xldHRlcikge1xuICAgICAgICBrZXlJbmZvLmtleVByb3BlcnR5ID0gY2hhbmdlTGV0dGVyQ2FzZShrZXlJbmZvLmtleVByb3BlcnR5KTtcbiAgICAgICAga2V5SW5mby5rZXlDb2RlICAgICA9IGdldEtleUNvZGUoa2V5SW5mby5rZXlQcm9wZXJ0eSk7XG4gICAgfVxufVxuIl19