appium-ios-simulator
Version:
iOS Simulator interface for Appium.
125 lines (92 loc) • 8.05 kB
JavaScript
;
var _regeneratorRuntime = require('babel-runtime/regenerator')['default'];
var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
Object.defineProperty(exports, '__esModule', {
value: true
});
var _simulatorXcode6 = require('./simulator-xcode-6');
var _simulatorXcode62 = _interopRequireDefault(_simulatorXcode6);
var _simulatorXcode7 = require('./simulator-xcode-7');
var _simulatorXcode72 = _interopRequireDefault(_simulatorXcode7);
var _utils = require('./utils');
var _appiumXcode = require('appium-xcode');
var _appiumXcode2 = _interopRequireDefault(_appiumXcode);
var _logger = require('./logger');
var _logger2 = _interopRequireDefault(_logger);
function handleUnsupportedXcode(xcodeVersion) {
if (xcodeVersion.major < 6) {
throw new Error('Tried to use an iOS simulator with xcode ' + ('version ' + xcodeVersion.versionString + ' but only Xcode version ') + '6.0.0 and up are supported');
} else if (xcodeVersion.major >= 8) {
throw new Error('Xcode version ' + xcodeVersion + ' is ' + 'not yet supported');
}
}
function getSimulator(udid) {
var xcodeVersion;
return _regeneratorRuntime.async(function getSimulator$(context$1$0) {
while (1) switch (context$1$0.prev = context$1$0.next) {
case 0:
context$1$0.next = 2;
return _regeneratorRuntime.awrap(_appiumXcode2['default'].getVersion(true));
case 2:
xcodeVersion = context$1$0.sent;
context$1$0.next = 5;
return _regeneratorRuntime.awrap((0, _utils.simExists)(udid));
case 5:
if (context$1$0.sent) {
context$1$0.next = 7;
break;
}
throw new Error('No sim found with udid ' + udid);
case 7:
handleUnsupportedXcode(xcodeVersion);
if (!(xcodeVersion.major === 7)) {
context$1$0.next = 13;
break;
}
_logger2['default'].info('Constructing iOS simulator for Xcode version ' + xcodeVersion.versionString);
return context$1$0.abrupt('return', new _simulatorXcode72['default'](udid, xcodeVersion));
case 13:
if (!(xcodeVersion.major === 6)) {
context$1$0.next = 16;
break;
}
_logger2['default'].info('Constructing iOS simulator for Xcode version ' + xcodeVersion.versionString);
return context$1$0.abrupt('return', new _simulatorXcode62['default'](udid, xcodeVersion));
case 16:
case 'end':
return context$1$0.stop();
}
}, null, this);
}
function getDeviceString(opts) {
var xcodeVersion;
return _regeneratorRuntime.async(function getDeviceString$(context$1$0) {
while (1) switch (context$1$0.prev = context$1$0.next) {
case 0:
context$1$0.next = 2;
return _regeneratorRuntime.awrap(_appiumXcode2['default'].getVersion(true));
case 2:
xcodeVersion = context$1$0.sent;
handleUnsupportedXcode(xcodeVersion);
if (!(xcodeVersion.major === 7)) {
context$1$0.next = 9;
break;
}
_logger2['default'].info('Retrieving device name string for Xcode version ' + xcodeVersion.versionString);
return context$1$0.abrupt('return', _simulatorXcode72['default'].getDeviceString(opts));
case 9:
if (!(xcodeVersion.major === 6)) {
context$1$0.next = 12;
break;
}
_logger2['default'].info('Retrieving device name string for Xcode version ' + xcodeVersion.versionString);
return context$1$0.abrupt('return', _simulatorXcode62['default'].getDeviceString(opts));
case 12:
case 'end':
return context$1$0.stop();
}
}, null, this);
}
exports.getSimulator = getSimulator;
exports.getDeviceString = getDeviceString;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zaW11bGF0b3IuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OzsrQkFBNEIscUJBQXFCOzs7OytCQUNyQixxQkFBcUI7Ozs7cUJBQ3ZCLFNBQVM7OzJCQUNqQixjQUFjOzs7O3NCQUNoQixVQUFVOzs7O0FBRzFCLFNBQVMsc0JBQXNCLENBQUUsWUFBWSxFQUFFO0FBQzdDLE1BQUksWUFBWSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUU7QUFDMUIsVUFBTSxJQUFJLEtBQUssQ0FBQyw0REFDVyxZQUFZLENBQUMsYUFBYSw4QkFBMEIsK0JBQ25DLENBQUMsQ0FBQztHQUMvQyxNQUFNLElBQUksWUFBWSxDQUFDLEtBQUssSUFBSSxDQUFDLEVBQUU7QUFDbEMsVUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBaUIsWUFBWSwrQkFDVixDQUFDLENBQUM7R0FDdEM7Q0FDRjs7QUFFRCxTQUFlLFlBQVksQ0FBRSxJQUFJO01BQzNCLFlBQVk7Ozs7O3lDQUFTLHlCQUFNLFVBQVUsQ0FBQyxJQUFJLENBQUM7OztBQUEzQyxvQkFBWTs7eUNBRUwsc0JBQVUsSUFBSSxDQUFDOzs7Ozs7OztjQUNsQixJQUFJLEtBQUssNkJBQTJCLElBQUksQ0FBRzs7OztBQUduRCw4QkFBc0IsQ0FBQyxZQUFZLENBQUMsQ0FBQzs7Y0FFakMsWUFBWSxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUE7Ozs7O0FBQzFCLDRCQUFJLElBQUksbURBQWlELFlBQVksQ0FBQyxhQUFhLENBQUcsQ0FBQzs0Q0FDaEYsaUNBQW9CLElBQUksRUFBRSxZQUFZLENBQUM7OztjQUNyQyxZQUFZLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQTs7Ozs7QUFDakMsNEJBQUksSUFBSSxtREFBaUQsWUFBWSxDQUFDLGFBQWEsQ0FBRyxDQUFDOzRDQUNoRixpQ0FBb0IsSUFBSSxFQUFFLFlBQVksQ0FBQzs7Ozs7OztDQUVqRDs7QUFFRCxTQUFlLGVBQWUsQ0FBRSxJQUFJO01BQzlCLFlBQVk7Ozs7O3lDQUFTLHlCQUFNLFVBQVUsQ0FBQyxJQUFJLENBQUM7OztBQUEzQyxvQkFBWTs7QUFFaEIsOEJBQXNCLENBQUMsWUFBWSxDQUFDLENBQUM7O2NBRWpDLFlBQVksQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFBOzs7OztBQUMxQiw0QkFBSSxJQUFJLHNEQUFvRCxZQUFZLENBQUMsYUFBYSxDQUFHLENBQUM7NENBQ25GLDZCQUFnQixlQUFlLENBQUMsSUFBSSxDQUFDOzs7Y0FDbkMsWUFBWSxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUE7Ozs7O0FBQ2pDLDRCQUFJLElBQUksc0RBQW9ELFlBQVksQ0FBQyxhQUFhLENBQUcsQ0FBQzs0Q0FDbkYsNkJBQWdCLGVBQWUsQ0FBQyxJQUFJLENBQUM7Ozs7Ozs7Q0FFL0M7O1FBRVEsWUFBWSxHQUFaLFlBQVk7UUFBRSxlQUFlLEdBQWYsZUFBZSIsImZpbGUiOiJsaWIvc2ltdWxhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFNpbXVsYXRvclhjb2RlNiBmcm9tICcuL3NpbXVsYXRvci14Y29kZS02JztcbmltcG9ydCBTaW11bGF0b3JYY29kZTcgZnJvbSAnLi9zaW11bGF0b3IteGNvZGUtNyc7XG5pbXBvcnQgeyBzaW1FeGlzdHMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB4Y29kZSBmcm9tICdhcHBpdW0teGNvZGUnO1xuaW1wb3J0IGxvZyBmcm9tICcuL2xvZ2dlcic7XG5cblxuZnVuY3Rpb24gaGFuZGxlVW5zdXBwb3J0ZWRYY29kZSAoeGNvZGVWZXJzaW9uKSB7XG4gIGlmICh4Y29kZVZlcnNpb24ubWFqb3IgPCA2KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBUcmllZCB0byB1c2UgYW4gaU9TIHNpbXVsYXRvciB3aXRoIHhjb2RlIGAgK1xuICAgICAgICAgICAgICAgICAgICBgdmVyc2lvbiAke3hjb2RlVmVyc2lvbi52ZXJzaW9uU3RyaW5nfSBidXQgb25seSBYY29kZSB2ZXJzaW9uIGAgK1xuICAgICAgICAgICAgICAgICAgICBgNi4wLjAgYW5kIHVwIGFyZSBzdXBwb3J0ZWRgKTtcbiAgfSBlbHNlIGlmICh4Y29kZVZlcnNpb24ubWFqb3IgPj0gOCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgWGNvZGUgdmVyc2lvbiAke3hjb2RlVmVyc2lvbn0gaXMgYCArXG4gICAgICAgICAgICAgICAgICAgIGBub3QgeWV0IHN1cHBvcnRlZGApO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldFNpbXVsYXRvciAodWRpZCkge1xuICBsZXQgeGNvZGVWZXJzaW9uID0gYXdhaXQgeGNvZGUuZ2V0VmVyc2lvbih0cnVlKTtcblxuICBpZiAoIWF3YWl0IHNpbUV4aXN0cyh1ZGlkKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTm8gc2ltIGZvdW5kIHdpdGggdWRpZCAke3VkaWR9YCk7XG4gIH1cblxuICBoYW5kbGVVbnN1cHBvcnRlZFhjb2RlKHhjb2RlVmVyc2lvbik7XG5cbiAgaWYgKHhjb2RlVmVyc2lvbi5tYWpvciA9PT0gNykge1xuICAgIGxvZy5pbmZvKGBDb25zdHJ1Y3RpbmcgaU9TIHNpbXVsYXRvciBmb3IgWGNvZGUgdmVyc2lvbiAke3hjb2RlVmVyc2lvbi52ZXJzaW9uU3RyaW5nfWApO1xuICAgIHJldHVybiBuZXcgU2ltdWxhdG9yWGNvZGU3KHVkaWQsIHhjb2RlVmVyc2lvbik7XG4gIH0gZWxzZSBpZiAoeGNvZGVWZXJzaW9uLm1ham9yID09PSA2KSB7XG4gICAgbG9nLmluZm8oYENvbnN0cnVjdGluZyBpT1Mgc2ltdWxhdG9yIGZvciBYY29kZSB2ZXJzaW9uICR7eGNvZGVWZXJzaW9uLnZlcnNpb25TdHJpbmd9YCk7XG4gICAgcmV0dXJuIG5ldyBTaW11bGF0b3JYY29kZTYodWRpZCwgeGNvZGVWZXJzaW9uKTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBnZXREZXZpY2VTdHJpbmcgKG9wdHMpIHtcbiAgbGV0IHhjb2RlVmVyc2lvbiA9IGF3YWl0IHhjb2RlLmdldFZlcnNpb24odHJ1ZSk7XG5cbiAgaGFuZGxlVW5zdXBwb3J0ZWRYY29kZSh4Y29kZVZlcnNpb24pO1xuXG4gIGlmICh4Y29kZVZlcnNpb24ubWFqb3IgPT09IDcpIHtcbiAgICBsb2cuaW5mbyhgUmV0cmlldmluZyBkZXZpY2UgbmFtZSBzdHJpbmcgZm9yIFhjb2RlIHZlcnNpb24gJHt4Y29kZVZlcnNpb24udmVyc2lvblN0cmluZ31gKTtcbiAgICByZXR1cm4gU2ltdWxhdG9yWGNvZGU3LmdldERldmljZVN0cmluZyhvcHRzKTtcbiAgfSBlbHNlIGlmICh4Y29kZVZlcnNpb24ubWFqb3IgPT09IDYpIHtcbiAgICBsb2cuaW5mbyhgUmV0cmlldmluZyBkZXZpY2UgbmFtZSBzdHJpbmcgZm9yIFhjb2RlIHZlcnNpb24gJHt4Y29kZVZlcnNpb24udmVyc2lvblN0cmluZ31gKTtcbiAgICByZXR1cm4gU2ltdWxhdG9yWGNvZGU2LmdldERldmljZVN0cmluZyhvcHRzKTtcbiAgfVxufVxuXG5leHBvcnQgeyBnZXRTaW11bGF0b3IsIGdldERldmljZVN0cmluZyB9O1xuIl19