appium-ios-simulator
Version:
iOS Simulator interface for Appium.
148 lines (113 loc) • 9.16 kB
JavaScript
;
var _slicedToArray = require('babel-runtime/helpers/sliced-to-array')['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 _appiumSupport = require('appium-support');
var _logger = require('../logger');
var _logger2 = _interopRequireDefault(_logger);
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var extensions = {};
extensions.prepareSafari = function callee$0$0(tmpDir, platformVersion) {
return _regeneratorRuntime.async(function callee$0$0$(context$1$0) {
while (1) switch (context$1$0.prev = context$1$0.next) {
case 0:
context$1$0.next = 2;
return _regeneratorRuntime.awrap(this.prepareBuiltInApp("MobileSafari", tmpDir, platformVersion));
case 2:
case 'end':
return context$1$0.stop();
}
}, null, this);
};
extensions.prepareBuiltInApp = function callee$0$0(appName, tmpDir, platformVersion) {
var newAppPath, stat, appPath, _ref, _ref2;
return _regeneratorRuntime.async(function callee$0$0$(context$1$0) {
while (1) switch (context$1$0.prev = context$1$0.next) {
case 0:
_logger2['default'].debug('Looking for built in app \'' + appName + '\'');
newAppPath = _path2['default'].resolve(tmpDir, 'Appium-' + appName + '-' + platformVersion + '.app');
stat = undefined, appPath = undefined;
context$1$0.prev = 3;
context$1$0.next = 6;
return _regeneratorRuntime.awrap(this.getBuiltInApp(appName));
case 6:
_ref = context$1$0.sent;
_ref2 = _slicedToArray(_ref, 2);
stat = _ref2[0];
appPath = _ref2[1];
context$1$0.next = 27;
break;
case 12:
context$1$0.prev = 12;
context$1$0.t0 = context$1$0['catch'](3);
context$1$0.prev = 14;
context$1$0.next = 17;
return _regeneratorRuntime.awrap(_appiumSupport.fs.stat(newAppPath));
case 17:
stat = context$1$0.sent;
if (!stat.isDirectory()) {
context$1$0.next = 21;
break;
}
_logger2['default'].debug('Could not find original app, but found the temp ' + 'Appium one so using that: ${}');
return context$1$0.abrupt('return', [newAppPath, appPath]);
case 21:
context$1$0.next = 27;
break;
case 23:
context$1$0.prev = 23;
context$1$0.t1 = context$1$0['catch'](14);
_logger2['default'].warn('App is also not at \'' + newAppPath + '\'');
throw new Error('Could not find built in app \'' + appName + '\' in its home ' + 'or temp dir!');
case 27:
if (stat.isDirectory()) {
context$1$0.next = 29;
break;
}
throw new Error('App found but it is not a directory: \'' + appPath + '\'');
case 29:
_logger2['default'].debug('Found app, trying to move \'' + appPath + '\' to tmp dir \'' + tmpDir + '\'');
context$1$0.next = 32;
return _regeneratorRuntime.awrap(this.moveBuiltInApp(appName, appPath, newAppPath));
case 32:
case 'end':
return context$1$0.stop();
}
}, null, this, [[3, 12], [14, 23]]);
};
extensions.getBuiltInApp = function callee$0$0(appName) {
var appDir, appPath, stat;
return _regeneratorRuntime.async(function callee$0$0$(context$1$0) {
while (1) switch (context$1$0.prev = context$1$0.next) {
case 0:
context$1$0.next = 2;
return _regeneratorRuntime.awrap(this.getAppDir(appName));
case 2:
appDir = context$1$0.sent;
appPath = _path2['default'].resolve(appDir, appName + '.app');
_logger2['default'].debug('Found path for \'' + appName + '\': ' + appPath);
context$1$0.prev = 5;
context$1$0.next = 8;
return _regeneratorRuntime.awrap(_appiumSupport.fs.stat(appPath));
case 8:
stat = context$1$0.sent;
return context$1$0.abrupt('return', [stat, appPath]);
case 12:
context$1$0.prev = 12;
context$1$0.t0 = context$1$0['catch'](5);
if (context$1$0.t0 && context$1$0.t0.message.indexOf('ENOENT') !== -1) {
_logger2['default'].errorAndThrow('App \'' + appName + '\' is not at \'' + appPath + '\'');
}
case 15:
case 'end':
return context$1$0.stop();
}
}, null, this, [[5, 12]]);
};
exports['default'] = extensions;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9leHRlbnNpb25zL3ByZXBhcmUtYXBwcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7NkJBQW1CLGdCQUFnQjs7c0JBQ25CLFdBQVc7Ozs7b0JBQ1YsTUFBTTs7OztBQUd2QixJQUFJLFVBQVUsR0FBRyxFQUFFLENBQUM7O0FBRXBCLFVBQVUsQ0FBQyxhQUFhLEdBQUcsb0JBQWdCLE1BQU0sRUFBRSxlQUFlOzs7Ozt5Q0FDMUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUUsZUFBZSxDQUFDOzs7Ozs7O0NBQ3RFLENBQUM7O0FBRUYsVUFBVSxDQUFDLGlCQUFpQixHQUFHLG9CQUFnQixPQUFPLEVBQUUsTUFBTSxFQUFFLGVBQWU7TUFFekUsVUFBVSxFQUVWLElBQUksRUFBRSxPQUFPOzs7OztBQUhqQiw0QkFBSSxLQUFLLGlDQUE4QixPQUFPLFFBQUksQ0FBQztBQUMvQyxrQkFBVSxHQUFHLGtCQUFLLE9BQU8sQ0FBQyxNQUFNLGNBQVksT0FBTyxTQUFJLGVBQWUsVUFBTztBQUU3RSxZQUFJLGNBQUUsT0FBTzs7O3lDQUVTLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDOzs7OztBQUFsRCxZQUFJO0FBQUUsZUFBTzs7Ozs7Ozs7O3lDQUdDLGtCQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7OztBQUFoQyxZQUFJOzthQUNBLElBQUksQ0FBQyxXQUFXLEVBQUU7Ozs7O0FBQ3BCLDRCQUFJLEtBQUssQ0FBQyxrREFBa0QsR0FDL0MsK0JBQStCLENBQUMsQ0FBQzs0Q0FDdkMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDOzs7Ozs7Ozs7O0FBRzlCLDRCQUFJLElBQUksMkJBQXdCLFVBQVUsUUFBSSxDQUFDO2NBQ3pDLElBQUksS0FBSyxDQUFDLG1DQUFnQyxPQUFPLHFDQUN6QixDQUFDOzs7WUFJOUIsSUFBSSxDQUFDLFdBQVcsRUFBRTs7Ozs7Y0FDZixJQUFJLEtBQUssNkNBQTBDLE9BQU8sUUFBSTs7OztBQUd0RSw0QkFBSSxLQUFLLGtDQUErQixPQUFPLHdCQUFpQixNQUFNLFFBQUksQ0FBQzs7eUNBQ3JFLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUM7Ozs7Ozs7Q0FDeEQsQ0FBQzs7QUFFRixVQUFVLENBQUMsYUFBYSxHQUFHLG9CQUFnQixPQUFPO01BQzVDLE1BQU0sRUFDTixPQUFPLEVBR0wsSUFBSTs7Ozs7eUNBSlMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7OztBQUF0QyxjQUFNO0FBQ04sZUFBTyxHQUFHLGtCQUFLLE9BQU8sQ0FBQyxNQUFNLEVBQUssT0FBTyxVQUFPOztBQUNwRCw0QkFBSSxLQUFLLHVCQUFvQixPQUFPLFlBQU0sT0FBTyxDQUFHLENBQUM7Ozt5Q0FFbEMsa0JBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQzs7O0FBQTdCLFlBQUk7NENBQ0QsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDOzs7Ozs7QUFFdEIsWUFBSSxrQkFBTyxlQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7QUFDL0MsOEJBQUksYUFBYSxZQUFTLE9BQU8sdUJBQWdCLE9BQU8sUUFBSSxDQUFDO1NBQzlEOzs7Ozs7O0NBRUosQ0FBQzs7cUJBR2EsVUFBVSIsImZpbGUiOiJsaWIvZXh0ZW5zaW9ucy9wcmVwYXJlLWFwcHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcyB9IGZyb20gJ2FwcGl1bS1zdXBwb3J0JztcbmltcG9ydCBsb2cgZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuXG5cbmxldCBleHRlbnNpb25zID0ge307XG5cbmV4dGVuc2lvbnMucHJlcGFyZVNhZmFyaSA9IGFzeW5jIGZ1bmN0aW9uICh0bXBEaXIsIHBsYXRmb3JtVmVyc2lvbikge1xuICBhd2FpdCB0aGlzLnByZXBhcmVCdWlsdEluQXBwKFwiTW9iaWxlU2FmYXJpXCIsIHRtcERpciwgcGxhdGZvcm1WZXJzaW9uKTtcbn07XG5cbmV4dGVuc2lvbnMucHJlcGFyZUJ1aWx0SW5BcHAgPSBhc3luYyBmdW5jdGlvbiAoYXBwTmFtZSwgdG1wRGlyLCBwbGF0Zm9ybVZlcnNpb24pIHtcbiAgbG9nLmRlYnVnKGBMb29raW5nIGZvciBidWlsdCBpbiBhcHAgJyR7YXBwTmFtZX0nYCk7XG4gIGxldCBuZXdBcHBQYXRoID0gcGF0aC5yZXNvbHZlKHRtcERpciwgYEFwcGl1bS0ke2FwcE5hbWV9LSR7cGxhdGZvcm1WZXJzaW9ufS5hcHBgKTtcblxuICBsZXQgc3RhdCwgYXBwUGF0aDtcbiAgdHJ5IHtcbiAgICBbc3RhdCwgYXBwUGF0aF0gPSBhd2FpdCB0aGlzLmdldEJ1aWx0SW5BcHAoYXBwTmFtZSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRyeSB7XG4gICAgICBzdGF0ID0gYXdhaXQgZnMuc3RhdChuZXdBcHBQYXRoKTtcbiAgICAgIGlmIChzdGF0LmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgICAgbG9nLmRlYnVnKCdDb3VsZCBub3QgZmluZCBvcmlnaW5hbCBhcHAsIGJ1dCBmb3VuZCB0aGUgdGVtcCAnICtcbiAgICAgICAgICAgICAgICAgICAgICdBcHBpdW0gb25lIHNvIHVzaW5nIHRoYXQ6ICR7fScpO1xuICAgICAgICByZXR1cm4gW25ld0FwcFBhdGgsIGFwcFBhdGhdO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgbG9nLndhcm4oYEFwcCBpcyBhbHNvIG5vdCBhdCAnJHtuZXdBcHBQYXRofSdgKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IGZpbmQgYnVpbHQgaW4gYXBwICcke2FwcE5hbWV9JyBpbiBpdHMgaG9tZSBgICtcbiAgICAgICAgICAgICAgICAgICAgICBgb3IgdGVtcCBkaXIhYCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFzdGF0LmlzRGlyZWN0b3J5KCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEFwcCBmb3VuZCBidXQgaXQgaXMgbm90IGEgZGlyZWN0b3J5OiAnJHthcHBQYXRofSdgKTtcbiAgfVxuXG4gIGxvZy5kZWJ1ZyhgRm91bmQgYXBwLCB0cnlpbmcgdG8gbW92ZSAnJHthcHBQYXRofScgdG8gdG1wIGRpciAnJHt0bXBEaXJ9J2ApO1xuICBhd2FpdCB0aGlzLm1vdmVCdWlsdEluQXBwKGFwcE5hbWUsIGFwcFBhdGgsIG5ld0FwcFBhdGgpO1xufTtcblxuZXh0ZW5zaW9ucy5nZXRCdWlsdEluQXBwID0gYXN5bmMgZnVuY3Rpb24gKGFwcE5hbWUpIHtcbiAgbGV0IGFwcERpciA9IGF3YWl0IHRoaXMuZ2V0QXBwRGlyKGFwcE5hbWUpO1xuICBsZXQgYXBwUGF0aCA9IHBhdGgucmVzb2x2ZShhcHBEaXIsIGAke2FwcE5hbWV9LmFwcGApO1xuICBsb2cuZGVidWcoYEZvdW5kIHBhdGggZm9yICcke2FwcE5hbWV9JzogJHthcHBQYXRofWApO1xuICB0cnkge1xuICAgIGxldCBzdGF0ID0gYXdhaXQgZnMuc3RhdChhcHBQYXRoKTtcbiAgICByZXR1cm4gW3N0YXQsIGFwcFBhdGhdO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBpZiAoZXJyICYmIGVyci5tZXNzYWdlLmluZGV4T2YoJ0VOT0VOVCcpICE9PSAtMSkge1xuICAgICAgbG9nLmVycm9yQW5kVGhyb3coYEFwcCAnJHthcHBOYW1lfScgaXMgbm90IGF0ICcke2FwcFBhdGh9J2ApO1xuICAgIH1cbiAgfVxufTtcblxuXG5leHBvcnQgZGVmYXVsdCBleHRlbnNpb25zO1xuIl19