/**
*
* 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9jaHJpc3RpYW5icm9tYW5uL1NpdGVzL1dlYnByb2pla3RlL3dlYmRyaXZlcmpzL0RFVi9saWIvcHJvdG9jb2wvd2luZG93SGFuZGxlU2l6ZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lDQStCOEIsdUJBQXVCOztBQUVyRCxJQUFJLGdCQUFnQixHQUFHLFNBQW5CLGdCQUFnQixDQUFhLFlBQVksRUFBYyxJQUFJLEVBQUU7UUFBaEMsWUFBWSxnQkFBWixZQUFZLEdBQUcsU0FBUzs7QUFDckQsUUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFBOzs7OztBQUtiLFFBQUksY0FBYyxHQUFHO0FBQ2pCLFlBQUksa0NBQWdDLFlBQVksVUFBTztBQUN2RCxjQUFNLEVBQUUsS0FBSztLQUNoQixDQUFBOzs7OztBQUtELFFBQUksT0FBTyxZQUFZLEtBQUssUUFBUSxJQUFJLFlBQVksQ0FBQyxLQUFLLElBQUksWUFBWSxDQUFDLE1BQU0sRUFBRTtBQUMvRSxzQkFBYyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7QUFDOUIsWUFBSSxHQUFHOzs7QUFHSCxpQkFBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQztBQUNuQyxrQkFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztTQUN4QyxDQUFBO0tBQ0osTUFBTSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7QUFDOUQsc0JBQWMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO0FBQzlCLFlBQUksR0FBRztBQUNILGlCQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7QUFDakIsa0JBQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUN0QixDQUFBO0tBQ0o7Ozs7O0FBS0QsUUFBSSxjQUFjLENBQUMsTUFBTSxLQUFLLE1BQU0sSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxJQUFJLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUU7QUFDdkcsY0FBTSxxQ0FBa0IsaUZBQWlGLENBQUMsQ0FBQTtLQUM3Rzs7QUFFRCxXQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQTtDQUMxRCxDQUFBOztxQkFFYyxnQkFBZ0IiLCJmaWxlIjoiL1VzZXJzL2NocmlzdGlhbmJyb21hbm4vU2l0ZXMvV2VicHJvamVrdGUvd2ViZHJpdmVyanMvREVWL2xpYi9wcm90b2NvbC93aW5kb3dIYW5kbGVTaXplLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKlxuICogUHJvdG9jb2wgYmluZGluZyB0byBnZXQgb3IgY2hhbmdlIHRoZSBzaXplIG9mIHRoZSBicm93c2VyLlxuICpcbiAqIDxleGFtcGxlPlxuICAgIDp3aW5kb3dIYW5kbGVTaXplLmpzXG4gICAgLy8gZ2V0IHRoZSBzaXplIG9mXG4gICAgLy8gYSBzcGVjaWZpZWQgd2luZG93XG4gICAgY2xpZW50LndpbmRvd0hhbmRsZVNpemUoJ2RjMzAzODFlLWUyZjMtOTQ0NC04YmYzLTEyY2M0NGU4MzcyYScsIGZ1bmN0aW9uKGVycixyZXMpIHsgLi4gfSk7XG5cbiAgICAvLyB0aGUgY3VycmVudCB3aW5kb3dcbiAgICBjbGllbnQud2luZG93SGFuZGxlU2l6ZShmdW5jdGlvbihlcnIscmVzKSB7IC4uLiB9KTtcblxuICAgIC8vIGNoYW5nZSB0aGUgcG9zaXRpb24gb2ZcbiAgICAvLyBhIHNwZWNpZmllZCB3aW5kb3dcbiAgICBjbGllbnQud2luZG93SGFuZGxlU2l6ZSgnZGMzMDM4MWUtZTJmMy05NDQ0LThiZjMtMTJjYzQ0ZTgzNzJhJywge3dpZHRoOiA4MDAsIGhlaWdodDogNjAwfSk7XG5cbiAgICAvLyB0aGUgY3VycmVudCB3aW5kb3dcbiAgICBjbGllbnQud2luZG93SGFuZGxlU2l6ZSh7d2lkdGg6IDgwMCwgaGVpZ2h0OiA2MDB9KTtcbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZz19IHdpbmRvd0hhbmRsZSB0aGUgd2luZG93IHRvIHJlY2VpdmUvY2hhbmdlIHRoZSBzaXplXG4gKiBAcGFyYW0ge09iamVjdD19IGRpbWVuc2lvbiAgICB0aGUgbmV3IHNpemUgb2YgdGhlIHdpbmRvd1xuICpcbiAqIEByZXR1cm5zIHtPYmplY3R9IHRoZSBzaXplIG9mIHRoZSB3aW5kb3cgKGB7d2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXJ9YClcbiAqXG4gKiBAc2VlICBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL3NlbGVuaXVtL3dpa2kvSnNvbldpcmVQcm90b2NvbCNHRVRfL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvOndpbmRvd0hhbmRsZS9zaXplXG4gKiBAdHlwZSBwcm90b2NvbFxuICpcbiAqL1xuXG5pbXBvcnQgeyBQcm90b2NvbEVycm9yIH0gZnJvbSAnLi4vdXRpbHMvRXJyb3JIYW5kbGVyJ1xuXG5sZXQgd2luZG93SGFuZGxlU2l6ZSA9IGZ1bmN0aW9uICh3aW5kb3dIYW5kbGUgPSAnY3VycmVudCcsIHNpemUpIHtcbiAgICBsZXQgZGF0YSA9IHt9XG5cbiAgICAvKiFcbiAgICAgKiBwcm90b2NvbCBvcHRpb25zXG4gICAgICovXG4gICAgbGV0IHJlcXVlc3RPcHRpb25zID0ge1xuICAgICAgICBwYXRoOiBgL3Nlc3Npb24vOnNlc3Npb25JZC93aW5kb3cvJHt3aW5kb3dIYW5kbGV9L3NpemVgLFxuICAgICAgICBtZXRob2Q6ICdHRVQnXG4gICAgfVxuXG4gICAgLyohXG4gICAgICogb3RoZXJ3aXNlIGNoYW5nZSB3aW5kb3cgc2l6ZVxuICAgICAqL1xuICAgIGlmICh0eXBlb2Ygd2luZG93SGFuZGxlID09PSAnb2JqZWN0JyAmJiB3aW5kb3dIYW5kbGUud2lkdGggJiYgd2luZG93SGFuZGxlLmhlaWdodCkge1xuICAgICAgICByZXF1ZXN0T3B0aW9ucy5tZXRob2QgPSAnUE9TVCdcbiAgICAgICAgZGF0YSA9IHtcbiAgICAgICAgICAgIC8vIFRoZSB3aWR0aCBhbmQgaGVpZ2h0IHZhbHVlIG1pZ2h0IHJldHVybiBhcyBhIG5lZ2F0aXZlIHZhbHVlLCBzb1xuICAgICAgICAgICAgLy8gd2UgbWFrZSBzdXJlIHRvIHVzZSBpdHMgYWJzb2x1dGUgdmFsdWUuXG4gICAgICAgICAgICB3aWR0aDogTWF0aC5hYnMod2luZG93SGFuZGxlLndpZHRoKSxcbiAgICAgICAgICAgIGhlaWdodDogTWF0aC5hYnMod2luZG93SGFuZGxlLmhlaWdodClcbiAgICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHNpemUgPT09ICdvYmplY3QnICYmIHNpemUud2lkdGggJiYgc2l6ZS5oZWlnaHQpIHtcbiAgICAgICAgcmVxdWVzdE9wdGlvbnMubWV0aG9kID0gJ1BPU1QnXG4gICAgICAgIGRhdGEgPSB7XG4gICAgICAgICAgICB3aWR0aDogc2l6ZS53aWR0aCxcbiAgICAgICAgICAgIGhlaWdodDogc2l6ZS5oZWlnaHRcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIVxuICAgICAqIHR5cGUgY2hlY2tcbiAgICAgKi9cbiAgICBpZiAocmVxdWVzdE9wdGlvbnMubWV0aG9kID09PSAnUE9TVCcgJiYgdHlwZW9mIGRhdGEud2lkdGggIT09ICdudW1iZXInICYmIHR5cGVvZiBkYXRhLmhlaWdodCAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgdGhyb3cgbmV3IFByb3RvY29sRXJyb3IoJ251bWJlciBvciB0eXBlIG9mIGFyZ3VtZW50cyBkb25cXCd0IGFncmVlIHdpdGggd2luZG93SGFuZGxlU2l6ZSBwcm90b2NvbCBjb21tYW5kJylcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0SGFuZGxlci5jcmVhdGUocmVxdWVzdE9wdGlvbnMsIGRhdGEpXG59XG5cbmV4cG9ydCBkZWZhdWx0IHdpbmRvd0hhbmRsZVNpemVcbiJdfQ== |