UNPKG

@testim/testim-cli

Version:

Command line interface for running Testing on you CI

83 lines (69 loc) 6.29 kB
/** * * Send a sequence of key strokes to an element. * * @param {String} ID ID of a WebElement JSON object to route the command to * @param {String|String[]} value The sequence of keys to type. An array must be provided. The server should flatten the array items to a single string to be typed. * * @see https://code.google.com/p/selenium/wiki/JsonWireProtocol#/session/:sessionId/element/:id/value * @type protocol * */ 'use strict'; var _getIterator = require('babel-runtime/core-js/get-iterator')['default']; Object.defineProperty(exports, '__esModule', { value: true }); var _helpersConstants = require('../helpers/constants'); var _utilsErrorHandler = require('../utils/ErrorHandler'); var elementIdValue = function elementIdValue(id, value) { var key = []; if (typeof id !== 'string' && typeof id !== 'number') { throw new _utilsErrorHandler.ProtocolError('number or type of arguments don\'t agree with elementIdValue protocol command'); } /** * replace key with corresponding unicode character */ if (typeof value === 'string') { key = checkUnicode(value); } else if (value instanceof Array) { var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = _getIterator(value), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var charSet = _step.value; key = key.concat(checkUnicode(charSet)); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator['return']) { _iterator['return'](); } } finally { if (_didIteratorError) { throw _iteratorError; } } } } else { throw new _utilsErrorHandler.ProtocolError('number or type of arguments don\'t agree with elementIdValue protocol command'); } return this.requestHandler.create('/session/:sessionId/element/' + id + '/value', { 'value': key }); }; /*! * check for unicode character or split string into literals * @param {String} value text * @return {Array} set of characters or unicode symbols */ function checkUnicode(value) { return _helpersConstants.UNICODE_CHARACTERS.hasOwnProperty(value) ? [_helpersConstants.UNICODE_CHARACTERS[value]] : value.split(''); } exports['default'] = elementIdValue; module.exports = exports['default']; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9wcm90b2NvbC9lbGVtZW50SWRWYWx1ZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztnQ0FZbUMsc0JBQXNCOztpQ0FDM0IsdUJBQXVCOztBQUVyRCxJQUFJLGNBQWMsR0FBRyxTQUFqQixjQUFjLENBQWEsRUFBRSxFQUFFLEtBQUssRUFBRTtBQUN0QyxRQUFJLEdBQUcsR0FBRyxFQUFFLENBQUE7O0FBRVosUUFBSSxPQUFPLEVBQUUsS0FBSyxRQUFRLElBQUksT0FBTyxFQUFFLEtBQUssUUFBUSxFQUFFO0FBQ2xELGNBQU0scUNBQWtCLCtFQUErRSxDQUFDLENBQUE7S0FDM0c7Ozs7O0FBS0QsUUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7QUFDM0IsV0FBRyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQTtLQUM1QixNQUFNLElBQUksS0FBSyxZQUFZLEtBQUssRUFBRTs7Ozs7O0FBQy9CLDhDQUFvQixLQUFLLDRHQUFFO29CQUFsQixPQUFPOztBQUNaLG1CQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTthQUMxQzs7Ozs7Ozs7Ozs7Ozs7O0tBQ0osTUFBTTtBQUNILGNBQU0scUNBQWtCLCtFQUErRSxDQUFDLENBQUE7S0FDM0c7O0FBRUQsV0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sa0NBQWdDLEVBQUUsYUFBVTtBQUN6RSxlQUFPLEVBQUUsR0FBRztLQUNmLENBQUMsQ0FBQTtDQUNMLENBQUE7Ozs7Ozs7QUFPRCxTQUFTLFlBQVksQ0FBRSxLQUFLLEVBQUU7QUFDMUIsV0FBTyxxQ0FBbUIsY0FBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMscUNBQW1CLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQTtDQUNsRzs7cUJBRWMsY0FBYyIsImZpbGUiOiJlbGVtZW50SWRWYWx1ZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICpcbiAqIFNlbmQgYSBzZXF1ZW5jZSBvZiBrZXkgc3Ryb2tlcyB0byBhbiBlbGVtZW50LlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBJRCAgICAgICAgICAgICAgSUQgb2YgYSBXZWJFbGVtZW50IEpTT04gb2JqZWN0IHRvIHJvdXRlIHRoZSBjb21tYW5kIHRvXG4gKiBAcGFyYW0ge1N0cmluZ3xTdHJpbmdbXX0gdmFsdWUgIFRoZSBzZXF1ZW5jZSBvZiBrZXlzIHRvIHR5cGUuIEFuIGFycmF5IG11c3QgYmUgcHJvdmlkZWQuIFRoZSBzZXJ2ZXIgc2hvdWxkIGZsYXR0ZW4gdGhlIGFycmF5IGl0ZW1zIHRvIGEgc2luZ2xlIHN0cmluZyB0byBiZSB0eXBlZC5cbiAqXG4gKiBAc2VlICBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL3NlbGVuaXVtL3dpa2kvSnNvbldpcmVQcm90b2NvbCMvc2Vzc2lvbi86c2Vzc2lvbklkL2VsZW1lbnQvOmlkL3ZhbHVlXG4gKiBAdHlwZSBwcm90b2NvbFxuICpcbiAqL1xuXG5pbXBvcnQgeyBVTklDT0RFX0NIQVJBQ1RFUlMgfSBmcm9tICcuLi9oZWxwZXJzL2NvbnN0YW50cydcbmltcG9ydCB7IFByb3RvY29sRXJyb3IgfSBmcm9tICcuLi91dGlscy9FcnJvckhhbmRsZXInXG5cbmxldCBlbGVtZW50SWRWYWx1ZSA9IGZ1bmN0aW9uIChpZCwgdmFsdWUpIHtcbiAgICBsZXQga2V5ID0gW11cblxuICAgIGlmICh0eXBlb2YgaWQgIT09ICdzdHJpbmcnICYmIHR5cGVvZiBpZCAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgdGhyb3cgbmV3IFByb3RvY29sRXJyb3IoJ251bWJlciBvciB0eXBlIG9mIGFyZ3VtZW50cyBkb25cXCd0IGFncmVlIHdpdGggZWxlbWVudElkVmFsdWUgcHJvdG9jb2wgY29tbWFuZCcpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogcmVwbGFjZSBrZXkgd2l0aCBjb3JyZXNwb25kaW5nIHVuaWNvZGUgY2hhcmFjdGVyXG4gICAgICovXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAga2V5ID0gY2hlY2tVbmljb2RlKHZhbHVlKVxuICAgIH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICBmb3IgKGxldCBjaGFyU2V0IG9mIHZhbHVlKSB7XG4gICAgICAgICAgICBrZXkgPSBrZXkuY29uY2F0KGNoZWNrVW5pY29kZShjaGFyU2V0KSlcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBQcm90b2NvbEVycm9yKCdudW1iZXIgb3IgdHlwZSBvZiBhcmd1bWVudHMgZG9uXFwndCBhZ3JlZSB3aXRoIGVsZW1lbnRJZFZhbHVlIHByb3RvY29sIGNvbW1hbmQnKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnJlcXVlc3RIYW5kbGVyLmNyZWF0ZShgL3Nlc3Npb24vOnNlc3Npb25JZC9lbGVtZW50LyR7aWR9L3ZhbHVlYCwge1xuICAgICAgICAndmFsdWUnOiBrZXlcbiAgICB9KVxufVxuXG4vKiFcbiAqIGNoZWNrIGZvciB1bmljb2RlIGNoYXJhY3RlciBvciBzcGxpdCBzdHJpbmcgaW50byBsaXRlcmFsc1xuICogQHBhcmFtICB7U3RyaW5nfSB2YWx1ZSAgdGV4dFxuICogQHJldHVybiB7QXJyYXl9ICAgICAgICAgc2V0IG9mIGNoYXJhY3RlcnMgb3IgdW5pY29kZSBzeW1ib2xzXG4gKi9cbmZ1bmN0aW9uIGNoZWNrVW5pY29kZSAodmFsdWUpIHtcbiAgICByZXR1cm4gVU5JQ09ERV9DSEFSQUNURVJTLmhhc093blByb3BlcnR5KHZhbHVlKSA/IFtVTklDT0RFX0NIQVJBQ1RFUlNbdmFsdWVdXSA6IHZhbHVlLnNwbGl0KCcnKVxufVxuXG5leHBvcnQgZGVmYXVsdCBlbGVtZW50SWRWYWx1ZVxuIl19