UNPKG

webdriverio-automation

Version:

WebdriverIO-Automation android ios project

73 lines (55 loc) 11.4 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.BASEDRIVER_HANDLED_SETTINGS = exports.DeviceSettings = exports.default = void 0; require("source-map-support/register"); var _lodash = _interopRequireDefault(require("lodash")); var _logger = _interopRequireDefault(require("./logger")); var _images = require("./commands/images"); var _imageElement = require("./image-element"); const GLOBAL_DEFAULT_SETTINGS = { imageMatchThreshold: _images.DEFAULT_MATCH_THRESHOLD, fixImageFindScreenshotDims: true, fixImageTemplateSize: false, fixImageTemplateScale: false, defaultImageTemplateScale: _imageElement.DEFAULT_TEMPLATE_IMAGE_SCALE, checkForImageElementStaleness: true, autoUpdateImageElementPosition: false, imageElementTapStrategy: _imageElement.IMAGE_EL_TAP_STRATEGY_W3C, getMatchedImageResult: false }; const BASEDRIVER_HANDLED_SETTINGS = ['imageMatchThreshold', 'fixImageFindScreenshotDims', 'fixImageTemplateSize', 'fixImageTemplateScale', 'defaultImageTemplateScale', 'checkForImageElementStaleness', 'autoUpdateImageElementPosition', 'imageElementTapStrategy', 'getMatchedImageResult']; exports.BASEDRIVER_HANDLED_SETTINGS = BASEDRIVER_HANDLED_SETTINGS; class DeviceSettings { constructor(defaultSettings = {}, onSettingsUpdate = null) { this._settings = Object.assign({}, GLOBAL_DEFAULT_SETTINGS, defaultSettings); this.onSettingsUpdate = onSettingsUpdate; } async update(newSettings) { if (!_lodash.default.isObject(newSettings)) { throw new Error('Settings update should be called with valid JSON'); } for (let prop of _lodash.default.keys(newSettings)) { if (_lodash.default.isUndefined(this._settings[prop])) { _logger.default.warn(`Didn't know about setting '${prop}'. Are you sure you ` + `spelled it correctly? Proceeding anyway. Valid settings: ${_lodash.default.keys(this._settings)}`); } if (this._settings[prop] !== newSettings[prop]) { if (this.onSettingsUpdate) { await this.onSettingsUpdate(prop, newSettings[prop], this._settings[prop]); this._settings[prop] = newSettings[prop]; } else { _logger.default.errorAndThrow('Unable to update settings; onSettingsUpdate method not found'); } } } } getSettings() { return this._settings; } } exports.DeviceSettings = DeviceSettings; var _default = DeviceSettings; exports.default = _default;require('source-map-support').install(); //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9iYXNlZHJpdmVyL2RldmljZS1zZXR0aW5ncy5qcyJdLCJuYW1lcyI6WyJHTE9CQUxfREVGQVVMVF9TRVRUSU5HUyIsImltYWdlTWF0Y2hUaHJlc2hvbGQiLCJERUZBVUxUX01BVENIX1RIUkVTSE9MRCIsImZpeEltYWdlRmluZFNjcmVlbnNob3REaW1zIiwiZml4SW1hZ2VUZW1wbGF0ZVNpemUiLCJmaXhJbWFnZVRlbXBsYXRlU2NhbGUiLCJkZWZhdWx0SW1hZ2VUZW1wbGF0ZVNjYWxlIiwiREVGQVVMVF9URU1QTEFURV9JTUFHRV9TQ0FMRSIsImNoZWNrRm9ySW1hZ2VFbGVtZW50U3RhbGVuZXNzIiwiYXV0b1VwZGF0ZUltYWdlRWxlbWVudFBvc2l0aW9uIiwiaW1hZ2VFbGVtZW50VGFwU3RyYXRlZ3kiLCJJTUFHRV9FTF9UQVBfU1RSQVRFR1lfVzNDIiwiZ2V0TWF0Y2hlZEltYWdlUmVzdWx0IiwiQkFTRURSSVZFUl9IQU5ETEVEX1NFVFRJTkdTIiwiRGV2aWNlU2V0dGluZ3MiLCJjb25zdHJ1Y3RvciIsImRlZmF1bHRTZXR0aW5ncyIsIm9uU2V0dGluZ3NVcGRhdGUiLCJfc2V0dGluZ3MiLCJPYmplY3QiLCJhc3NpZ24iLCJ1cGRhdGUiLCJuZXdTZXR0aW5ncyIsIl8iLCJpc09iamVjdCIsIkVycm9yIiwicHJvcCIsImtleXMiLCJpc1VuZGVmaW5lZCIsImxvZyIsIndhcm4iLCJlcnJvckFuZFRocm93IiwiZ2V0U2V0dGluZ3MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTUEsdUJBQXVCLEdBQUc7QUFHOUJDLEVBQUFBLG1CQUFtQixFQUFFQywrQkFIUztBQU85QkMsRUFBQUEsMEJBQTBCLEVBQUUsSUFQRTtBQVk5QkMsRUFBQUEsb0JBQW9CLEVBQUUsS0FaUTtBQW9COUJDLEVBQUFBLHFCQUFxQixFQUFFLEtBcEJPO0FBNEI5QkMsRUFBQUEseUJBQXlCLEVBQUVDLDBDQTVCRztBQWdDOUJDLEVBQUFBLDZCQUE2QixFQUFFLElBaENEO0FBb0M5QkMsRUFBQUEsOEJBQThCLEVBQUUsS0FwQ0Y7QUF3QzlCQyxFQUFBQSx1QkFBdUIsRUFBRUMsdUNBeENLO0FBNEM5QkMsRUFBQUEscUJBQXFCLEVBQUU7QUE1Q08sQ0FBaEM7QUFpREEsTUFBTUMsMkJBQTJCLEdBQUcsQ0FDbEMscUJBRGtDLEVBRWxDLDRCQUZrQyxFQUdsQyxzQkFIa0MsRUFJbEMsdUJBSmtDLEVBS2xDLDJCQUxrQyxFQU1sQywrQkFOa0MsRUFPbEMsZ0NBUGtDLEVBUWxDLHlCQVJrQyxFQVNsQyx1QkFUa0MsQ0FBcEM7OztBQVlBLE1BQU1DLGNBQU4sQ0FBcUI7QUFFbkJDLEVBQUFBLFdBQVcsQ0FBRUMsZUFBZSxHQUFHLEVBQXBCLEVBQXdCQyxnQkFBZ0IsR0FBRyxJQUEzQyxFQUFpRDtBQUMxRCxTQUFLQyxTQUFMLEdBQWlCQyxNQUFNLENBQUNDLE1BQVAsQ0FBYyxFQUFkLEVBQWtCcEIsdUJBQWxCLEVBQTJDZ0IsZUFBM0MsQ0FBakI7QUFDQSxTQUFLQyxnQkFBTCxHQUF3QkEsZ0JBQXhCO0FBQ0Q7O0FBR0QsUUFBTUksTUFBTixDQUFjQyxXQUFkLEVBQTJCO0FBQ3pCLFFBQUksQ0FBQ0MsZ0JBQUVDLFFBQUYsQ0FBV0YsV0FBWCxDQUFMLEVBQThCO0FBQzVCLFlBQU0sSUFBSUcsS0FBSixDQUFVLGtEQUFWLENBQU47QUFDRDs7QUFDRCxTQUFLLElBQUlDLElBQVQsSUFBaUJILGdCQUFFSSxJQUFGLENBQU9MLFdBQVAsQ0FBakIsRUFBc0M7QUFDcEMsVUFBSUMsZ0JBQUVLLFdBQUYsQ0FBYyxLQUFLVixTQUFMLENBQWVRLElBQWYsQ0FBZCxDQUFKLEVBQXlDO0FBQ3ZDRyx3QkFBSUMsSUFBSixDQUFVLDhCQUE2QkosSUFBSyxzQkFBbkMsR0FDQyw0REFBMkRILGdCQUFFSSxJQUFGLENBQU8sS0FBS1QsU0FBWixDQUF1QixFQUQ1RjtBQUVEOztBQUNELFVBQUksS0FBS0EsU0FBTCxDQUFlUSxJQUFmLE1BQXlCSixXQUFXLENBQUNJLElBQUQsQ0FBeEMsRUFBZ0Q7QUFFOUMsWUFBSSxLQUFLVCxnQkFBVCxFQUEyQjtBQUN6QixnQkFBTSxLQUFLQSxnQkFBTCxDQUFzQlMsSUFBdEIsRUFBNEJKLFdBQVcsQ0FBQ0ksSUFBRCxDQUF2QyxFQUErQyxLQUFLUixTQUFMLENBQWVRLElBQWYsQ0FBL0MsQ0FBTjtBQUNBLGVBQUtSLFNBQUwsQ0FBZVEsSUFBZixJQUF1QkosV0FBVyxDQUFDSSxJQUFELENBQWxDO0FBQ0QsU0FIRCxNQUdPO0FBQ0xHLDBCQUFJRSxhQUFKLENBQWtCLDhEQUFsQjtBQUNEO0FBQ0Y7QUFDRjtBQUNGOztBQUVEQyxFQUFBQSxXQUFXLEdBQUk7QUFDYixXQUFPLEtBQUtkLFNBQVo7QUFDRDs7QUEvQmtCOzs7ZUFrQ05KLGMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IGxvZyBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgeyBERUZBVUxUX01BVENIX1RIUkVTSE9MRCB9IGZyb20gJy4vY29tbWFuZHMvaW1hZ2VzJztcbmltcG9ydCB7IElNQUdFX0VMX1RBUF9TVFJBVEVHWV9XM0MsIERFRkFVTFRfVEVNUExBVEVfSU1BR0VfU0NBTEUgfSBmcm9tICcuL2ltYWdlLWVsZW1lbnQnO1xuXG5jb25zdCBHTE9CQUxfREVGQVVMVF9TRVRUSU5HUyA9IHtcbiAgLy8gdmFsdWUgYmV0d2VlbiAwIGFuZCAxIHJlcHJlc2VudGluZyBtYXRjaCBzdHJlbmd0aCwgYmVsb3cgd2hpY2ggYW4gaW1hZ2VcbiAgLy8gZWxlbWVudCB3aWxsIG5vdCBiZSBmb3VuZFxuICBpbWFnZU1hdGNoVGhyZXNob2xkOiBERUZBVUxUX01BVENIX1RIUkVTSE9MRCxcblxuICAvLyBpZiB0aGUgaW1hZ2UgcmV0dXJuZWQgYnkgZ2V0U2NyZWVuc2hvdCBkaWZmZXJzIGluIHNpemUgb3IgYXNwZWN0IHJhdGlvXG4gIC8vIGZyb20gdGhlIHNjcmVlbiwgYXR0ZW1wdCB0byBmaXggaXQgYXV0b21hdGljYWxseVxuICBmaXhJbWFnZUZpbmRTY3JlZW5zaG90RGltczogdHJ1ZSxcblxuICAvLyB3aGV0aGVyIEFwcGl1bSBzaG91bGQgZW5zdXJlIHRoYXQgYW4gaW1hZ2UgdGVtcGxhdGUgc2VudCBpbiBkdXJpbmcgaW1hZ2VcbiAgLy8gZWxlbWVudCBmaW5kIHNob3VsZCBoYXZlIGl0cyBzaXplIGFkanVzdGVkIHNvIHRoZSBtYXRjaCBhbGdvcml0aG0gd2lsbCBub3RcbiAgLy8gY29tcGxhaW5cbiAgZml4SW1hZ2VUZW1wbGF0ZVNpemU6IGZhbHNlLFxuXG4gIC8vIHdoZXRoZXIgQXBwaXVtIHNob3VsZCBlbnN1cmUgdGhhdCBhbiBpbWFnZSB0ZW1wbGF0ZSBzZW50IGluIGR1cmluZyBpbWFnZVxuICAvLyBlbGVtZW50IGZpbmQgc2hvdWxkIGhhdmUgaXRzIHNjYWxlIGFkanVzdGVkIHRvIGRpc3BsYXkgc2l6ZSBzbyB0aGUgbWF0Y2hcbiAgLy8gYWxnb3JpdGhtIHdpbGwgbm90IGNvbXBsYWluLlxuICAvLyBlLmcuIGlPUyBoYXMgYHdpZHRoPTM3NSwgaGVpZ2h0PTY2N2Agd2luZG93IHJlY3QsIGJ1dCBpdHMgc2NyZWVuc2hvdCBpc1xuICAvLyAgICAgIGB3aWR0aD03NTAgw5cgaGVpZ2h0PTEzMzRgIHBpeGVscy4gVGhpcyBzZXR0aW5nIGhlbHAgdG8gYWRqdXN0IHRoZSBzY2FsZVxuICAvLyAgICAgIGlmIGEgdXNlciB1c2UgYHdpZHRoPTc1MCDDlyBoZWlnaHQ9MTMzNGAgcGl4ZWxzJ3MgYmFzZSB0ZW1wbGF0ZSBpbWFnZS5cbiAgZml4SW1hZ2VUZW1wbGF0ZVNjYWxlOiBmYWxzZSxcblxuICAvLyBVc2VycyBtaWdodCBoYXZlIHNjYWxlZCB0ZW1wbGF0ZSBpbWFnZSB0byByZWR1Y2UgdGhlaXIgc3RvcmFnZSBzaXplLlxuICAvLyBUaGlzIHNldHRpbmcgYWxsb3dzIHVzZXJzIHRvIHNjYWxlIGEgdGVtcGxhdGUgaW1hZ2UgdGhleSBzZW5kIHRvIEFwcGl1bSBzZXJ2ZXJcbiAgLy8gc28gdGhhdCB0aGUgQXBwaXVtIHNlcnZlciBjb21wYXJlcyB0aGUgYWN0dWFsIHNjYWxlIHVzZXJzIG9yaWdpbmFsbHkgaGFkLlxuICAvLyBlLmcuIElmIGEgdXNlciBoYXMgYW4gaW1hZ2Ugb2YgMjcwIHggMzIgcGl4ZWxzIHdoaWNoIHdhcyBvcmlnaW5hbGx5IDEwODAgeCAxMjYgcGl4ZWxzLFxuICAvLyAgICAgIHRoZSB1c2VyIGNhbiBzZXQge2RlZmF1bHRJbWFnZVRlbXBsYXRlU2NhbGU6IDQuMH0gdG8gc2NhbGUgdGhlIHNtYWxsIGltYWdlXG4gIC8vICAgICAgdG8gdGhlIG9yaWdpbmFsIG9uZSBzbyB0aGF0IEFwcGl1bSBjYW4gY29tcGFyZSBpdCBhcyB0aGUgb3JpZ2luYWwgb25lLlxuICBkZWZhdWx0SW1hZ2VUZW1wbGF0ZVNjYWxlOiBERUZBVUxUX1RFTVBMQVRFX0lNQUdFX1NDQUxFLFxuXG4gIC8vIHdoZXRoZXIgQXBwaXVtIHNob3VsZCByZS1jaGVjayB0aGF0IGFuIGltYWdlIGVsZW1lbnQgY2FuIGJlIG1hdGNoZWRcbiAgLy8gYWdhaW5zdCB0aGUgY3VycmVudCBzY3JlZW5zaG90IGJlZm9yZSBjbGlja2luZyBpdFxuICBjaGVja0ZvckltYWdlRWxlbWVudFN0YWxlbmVzczogdHJ1ZSxcblxuICAvLyB3aGV0aGVyIGJlZm9yZSBjbGlja2luZyBvbiBhbiBpbWFnZSBlbGVtZW50IEFwcGl1bSBzaG91bGQgcmUtZGV0ZXJtaW5lIHRoZVxuICAvLyBwb3NpdGlvbiBvZiB0aGUgZWxlbWVudCBvbiBzY3JlZW5cbiAgYXV0b1VwZGF0ZUltYWdlRWxlbWVudFBvc2l0aW9uOiBmYWxzZSxcblxuICAvLyB3aGljaCBtZXRob2QgdG8gdXNlIGZvciB0YXBwaW5nIGJ5IGNvb3JkaW5hdGUgZm9yIGltYWdlIGVsZW1lbnRzLiB0aGVcbiAgLy8gb3B0aW9ucyBhcmUgJ3czYycgb3IgJ21qc29ud3AnXG4gIGltYWdlRWxlbWVudFRhcFN0cmF0ZWd5OiBJTUFHRV9FTF9UQVBfU1RSQVRFR1lfVzNDLFxuXG4gIC8vIHdoaWNoIG1ldGhvZCB0byB1c2UgdG8gc2F2ZSB0aGUgbWF0Y2hlZCBpbWFnZSBhcmVhIGluIEltYWdlRWxlbWVudCBjbGFzcy5cbiAgLy8gSXQgaXMgdXNlZCBmb3IgZGVidWdnaW5nIHB1cnBvc2UuXG4gIGdldE1hdGNoZWRJbWFnZVJlc3VsdDogZmFsc2UsXG59O1xuXG4vLyBkZWNsYXJlIHNldHRpbmdzIHRoYXQgYXJlIHJlYWxseSBoYW5kbGVkIG9ubHkgYnkgYmFzZWRyaXZlciwgc28gZG93bnN0cmVhbVxuLy8gZHJpdmVycyBjYW4gY2hvb3NlIHRvIGlnbm9yZSB0aGVtIGZvciB0aGVpciBvd24gc2V0dGluZ3MgdmFsaWRhdGlvbiwgZXRjLi4uXG5jb25zdCBCQVNFRFJJVkVSX0hBTkRMRURfU0VUVElOR1MgPSBbXG4gICdpbWFnZU1hdGNoVGhyZXNob2xkJyxcbiAgJ2ZpeEltYWdlRmluZFNjcmVlbnNob3REaW1zJyxcbiAgJ2ZpeEltYWdlVGVtcGxhdGVTaXplJyxcbiAgJ2ZpeEltYWdlVGVtcGxhdGVTY2FsZScsXG4gICdkZWZhdWx0SW1hZ2VUZW1wbGF0ZVNjYWxlJyxcbiAgJ2NoZWNrRm9ySW1hZ2VFbGVtZW50U3RhbGVuZXNzJyxcbiAgJ2F1dG9VcGRhdGVJbWFnZUVsZW1lbnRQb3NpdGlvbicsXG4gICdpbWFnZUVsZW1lbnRUYXBTdHJhdGVneScsXG4gICdnZXRNYXRjaGVkSW1hZ2VSZXN1bHQnLFxuXTtcblxuY2xhc3MgRGV2aWNlU2V0dGluZ3Mge1xuXG4gIGNvbnN0cnVjdG9yIChkZWZhdWx0U2V0dGluZ3MgPSB7fSwgb25TZXR0aW5nc1VwZGF0ZSA9IG51bGwpIHtcbiAgICB0aGlzLl9zZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oe30sIEdMT0JBTF9ERUZBVUxUX1NFVFRJTkdTLCBkZWZhdWx0U2V0dGluZ3MpO1xuICAgIHRoaXMub25TZXR0aW5nc1VwZGF0ZSA9IG9uU2V0dGluZ3NVcGRhdGU7XG4gIH1cblxuICAvLyBjYWxscyB1cGRhdGVTZXR0aW5ncyBmcm9tIGltcGxlbWVudGluZyBkcml2ZXIgZXZlcnkgdGltZSBhIHNldHRpbmcgaXMgY2hhbmdlZC5cbiAgYXN5bmMgdXBkYXRlIChuZXdTZXR0aW5ncykge1xuICAgIGlmICghXy5pc09iamVjdChuZXdTZXR0aW5ncykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU2V0dGluZ3MgdXBkYXRlIHNob3VsZCBiZSBjYWxsZWQgd2l0aCB2YWxpZCBKU09OJyk7XG4gICAgfVxuICAgIGZvciAobGV0IHByb3Agb2YgXy5rZXlzKG5ld1NldHRpbmdzKSkge1xuICAgICAgaWYgKF8uaXNVbmRlZmluZWQodGhpcy5fc2V0dGluZ3NbcHJvcF0pKSB7XG4gICAgICAgIGxvZy53YXJuKGBEaWRuJ3Qga25vdyBhYm91dCBzZXR0aW5nICcke3Byb3B9Jy4gQXJlIHlvdSBzdXJlIHlvdSBgICtcbiAgICAgICAgICAgICAgICAgYHNwZWxsZWQgaXQgY29ycmVjdGx5PyBQcm9jZWVkaW5nIGFueXdheS4gVmFsaWQgc2V0dGluZ3M6ICR7Xy5rZXlzKHRoaXMuX3NldHRpbmdzKX1gKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLl9zZXR0aW5nc1twcm9wXSAhPT0gbmV3U2V0dGluZ3NbcHJvcF0pIHtcbiAgICAgICAgLy8gdXBkYXRlIHNldHRpbmcgb25seSB3aGVuIHRoZXJlIGlzIHVwZGF0ZVNldHRpbmdzIGRlZmluZWQuXG4gICAgICAgIGlmICh0aGlzLm9uU2V0dGluZ3NVcGRhdGUpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLm9uU2V0dGluZ3NVcGRhdGUocHJvcCwgbmV3U2V0dGluZ3NbcHJvcF0sIHRoaXMuX3NldHRpbmdzW3Byb3BdKTtcbiAgICAgICAgICB0aGlzLl9zZXR0aW5nc1twcm9wXSA9IG5ld1NldHRpbmdzW3Byb3BdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZy5lcnJvckFuZFRocm93KCdVbmFibGUgdG8gdXBkYXRlIHNldHRpbmdzOyBvblNldHRpbmdzVXBkYXRlIG1ldGhvZCBub3QgZm91bmQnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldFNldHRpbmdzICgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2V0dGluZ3M7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgRGV2aWNlU2V0dGluZ3M7XG5leHBvcnQgeyBEZXZpY2VTZXR0aW5ncywgQkFTRURSSVZFUl9IQU5ETEVEX1NFVFRJTkdTIH07XG4iXSwiZmlsZSI6ImxpYi9iYXNlZHJpdmVyL2RldmljZS1zZXR0aW5ncy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9