@testim/testim-cli
Version:
Command line interface for running Testing on you CI
56 lines (47 loc) • 4.33 kB
JavaScript
/**
*
* 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
*
*/
;
var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
Object.defineProperty(exports, '__esModule', {
value: true
});
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9jb21tYW5kcy9nZXRWaWV3cG9ydFNpemUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztzQ0EwQmtDLDRCQUE0Qjs7OztBQUU5RCxJQUFJLGVBQWUsR0FBRyxTQUFsQixlQUFlLENBQWEsSUFBSSxFQUFFO0FBQ2xDLFdBQU8sSUFBSSxDQUFDLE9BQU8scUNBQXVCLENBQUMsSUFBSSxDQUFDLFVBQUMsR0FBRyxFQUFLO0FBQ3JELFlBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtBQUMxRCxnQkFBSSxHQUFHLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ2hFLG1CQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7U0FDekI7O0FBRUQsZUFBTztBQUNILGlCQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksQ0FBQztBQUNqQyxrQkFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsWUFBWSxJQUFJLENBQUM7U0FDdEMsQ0FBQTtLQUNKLENBQUMsQ0FBQTtDQUNMLENBQUE7O3FCQUVjLGVBQWUiLCJmaWxlIjoiZ2V0Vmlld3BvcnRTaXplLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKlxuICogR2V0IHZpZXdwb3J0IHNpemUgb2YgdGhlIGN1cnJlbnQgYnJvd3NlciB3aW5kb3cuXG4gKlxuICogPGV4YW1wbGU+XG4gICAgOmdldFNvdXJjZS5qc1xuICAgIGNsaWVudFxuICAgICAgICAudXJsKCdodHRwOi8vd2ViZHJpdmVyLmlvJylcbiAgICAgICAgLmdldFZpZXdwb3J0U2l6ZSgpLnRoZW4oZnVuY3Rpb24oc2l6ZSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coc2l6ZSk7IC8vIG91dHB1dHM6IHt3aWR0aDogMTAyNCwgaGVpZ2h0OiA3Njh9XG4gICAgICAgIH0pXG4gICAgICAgIC5nZXRWaWV3cG9ydFNpemUoJ3dpZHRoJykudGhlbihmdW5jdGlvbihzaXplKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhzaXplKTsgLy8gb3V0cHV0czogMTAyNFxuICAgICAgICB9KVxuICAgICAgICAuZ2V0Vmlld3BvcnRTaXplKCdoZWlnaHQnKS50aGVuKGZ1bmN0aW9uKHNpemUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHNpemUpOyAvLyBvdXRwdXRzOiA3NjhcbiAgICAgICAgfSk7XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHByb3BlcnR5ICBpZiBcIndpZHRoXCIgb3IgXCJoZWlnaHRcIiBpcyBzZXQgaXQgcmV0dXJucyBvbmx5IHRoYXQgcHJvcGVydHlcbiAqIEByZXR1cm5zIHtPYmplY3R9ICB2aWV3cG9ydCB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSBicm93c2VyXG4gKiBAdXNlcyBwcm90b2NvbC9leGVjdXRlXG4gKiBAdHlwZSB3aW5kb3dcbiAqXG4gKi9cblxuaW1wb3J0IGdldFZpZXdwb3J0U2l6ZUhlbHBlciBmcm9tICcuLi9zY3JpcHRzL2dldFZpZXdwb3J0U2l6ZSdcblxubGV0IGdldFZpZXdwb3J0U2l6ZSA9IGZ1bmN0aW9uIChwcm9wKSB7XG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZShnZXRWaWV3cG9ydFNpemVIZWxwZXIpLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnICYmIHByb3AubWF0Y2goLyh3aWR0aHxoZWlnaHQpLykpIHtcbiAgICAgICAgICAgIHByb3AgPSAnc2NyZWVuJyArIHByb3Auc2xpY2UoMCwgMSkudG9VcHBlckNhc2UoKSArIHByb3Auc2xpY2UoMSlcbiAgICAgICAgICAgIHJldHVybiByZXMudmFsdWVbcHJvcF1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB3aWR0aDogcmVzLnZhbHVlLnNjcmVlbldpZHRoIHx8IDAsXG4gICAgICAgICAgICBoZWlnaHQ6IHJlcy52YWx1ZS5zY3JlZW5IZWlnaHQgfHwgMFxuICAgICAgICB9XG4gICAgfSlcbn1cblxuZXhwb3J0IGRlZmF1bHQgZ2V0Vmlld3BvcnRTaXplXG4iXX0=