appium-webdriveragent-driver
Version:
Appium driver for WebDriverAgent
138 lines (109 loc) • 7.15 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 _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _appiumIosSimulator = require('appium-ios-simulator');
var _nodeSimctl = require('node-simctl');
var _asyncbox = require('asyncbox');
var _appiumSupport = require('appium-support');
var DEFAULT_SAFARI_URL = 'http://appium.io';
// returns true if sim is booted. false if not booted or doesnt exist
function simBooted(udid) {
var sim, stat;
return _regeneratorRuntime.async(function simBooted$(context$1$0) {
while (1) switch (context$1$0.prev = context$1$0.next) {
case 0:
context$1$0.next = 2;
return _regeneratorRuntime.awrap((0, _appiumIosSimulator.getSimulator)(udid));
case 2:
sim = context$1$0.sent;
context$1$0.next = 5;
return _regeneratorRuntime.awrap(sim.stat());
case 5:
stat = context$1$0.sent;
return context$1$0.abrupt('return', stat.state === 'Booted');
case 7:
case 'end':
return context$1$0.stop();
}
}, null, this);
}
// returns sim for desired caps
function createSim(caps, sessionId) {
var name, udid;
return _regeneratorRuntime.async(function createSim$(context$1$0) {
while (1) switch (context$1$0.prev = context$1$0.next) {
case 0:
name = 'appiumTest-' + sessionId;
context$1$0.next = 3;
return _regeneratorRuntime.awrap((0, _nodeSimctl.createDevice)(name, caps.deviceName, caps.platformVersion));
case 3:
udid = context$1$0.sent;
context$1$0.next = 6;
return _regeneratorRuntime.awrap((0, _appiumIosSimulator.getSimulator)(udid));
case 6:
return context$1$0.abrupt('return', context$1$0.sent);
case 7:
case 'end':
return context$1$0.stop();
}
}, null, this);
}
function systemLogExists(sim) {
var TRIES, INTERVAL;
return _regeneratorRuntime.async(function systemLogExists$(context$1$0) {
var _this = this;
while (1) switch (context$1$0.prev = context$1$0.next) {
case 0:
TRIES = 500;
INTERVAL = 200;
return context$1$0.abrupt('return', (0, _asyncbox.retryInterval)(TRIES, INTERVAL, function callee$1$0() {
return _regeneratorRuntime.async(function callee$1$0$(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.exists(_path2['default'].resolve(sim.getLogDir(), 'system.log')));
case 2:
if (context$2$0.sent) {
context$2$0.next = 4;
break;
}
throw new Error('system.log does not exist');
case 4:
case 'end':
return context$2$0.stop();
}
}, null, _this);
}));
case 3:
case 'end':
return context$1$0.stop();
}
}, null, this);
}
function launchSafariOnSim(initialUrl, sim) {
return _regeneratorRuntime.async(function launchSafariOnSim$(context$1$0) {
while (1) switch (context$1$0.prev = context$1$0.next) {
case 0:
if (!initialUrl) {
initialUrl = DEFAULT_SAFARI_URL;
}
context$1$0.next = 3;
return _regeneratorRuntime.awrap(sim.openUrl(initialUrl));
case 3:
return context$1$0.abrupt('return', context$1$0.sent);
case 4:
case 'end':
return context$1$0.stop();
}
}, null, this);
}
exports.simBooted = simBooted;
exports.createSim = createSim;
exports.systemLogExists = systemLogExists;
exports.launchSafariOnSim = launchSafariOnSim;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zaW11bGF0b3JNYW5hZ2VtZW50LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7b0JBQWlCLE1BQU07Ozs7a0NBQ00sc0JBQXNCOzswQkFDdEIsYUFBYTs7d0JBQ1osVUFBVTs7NkJBQ3JCLGdCQUFnQjs7QUFFbkMsSUFBTSxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQzs7O0FBRzlDLFNBQWUsU0FBUyxDQUFFLElBQUk7TUFDeEIsR0FBRyxFQUNILElBQUk7Ozs7O3lDQURRLHNDQUFhLElBQUksQ0FBQzs7O0FBQTlCLFdBQUc7O3lDQUNVLEdBQUcsQ0FBQyxJQUFJLEVBQUU7OztBQUF2QixZQUFJOzRDQUNELElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUTs7Ozs7OztDQUMvQjs7O0FBR0QsU0FBZSxTQUFTLENBQUUsSUFBSSxFQUFFLFNBQVM7TUFDbkMsSUFBSSxFQUNKLElBQUk7Ozs7QUFESixZQUFJLG1CQUFpQixTQUFTOzt5Q0FDakIsOEJBQWEsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQzs7O0FBQXRFLFlBQUk7O3lDQUNLLHNDQUFhLElBQUksQ0FBQzs7Ozs7Ozs7OztDQUNoQzs7QUFFRCxTQUFlLGVBQWUsQ0FBRSxHQUFHO01BQzNCLEtBQUssRUFDTCxRQUFROzs7Ozs7QUFEUixhQUFLLEdBQUcsR0FBRztBQUNYLGdCQUFRLEdBQUcsR0FBRzs0Q0FDYiw2QkFBYyxLQUFLLEVBQUUsUUFBUSxFQUFFOzs7OztpREFDekIsa0JBQUcsTUFBTSxDQUFDLGtCQUFLLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUM7Ozs7Ozs7O3NCQUN6RCxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQzs7Ozs7OztTQUUvQyxDQUFDOzs7Ozs7O0NBQ0g7O0FBRUQsU0FBZSxpQkFBaUIsQ0FBRSxVQUFVLEVBQUUsR0FBRzs7OztBQUMvQyxZQUFJLENBQUMsVUFBVSxFQUFFO0FBQ2Ysb0JBQVUsR0FBRyxrQkFBa0IsQ0FBQztTQUNqQzs7O3lDQUVZLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDOzs7Ozs7Ozs7O0NBQ3JDOztRQUVRLFNBQVMsR0FBVCxTQUFTO1FBQUUsU0FBUyxHQUFULFNBQVM7UUFBRSxlQUFlLEdBQWYsZUFBZTtRQUFFLGlCQUFpQixHQUFqQixpQkFBaUIiLCJmaWxlIjoibGliL3NpbXVsYXRvck1hbmFnZW1lbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGdldFNpbXVsYXRvciB9IGZyb20gJ2FwcGl1bS1pb3Mtc2ltdWxhdG9yJztcbmltcG9ydCB7IGNyZWF0ZURldmljZSB9IGZyb20gJ25vZGUtc2ltY3RsJztcbmltcG9ydCB7IHJldHJ5SW50ZXJ2YWwgfSBmcm9tICdhc3luY2JveCc7XG5pbXBvcnQgeyBmcyB9IGZyb20gJ2FwcGl1bS1zdXBwb3J0JztcblxuY29uc3QgREVGQVVMVF9TQUZBUklfVVJMID0gJ2h0dHA6Ly9hcHBpdW0uaW8nO1xuXG4vLyByZXR1cm5zIHRydWUgaWYgc2ltIGlzIGJvb3RlZC4gZmFsc2UgaWYgbm90IGJvb3RlZCBvciBkb2VzbnQgZXhpc3RcbmFzeW5jIGZ1bmN0aW9uIHNpbUJvb3RlZCAodWRpZCkge1xuICBsZXQgc2ltID0gYXdhaXQgZ2V0U2ltdWxhdG9yKHVkaWQpO1xuICBsZXQgc3RhdCA9IGF3YWl0IHNpbS5zdGF0KCk7XG4gIHJldHVybiBzdGF0LnN0YXRlID09PSAnQm9vdGVkJztcbn1cblxuLy8gcmV0dXJucyBzaW0gZm9yIGRlc2lyZWQgY2Fwc1xuYXN5bmMgZnVuY3Rpb24gY3JlYXRlU2ltIChjYXBzLCBzZXNzaW9uSWQpIHtcbiAgbGV0IG5hbWUgPSBgYXBwaXVtVGVzdC0ke3Nlc3Npb25JZH1gO1xuICBsZXQgdWRpZCA9IGF3YWl0IGNyZWF0ZURldmljZShuYW1lLCBjYXBzLmRldmljZU5hbWUsIGNhcHMucGxhdGZvcm1WZXJzaW9uKTtcbiAgcmV0dXJuIGF3YWl0IGdldFNpbXVsYXRvcih1ZGlkKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gc3lzdGVtTG9nRXhpc3RzIChzaW0pIHtcbiAgY29uc3QgVFJJRVMgPSA1MDA7XG4gIGNvbnN0IElOVEVSVkFMID0gMjAwO1xuICByZXR1cm4gcmV0cnlJbnRlcnZhbChUUklFUywgSU5URVJWQUwsIGFzeW5jICgpID0+IHtcbiAgICBpZiAoIWF3YWl0IGZzLmV4aXN0cyhwYXRoLnJlc29sdmUoc2ltLmdldExvZ0RpcigpLCAnc3lzdGVtLmxvZycpKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdzeXN0ZW0ubG9nIGRvZXMgbm90IGV4aXN0Jyk7XG4gICAgfVxuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gbGF1bmNoU2FmYXJpT25TaW0gKGluaXRpYWxVcmwsIHNpbSkge1xuICBpZiAoIWluaXRpYWxVcmwpIHtcbiAgICBpbml0aWFsVXJsID0gREVGQVVMVF9TQUZBUklfVVJMO1xuICB9XG5cbiAgcmV0dXJuIGF3YWl0IHNpbS5vcGVuVXJsKGluaXRpYWxVcmwpO1xufVxuXG5leHBvcnQgeyBzaW1Cb290ZWQsIGNyZWF0ZVNpbSwgc3lzdGVtTG9nRXhpc3RzLCBsYXVuY2hTYWZhcmlPblNpbSB9O1xuIl19