UNPKG

@testim/testim-cli

Version:

Command line interface for running Testing on you CI

85 lines (71 loc) 7.16 kB
/** * * Protocol binding to get or change the size of the browser. * * <example> :windowHandleSize.js // get the size of // a specified window client.windowHandleSize('dc30381e-e2f3-9444-8bf3-12cc44e8372a', function(err,res) { .. }); // the current window client.windowHandleSize(function(err,res) { ... }); // change the position of // a specified window client.windowHandleSize('dc30381e-e2f3-9444-8bf3-12cc44e8372a', {width: 800, height: 600}); // the current window client.windowHandleSize({width: 800, height: 600}); * </example> * * @param {String=} windowHandle the window to receive/change the size * @param {Object=} dimension the new size of the window * * @returns {Object} the size of the window (`{width: number, height: number}`) * * @see https://code.google.com/p/selenium/wiki/JsonWireProtocol#GET_/session/:sessionId/window/:windowHandle/size * @type protocol * */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _utilsErrorHandler = require('../utils/ErrorHandler'); var windowHandleSize = function windowHandleSize(windowHandle, size) { if (windowHandle === undefined) windowHandle = 'current'; var data = {}; /*! * protocol options */ var requestOptions = { path: '/session/:sessionId/window/' + windowHandle + '/size', method: 'GET' }; /*! * otherwise change window size */ if (typeof windowHandle === 'object' && windowHandle.width && windowHandle.height) { requestOptions.method = 'POST'; data = { // The width and height value might return as a negative value, so // we make sure to use its absolute value. width: Math.abs(windowHandle.width), height: Math.abs(windowHandle.height) }; } else if (typeof size === 'object' && size.width && size.height) { requestOptions.method = 'POST'; data = { width: size.width, height: size.height }; } /*! * type check */ if (requestOptions.method === 'POST' && typeof data.width !== 'number' && typeof data.height !== 'number') { throw new _utilsErrorHandler.ProtocolError('number or type of arguments don\'t agree with windowHandleSize protocol command'); } return this.requestHandler.create(requestOptions, data); }; exports['default'] = windowHandleSize; module.exports = exports['default']; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9wcm90b2NvbC93aW5kb3dIYW5kbGVTaXplLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUNBK0I4Qix1QkFBdUI7O0FBRXJELElBQUksZ0JBQWdCLEdBQUcsU0FBbkIsZ0JBQWdCLENBQWEsWUFBWSxFQUFjLElBQUksRUFBRTtRQUFoQyxZQUFZLGdCQUFaLFlBQVksR0FBRyxTQUFTOztBQUNyRCxRQUFJLElBQUksR0FBRyxFQUFFLENBQUE7Ozs7O0FBS2IsUUFBSSxjQUFjLEdBQUc7QUFDakIsWUFBSSxrQ0FBZ0MsWUFBWSxVQUFPO0FBQ3ZELGNBQU0sRUFBRSxLQUFLO0tBQ2hCLENBQUE7Ozs7O0FBS0QsUUFBSSxPQUFPLFlBQVksS0FBSyxRQUFRLElBQUksWUFBWSxDQUFDLEtBQUssSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFO0FBQy9FLHNCQUFjLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtBQUM5QixZQUFJLEdBQUc7OztBQUdILGlCQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO0FBQ25DLGtCQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO1NBQ3hDLENBQUE7S0FDSixNQUFNLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtBQUM5RCxzQkFBYyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7QUFDOUIsWUFBSSxHQUFHO0FBQ0gsaUJBQUssRUFBRSxJQUFJLENBQUMsS0FBSztBQUNqQixrQkFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3RCLENBQUE7S0FDSjs7Ozs7QUFLRCxRQUFJLGNBQWMsQ0FBQyxNQUFNLEtBQUssTUFBTSxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxRQUFRLElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLFFBQVEsRUFBRTtBQUN2RyxjQUFNLHFDQUFrQixpRkFBaUYsQ0FBQyxDQUFBO0tBQzdHOztBQUVELFdBQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFBO0NBQzFELENBQUE7O3FCQUVjLGdCQUFnQiIsImZpbGUiOiJ3aW5kb3dIYW5kbGVTaXplLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKlxuICogUHJvdG9jb2wgYmluZGluZyB0byBnZXQgb3IgY2hhbmdlIHRoZSBzaXplIG9mIHRoZSBicm93c2VyLlxuICpcbiAqIDxleGFtcGxlPlxuICAgIDp3aW5kb3dIYW5kbGVTaXplLmpzXG4gICAgLy8gZ2V0IHRoZSBzaXplIG9mXG4gICAgLy8gYSBzcGVjaWZpZWQgd2luZG93XG4gICAgY2xpZW50LndpbmRvd0hhbmRsZVNpemUoJ2RjMzAzODFlLWUyZjMtOTQ0NC04YmYzLTEyY2M0NGU4MzcyYScsIGZ1bmN0aW9uKGVycixyZXMpIHsgLi4gfSk7XG5cbiAgICAvLyB0aGUgY3VycmVudCB3aW5kb3dcbiAgICBjbGllbnQud2luZG93SGFuZGxlU2l6ZShmdW5jdGlvbihlcnIscmVzKSB7IC4uLiB9KTtcblxuICAgIC8vIGNoYW5nZSB0aGUgcG9zaXRpb24gb2ZcbiAgICAvLyBhIHNwZWNpZmllZCB3aW5kb3dcbiAgICBjbGllbnQud2luZG93SGFuZGxlU2l6ZSgnZGMzMDM4MWUtZTJmMy05NDQ0LThiZjMtMTJjYzQ0ZTgzNzJhJywge3dpZHRoOiA4MDAsIGhlaWdodDogNjAwfSk7XG5cbiAgICAvLyB0aGUgY3VycmVudCB3aW5kb3dcbiAgICBjbGllbnQud2luZG93SGFuZGxlU2l6ZSh7d2lkdGg6IDgwMCwgaGVpZ2h0OiA2MDB9KTtcbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZz19IHdpbmRvd0hhbmRsZSB0aGUgd2luZG93IHRvIHJlY2VpdmUvY2hhbmdlIHRoZSBzaXplXG4gKiBAcGFyYW0ge09iamVjdD19IGRpbWVuc2lvbiAgICB0aGUgbmV3IHNpemUgb2YgdGhlIHdpbmRvd1xuICpcbiAqIEByZXR1cm5zIHtPYmplY3R9IHRoZSBzaXplIG9mIHRoZSB3aW5kb3cgKGB7d2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXJ9YClcbiAqXG4gKiBAc2VlICBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL3NlbGVuaXVtL3dpa2kvSnNvbldpcmVQcm90b2NvbCNHRVRfL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvOndpbmRvd0hhbmRsZS9zaXplXG4gKiBAdHlwZSBwcm90b2NvbFxuICpcbiAqL1xuXG5pbXBvcnQgeyBQcm90b2NvbEVycm9yIH0gZnJvbSAnLi4vdXRpbHMvRXJyb3JIYW5kbGVyJ1xuXG5sZXQgd2luZG93SGFuZGxlU2l6ZSA9IGZ1bmN0aW9uICh3aW5kb3dIYW5kbGUgPSAnY3VycmVudCcsIHNpemUpIHtcbiAgICBsZXQgZGF0YSA9IHt9XG5cbiAgICAvKiFcbiAgICAgKiBwcm90b2NvbCBvcHRpb25zXG4gICAgICovXG4gICAgbGV0IHJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgICBwYXRoOiBgL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvJHt3aW5kb3dIYW5kbGV9L3NpemVgLFxuICAgICAgICBtZXRob2Q6ICdHRVQnXG4gICAgfVxuXG4gICAgLyohXG4gICAgICogb3RoZXJ3aXNlIGNoYW5nZSB3aW5kb3cgc2l6ZVxuICAgICAqL1xuICAgIGlmICh0eXBlb2Ygd2luZG93SGFuZGxlID09PSAnb2JqZWN0JyAmJiB3aW5kb3dIYW5kbGUud2lkdGggJiYgd2luZG93SGFuZGxlLmhlaWdodCkge1xuICAgICAgICByZXF1ZXN0T3B0aW9ucy5tZXRob2QgPSAnUE9TVCdcbiAgICAgICAgZGF0YSA9IHtcbiAgICAgICAgICAgIC8vIFRoZSB3aWR0aCBhbmQgaGVpZ2h0IHZhbHVlIG1pZ2h0IHJldHVybiBhcyBhIG5lZ2F0aXZlIHZhbHVlLCBzb1xuICAgICAgICAgICAgLy8gd2UgbWFrZSBzdXJlIHRvIHVzZSBpdHMgYWJzb2x1dGUgdmFsdWUuXG4gICAgICAgICAgICB3aWR0aDogTWF0aC5hYnMod2luZG93SGFuZGxlLndpZHRoKSxcbiAgICAgICAgICAgIGhlaWdodDogTWF0aC5hYnMod2luZG93SGFuZGxlLmhlaWdodClcbiAgICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHNpemUgPT09ICdvYmplY3QnICYmIHNpemUud2lkdGggJiYgc2l6ZS5oZWlnaHQpIHtcbiAgICAgICAgcmVxdWVzdE9wdGlvbnMubWV0aG9kID0gJ1BPU1QnXG4gICAgICAgIGRhdGEgPSB7XG4gICAgICAgICAgICB3aWR0aDogc2l6ZS53aWR0aCxcbiAgICAgICAgICAgIGhlaWdodDogc2l6ZS5oZWlnaHRcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIVxuICAgICAqIHR5cGUgY2hlY2tcbiAgICAgKi9cbiAgICBpZiAocmVxdWVzdE9wdGlvbnMubWV0aG9kID09PSAnUE9TVCcgJiYgdHlwZW9mIGRhdGEud2lkdGggIT09ICdudW1iZXInICYmIHR5cGVvZiBkYXRhLmhlaWdodCAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgdGhyb3cgbmV3IFByb3RvY29sRXJyb3IoJ251bWJlciBvciB0eXBlIG9mIGFyZ3VtZW50cyBkb25cXCd0IGFncmVlIHdpdGggd2luZG93SGFuZGxlU2l6ZSBwcm90b2NvbCBjb21tYW5kJylcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0SGFuZGxlci5jcmVhdGUocmVxdWVzdE9wdGlvbnMsIGRhdGEpXG59XG5cbmV4cG9ydCBkZWZhdWx0IHdpbmRvd0hhbmRsZVNpemVcbiJdfQ==