all files / DEV/lib/commands/ getViewportSize.js

92.31% Statements 12/13
50% Branches 6/12
33.33% Functions 1/3
66.67% Lines 2/3
4 statements, 3 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                                                                                                             
/**
 *
 * Get viewport size of the current browser window.
 *
 * <example>
    :getSource.js
    client
        .url('http://webdriver.io')
        .getViewportSize().then(function(size) {
            console.log(size); // outputs: {width: 1024, height: 768}
        })
        .getViewportSize('width').then(function(size) {
            console.log(size); // outputs: 1024
        })
        .getViewportSize('height').then(function(size) {
            console.log(size); // outputs: 768
        });
 * </example>
 *
 * @param {String} property  if "width" or "height" is set it returns only that property
 * @returns {Object}  viewport width and height of the browser
 * @uses protocol/execute
 * @type window
 *
 */
 
'use strict';
 
Object.defineProperty(exports, '__esModule', {
    value: true
});
// istanbul ignore next
 
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
 
var _scriptsGetViewportSize = require('../scripts/getViewportSize');
 
var _scriptsGetViewportSize2 = _interopRequireDefault(_scriptsGetViewportSize);
 
var getViewportSize = function getViewportSize(prop) {
    return this.execute(_scriptsGetViewportSize2['default']).then(function (res) {
        if (typeof prop === 'string' && prop.match(/(width|height)/)) {
            prop = 'screen' + prop.slice(0, 1).toUpperCase() + prop.slice(1);
            return res.value[prop];
        }
 
        return {
            width: res.value.screenWidth || 0,
            height: res.value.screenHeight || 0
        };
    });
};
 
exports['default'] = getViewportSize;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9jaHJpc3RpYW5icm9tYW5uL1NpdGVzL1dlYnByb2pla3RlL3dlYmRyaXZlcmpzL0RFVi9saWIvY29tbWFuZHMvZ2V0Vmlld3BvcnRTaXplLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3NDQTBCa0MsNEJBQTRCOzs7O0FBRTlELElBQUksZUFBZSxHQUFHLFNBQWxCLGVBQWUsQ0FBYSxJQUFJLEVBQUU7QUFDbEMsV0FBTyxJQUFJLENBQUMsT0FBTyxxQ0FBdUIsQ0FBQyxJQUFJLENBQUMsVUFBQyxHQUFHLEVBQUs7QUFDckQsWUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO0FBQzFELGdCQUFJLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDaEUsbUJBQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtTQUN6Qjs7QUFFRCxlQUFPO0FBQ0gsaUJBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxDQUFDO0FBQ2pDLGtCQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxZQUFZLElBQUksQ0FBQztTQUN0QyxDQUFBO0tBQ0osQ0FBQyxDQUFBO0NBQ0wsQ0FBQTs7cUJBRWMsZUFBZSIsImZpbGUiOiIvVXNlcnMvY2hyaXN0aWFuYnJvbWFubi9TaXRlcy9XZWJwcm9qZWt0ZS93ZWJkcml2ZXJqcy9ERVYvbGliL2NvbW1hbmRzL2dldFZpZXdwb3J0U2l6ZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICpcbiAqIEdldCB2aWV3cG9ydCBzaXplIG9mIHRoZSBjdXJyZW50IGJyb3dzZXIgd2luZG93LlxuICpcbiAqIDxleGFtcGxlPlxuICAgIDpnZXRTb3VyY2UuanNcbiAgICBjbGllbnRcbiAgICAgICAgLnVybCgnaHR0cDovL3dlYmRyaXZlci5pbycpXG4gICAgICAgIC5nZXRWaWV3cG9ydFNpemUoKS50aGVuKGZ1bmN0aW9uKHNpemUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHNpemUpOyAvLyBvdXRwdXRzOiB7d2lkdGg6IDEwMjQsIGhlaWdodDogNzY4fVxuICAgICAgICB9KVxuICAgICAgICAuZ2V0Vmlld3BvcnRTaXplKCd3aWR0aCcpLnRoZW4oZnVuY3Rpb24oc2l6ZSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coc2l6ZSk7IC8vIG91dHB1dHM6IDEwMjRcbiAgICAgICAgfSlcbiAgICAgICAgLmdldFZpZXdwb3J0U2l6ZSgnaGVpZ2h0JykudGhlbihmdW5jdGlvbihzaXplKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhzaXplKTsgLy8gb3V0cHV0czogNzY4XG4gICAgICAgIH0pO1xuICogPC9leGFtcGxlPlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBwcm9wZXJ0eSAgaWYgXCJ3aWR0aFwiIG9yIFwiaGVpZ2h0XCIgaXMgc2V0IGl0IHJldHVybnMgb25seSB0aGF0IHByb3BlcnR5XG4gKiBAcmV0dXJucyB7T2JqZWN0fSAgdmlld3BvcnQgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUgYnJvd3NlclxuICogQHVzZXMgcHJvdG9jb2wvZXhlY3V0ZVxuICogQHR5cGUgd2luZG93XG4gKlxuICovXG5cbmltcG9ydCBnZXRWaWV3cG9ydFNpemVIZWxwZXIgZnJvbSAnLi4vc2NyaXB0cy9nZXRWaWV3cG9ydFNpemUnXG5cbmxldCBnZXRWaWV3cG9ydFNpemUgPSBmdW5jdGlvbiAocHJvcCkge1xuICAgIHJldHVybiB0aGlzLmV4ZWN1dGUoZ2V0Vmlld3BvcnRTaXplSGVscGVyKS50aGVuKChyZXMpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJyAmJiBwcm9wLm1hdGNoKC8od2lkdGh8aGVpZ2h0KS8pKSB7XG4gICAgICAgICAgICBwcm9wID0gJ3NjcmVlbicgKyBwcm9wLnNsaWNlKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyBwcm9wLnNsaWNlKDEpXG4gICAgICAgICAgICByZXR1cm4gcmVzLnZhbHVlW3Byb3BdXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgd2lkdGg6IHJlcy52YWx1ZS5zY3JlZW5XaWR0aCB8fCAwLFxuICAgICAgICAgICAgaGVpZ2h0OiByZXMudmFsdWUuc2NyZWVuSGVpZ2h0IHx8IDBcbiAgICAgICAgfVxuICAgIH0pXG59XG5cbmV4cG9ydCBkZWZhdWx0IGdldFZpZXdwb3J0U2l6ZVxuIl19