all files / DEV/lib/protocol/ windowHandleSize.js

66.67% Statements 12/18
47.06% Branches 8/17
0% Functions 0/1
33.33% Lines 2/6
7 statements, 8 branches Ignored     
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84                                                                                                                                                                     
/**
 *
 * 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==