UNPKG

appium-xcuitest-driver-conan

Version:

Appium driver for iOS using XCUITest for backend

163 lines (132 loc) 8.86 kB
'use strict'; var _createClass = require('babel-runtime/helpers/create-class')['default']; var _classCallCheck = require('babel-runtime/helpers/class-call-check')['default']; var _regeneratorRuntime = require('babel-runtime/regenerator')['default']; var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default']; Object.defineProperty(exports, '__esModule', { value: true }); var _teen_process = require('teen_process'); var _appiumSupport = require('appium-support'); var _logger = require('./logger'); var _logger2 = _interopRequireDefault(_logger); var IOSDEPLOY_PATH = 'ios-deploy'; var IOSDeploy = (function () { function IOSDeploy(udid) { _classCallCheck(this, IOSDeploy); this.udid = udid; this.cmd = IOSDEPLOY_PATH; // this.cmd is in accordance with iDevice } _createClass(IOSDeploy, [{ key: 'checkStatus', value: function checkStatus() { return _regeneratorRuntime.async(function checkStatus$(context$2$0) { while (1) switch (context$2$0.prev = context$2$0.next) { case 0: context$2$0.next = 2; return _regeneratorRuntime.awrap(_appiumSupport.fs.which(this.cmd)); case 2: case 'end': return context$2$0.stop(); } }, null, this); } }, { key: 'remove', value: function remove(bundleid) { var remove; return _regeneratorRuntime.async(function remove$(context$2$0) { while (1) switch (context$2$0.prev = context$2$0.next) { case 0: remove = ['--uninstall_only', '--id', this.udid, '--bundle_id', bundleid]; context$2$0.prev = 1; context$2$0.next = 4; return _regeneratorRuntime.awrap((0, _teen_process.exec)(this.cmd, remove)); case 4: context$2$0.next = 10; break; case 6: context$2$0.prev = 6; context$2$0.t0 = context$2$0['catch'](1); _logger2['default'].debug('Error : ' + context$2$0.t0.message); throw new Error('Could not remove app: \'' + context$2$0.t0.message + '\''); case 10: case 'end': return context$2$0.stop(); } }, null, this, [[1, 6]]); } }, { key: 'removeApp', value: function removeApp(bundleId) { return _regeneratorRuntime.async(function removeApp$(context$2$0) { while (1) switch (context$2$0.prev = context$2$0.next) { case 0: context$2$0.next = 2; return _regeneratorRuntime.awrap(this.remove(bundleId)); case 2: case 'end': return context$2$0.stop(); } }, null, this); } }, { key: 'install', value: function install(app) { var install; return _regeneratorRuntime.async(function install$(context$2$0) { while (1) switch (context$2$0.prev = context$2$0.next) { case 0: install = ['--id', this.udid, '--uninstall', '--bundle', app]; context$2$0.prev = 1; context$2$0.next = 4; return _regeneratorRuntime.awrap((0, _teen_process.exec)(this.cmd, install)); case 4: context$2$0.next = 9; break; case 6: context$2$0.prev = 6; context$2$0.t0 = context$2$0['catch'](1); throw new Error('Could not install app: \'' + context$2$0.t0.message + '\''); case 9: case 'end': return context$2$0.stop(); } }, null, this, [[1, 6]]); } }, { key: 'isAppInstalled', value: function isAppInstalled(bundleid) { var isInstalled, _ref, stdout; return _regeneratorRuntime.async(function isAppInstalled$(context$2$0) { while (1) switch (context$2$0.prev = context$2$0.next) { case 0: isInstalled = ['--exists', '--id', this.udid, '--bundle_id', bundleid]; context$2$0.prev = 1; context$2$0.next = 4; return _regeneratorRuntime.awrap((0, _teen_process.exec)(this.cmd, isInstalled)); case 4: _ref = context$2$0.sent; stdout = _ref.stdout; return context$2$0.abrupt('return', stdout && stdout.indexOf("true") > -1); case 9: context$2$0.prev = 9; context$2$0.t0 = context$2$0['catch'](1); // error 255 is just ios-deploy's way of saying it is not installed if (context$2$0.t0.code !== 255) { _logger2['default'].debug('Error checking install status: \'' + context$2$0.t0.message + '\''); } return context$2$0.abrupt('return', false); case 13: case 'end': return context$2$0.stop(); } }, null, this, [[1, 9]]); } }]); return IOSDeploy; })(); exports['default'] = IOSDeploy; module.exports = exports['default']; // make sure we actually have the program //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9pb3MtZGVwbG95LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OzRCQUFxQixjQUFjOzs2QkFDaEIsZ0JBQWdCOztzQkFDaEIsVUFBVTs7OztBQUU3QixJQUFNLGNBQWMsZUFBZSxDQUFDOztJQUU5QixTQUFTO0FBRUQsV0FGUixTQUFTLENBRUEsSUFBSSxFQUFFOzBCQUZmLFNBQVM7O0FBR1gsUUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7QUFDakIsUUFBSSxDQUFDLEdBQUcsR0FBRyxjQUFjLENBQUM7R0FDM0I7O2VBTEcsU0FBUzs7V0FPSzs7Ozs7NkNBRVYsa0JBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7Ozs7Ozs7S0FDekI7OztXQUVZLGdCQUFDLFFBQVE7VUFDaEIsTUFBTTs7OztBQUFOLGtCQUFNLEdBQUcsNkJBQTZCLElBQUksQ0FBQyxJQUFJLGlCQUFpQixRQUFRLENBQUM7Ozs2Q0FFckUsd0JBQUssSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUM7Ozs7Ozs7Ozs7QUFFNUIsZ0NBQU8sS0FBSyxjQUFZLGVBQUksT0FBTyxDQUFHLENBQUM7a0JBQ2pDLElBQUksS0FBSyw4QkFBMkIsZUFBSSxPQUFPLFFBQUk7Ozs7Ozs7S0FFNUQ7OztXQUVlLG1CQUFDLFFBQVE7Ozs7OzZDQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQzs7Ozs7OztLQUM1Qjs7O1dBRWEsaUJBQUMsR0FBRztVQUNaLE9BQU87Ozs7QUFBUCxtQkFBTyxHQUFHLFNBQVMsSUFBSSxDQUFDLElBQUksNkJBQTZCLEdBQUcsQ0FBQzs7OzZDQUV6RCx3QkFBSyxJQUFJLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQzs7Ozs7Ozs7O2tCQUV2QixJQUFJLEtBQUssK0JBQTRCLGVBQUksT0FBTyxRQUFJOzs7Ozs7O0tBRTdEOzs7V0FFb0Isd0JBQUMsUUFBUTtVQUN4QixXQUFXLFFBRVIsTUFBTTs7Ozs7QUFGVCx1QkFBVyxHQUFHLHFCQUFxQixJQUFJLENBQUMsSUFBSSxpQkFBaUIsUUFBUSxDQUFDOzs7NkNBRW5ELHdCQUFLLElBQUksQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDOzs7O0FBQTNDLGtCQUFNLFFBQU4sTUFBTTtnREFDSCxNQUFNLElBQUssTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQUFBQzs7Ozs7OztBQUcvQyxnQkFBSSxlQUFJLElBQUksS0FBSyxHQUFHLEVBQUU7QUFDcEIsa0NBQU8sS0FBSyx1Q0FBb0MsZUFBSSxPQUFPLFFBQUksQ0FBQzthQUNqRTtnREFDTSxLQUFLOzs7Ozs7O0tBRWY7OztTQS9DRyxTQUFTOzs7cUJBa0RBLFNBQVMiLCJmaWxlIjoibGliL2lvcy1kZXBsb3kuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGVjIH0gZnJvbSAndGVlbl9wcm9jZXNzJztcbmltcG9ydCB7IGZzIH0gZnJvbSAnYXBwaXVtLXN1cHBvcnQnO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuL2xvZ2dlcic7XG5cbmNvbnN0IElPU0RFUExPWV9QQVRIID0gYGlvcy1kZXBsb3lgO1xuXG5jbGFzcyBJT1NEZXBsb3kge1xuXG4gIGNvbnN0cnVjdG9yICh1ZGlkKSB7XG4gICAgdGhpcy51ZGlkID0gdWRpZDtcbiAgICB0aGlzLmNtZCA9IElPU0RFUExPWV9QQVRIOyAvLyB0aGlzLmNtZCBpcyBpbiBhY2NvcmRhbmNlIHdpdGggaURldmljZVxuICB9XG5cbiAgYXN5bmMgY2hlY2tTdGF0dXMgKCkge1xuICAgIC8vIG1ha2Ugc3VyZSB3ZSBhY3R1YWxseSBoYXZlIHRoZSBwcm9ncmFtXG4gICAgYXdhaXQgZnMud2hpY2godGhpcy5jbWQpO1xuICB9XG5cbiAgYXN5bmMgcmVtb3ZlIChidW5kbGVpZCkge1xuICAgIGxldCByZW1vdmUgPSBbYC0tdW5pbnN0YWxsX29ubHlgLCBgLS1pZGAsIHRoaXMudWRpZCwgYC0tYnVuZGxlX2lkYCwgYnVuZGxlaWRdO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBleGVjKHRoaXMuY21kLCByZW1vdmUpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgbG9nZ2VyLmRlYnVnKGBFcnJvciA6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCByZW1vdmUgYXBwOiAnJHtlcnIubWVzc2FnZX0nYCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcmVtb3ZlQXBwIChidW5kbGVJZCkge1xuICAgIGF3YWl0IHRoaXMucmVtb3ZlKGJ1bmRsZUlkKTtcbiAgfVxuXG4gIGFzeW5jIGluc3RhbGwgKGFwcCkge1xuICAgIGxldCBpbnN0YWxsID0gW2AtLWlkYCwgdGhpcy51ZGlkLCBgLS11bmluc3RhbGxgLCBgLS1idW5kbGVgLCBhcHBdO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBleGVjKHRoaXMuY21kLCBpbnN0YWxsKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IGluc3RhbGwgYXBwOiAnJHtlcnIubWVzc2FnZX0nYCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgaXNBcHBJbnN0YWxsZWQgKGJ1bmRsZWlkKSB7XG4gICAgbGV0IGlzSW5zdGFsbGVkID0gW2AtLWV4aXN0c2AsIGAtLWlkYCwgdGhpcy51ZGlkLCBgLS1idW5kbGVfaWRgLCBidW5kbGVpZF07XG4gICAgdHJ5IHtcbiAgICAgIGxldCB7c3Rkb3V0fSA9IGF3YWl0IGV4ZWModGhpcy5jbWQsIGlzSW5zdGFsbGVkKTtcbiAgICAgIHJldHVybiAoc3Rkb3V0ICYmIChzdGRvdXQuaW5kZXhPZihcInRydWVcIikgPiAtMSkpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgLy8gZXJyb3IgMjU1IGlzIGp1c3QgaW9zLWRlcGxveSdzIHdheSBvZiBzYXlpbmcgaXQgaXMgbm90IGluc3RhbGxlZFxuICAgICAgaWYgKGVyci5jb2RlICE9PSAyNTUpIHtcbiAgICAgICAgbG9nZ2VyLmRlYnVnKGBFcnJvciBjaGVja2luZyBpbnN0YWxsIHN0YXR1czogJyR7ZXJyLm1lc3NhZ2V9J2ApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBJT1NEZXBsb3k7XG4iXSwic291cmNlUm9vdCI6Ii4uLy4uIn0=