appium-adb-test
Version:
Android Debug Bridge interface
175 lines (139 loc) • 10.9 kB
JavaScript
var _createClass = require('babel-runtime/helpers/create-class')['default'];
var _classCallCheck = require('babel-runtime/helpers/class-call-check')['default'];
var _slicedToArray = require('babel-runtime/helpers/sliced-to-array')['default'];
var _Object$assign = require('babel-runtime/core-js/object/assign')['default'];
var _getIterator = require('babel-runtime/core-js/get-iterator')['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 _lodash = require('lodash');
var _lodash2 = _interopRequireDefault(_lodash);
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _toolsIndexJs = require('./tools/index.js');
var _toolsIndexJs2 = _interopRequireDefault(_toolsIndexJs);
var _helpers = require('./helpers');
var DEFAULT_ADB_PORT = 5037;
var JAR_PATH = _path2['default'].resolve(_helpers.rootDir, 'jars');
var DEFAULT_OPTS = {
sdkRoot: null,
udid: null,
appDeviceReadyTimeout: null,
useKeystore: null,
keystorePath: null,
keystorePassword: null,
keyAlias: null,
keyPassword: null,
executable: { path: "adb", defaultArgs: [] },
tmpDir: null,
curDeviceId: null,
emulatorPort: null,
logcat: null,
binaries: {},
instrumentProc: null,
javaVersion: null,
suppressKillServer: null,
jars: {},
helperJarPath: JAR_PATH,
adbPort: DEFAULT_ADB_PORT
};
var ADB = (function () {
function ADB() {
var opts = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
_classCallCheck(this, ADB);
if (typeof opts.sdkRoot === "undefined") {
opts.sdkRoot = process.env.ANDROID_HOME || '';
}
_Object$assign(this, opts);
_lodash2['default'].defaultsDeep(this, _lodash2['default'].cloneDeep(DEFAULT_OPTS));
if (opts.remoteAdbHost) {
this.executable.defaultArgs.push("-H", opts.remoteAdbHost);
}
// TODO figure out why we have this option as it does not appear to be
// used anywhere. Probably deprecate in favor of simple opts.adbPort
if (opts.remoteAdbPort) {
this.adbPort = opts.remoteAdbPort;
}
this.executable.defaultArgs.push("-P", this.adbPort);
this.initJars();
}
_createClass(ADB, [{
key: 'initJars',
value: function initJars() {
var tempJars = ['move_manifest.jar', 'sign.jar', 'appium_apk_tools.jar', 'unsign.jar', 'verify.jar'];
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = _getIterator(tempJars), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var jarName = _step.value;
this.jars[jarName] = _path2['default'].resolve(JAR_PATH, jarName);
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator['return']) {
_iterator['return']();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
if (!this.javaVersion || parseFloat(this.javaVersion) < 1.7) {
this.jars['appium_apk_tools.jar'] = _path2['default'].resolve(JAR_PATH, 'appium_apk_tools_1.6.jar');
}
}
}]);
return ADB;
})();
ADB.createADB = function callee$0$0(opts) {
var adb;
return _regeneratorRuntime.async(function callee$0$0$(context$1$0) {
while (1) switch (context$1$0.prev = context$1$0.next) {
case 0:
adb = new ADB(opts);
context$1$0.next = 3;
return _regeneratorRuntime.awrap(adb.getAdbWithCorrectAdbPath());
case 3:
return context$1$0.abrupt('return', adb);
case 4:
case 'end':
return context$1$0.stop();
}
}, null, this);
};
// add all the methods to the ADB prototype
var _iteratorNormalCompletion2 = true;
var _didIteratorError2 = false;
var _iteratorError2 = undefined;
try {
for (var _iterator2 = _getIterator(_lodash2['default'].pairs(_toolsIndexJs2['default'])), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
var _step2$value = _slicedToArray(_step2.value, 2);
var fnName = _step2$value[0];
var fn = _step2$value[1];
ADB.prototype[fnName] = fn;
}
} catch (err) {
_didIteratorError2 = true;
_iteratorError2 = err;
} finally {
try {
if (!_iteratorNormalCompletion2 && _iterator2['return']) {
_iterator2['return']();
}
} finally {
if (_didIteratorError2) {
throw _iteratorError2;
}
}
}
exports['default'] = ADB;
exports.DEFAULT_ADB_PORT = DEFAULT_ADB_PORT;
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QUFnQixJQUFJO01BQzlCLEdBQUc7Ozs7QUFBSCxXQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDOzt5Q0FDakIsR0FBRyxDQUFDLHdCQUF3QixFQUFFOzs7NENBQzdCLEdBQUc7Ozs7Ozs7Q0FDWCxDQUFDOzs7Ozs7OztBQUdGLHFDQUF5QixvQkFBRSxLQUFLLDJCQUFTLGlIQUFFOzs7UUFBakMsTUFBTTtRQUFFLEVBQUU7O0FBQ2xCLE9BQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0dBQzVCOzs7Ozs7Ozs7Ozs7Ozs7O3FCQUVjLEdBQUc7UUFDVCxnQkFBZ0IsR0FBaEIsZ0JBQWdCIiwiZmlsZSI6ImxpYi9hZGIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcclxuaW1wb3J0IG1ldGhvZHMgZnJvbSAnLi90b29scy9pbmRleC5qcyc7XHJcbmltcG9ydCB7IHJvb3REaXJ9IGZyb20gJy4vaGVscGVycyc7XHJcblxyXG5jb25zdCBERUZBVUxUX0FEQl9QT1JUID0gNTAzNztcclxuY29uc3QgSkFSX1BBVEggPSBwYXRoLnJlc29sdmUocm9vdERpciwgJ2phcnMnKTtcclxuY29uc3QgREVGQVVMVF9PUFRTID0ge1xyXG4gIHNka1Jvb3Q6IG51bGwsXHJcbiAgdWRpZDogbnVsbCxcclxuICBhcHBEZXZpY2VSZWFkeVRpbWVvdXQ6IG51bGwsXHJcbiAgdXNlS2V5c3RvcmU6IG51bGwsXHJcbiAga2V5c3RvcmVQYXRoOiBudWxsLFxyXG4gIGtleXN0b3JlUGFzc3dvcmQ6IG51bGwsXHJcbiAga2V5QWxpYXM6IG51bGwsXHJcbiAga2V5UGFzc3dvcmQ6IG51bGwsXHJcbiAgZXhlY3V0YWJsZToge3BhdGg6IFwiYWRiXCIsIGRlZmF1bHRBcmdzOiBbXX0sXHJcbiAgdG1wRGlyOiBudWxsLFxyXG4gIGN1ckRldmljZUlkOiBudWxsLFxyXG4gIGVtdWxhdG9yUG9ydCA6IG51bGwsXHJcbiAgbG9nY2F0OiBudWxsLFxyXG4gIGJpbmFyaWVzOiB7fSxcclxuICBpbnN0cnVtZW50UHJvYzogbnVsbCxcclxuICBqYXZhVmVyc2lvbjogbnVsbCxcclxuICBzdXBwcmVzc0tpbGxTZXJ2ZXI6IG51bGwsXHJcbiAgamFyczoge30sXHJcbiAgaGVscGVySmFyUGF0aDogSkFSX1BBVEgsXHJcbiAgYWRiUG9ydDogREVGQVVMVF9BREJfUE9SVFxyXG59O1xyXG5cclxuY2xhc3MgQURCIHtcclxuICBjb25zdHJ1Y3RvciAob3B0cyA9IHt9KSB7XHJcbiAgICBpZiAodHlwZW9mIG9wdHMuc2RrUm9vdCA9PT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICBvcHRzLnNka1Jvb3QgPSBwcm9jZXNzLmVudi5BTkRST0lEX0hPTUUgfHwgJyc7XHJcbiAgICB9XHJcblxyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLCBvcHRzKTtcclxuICAgIF8uZGVmYXVsdHNEZWVwKHRoaXMsIF8uY2xvbmVEZWVwKERFRkFVTFRfT1BUUykpO1xyXG5cclxuICAgIGlmIChvcHRzLnJlbW90ZUFkYkhvc3QpIHtcclxuICAgICAgdGhpcy5leGVjdXRhYmxlLmRlZmF1bHRBcmdzLnB1c2goXCItSFwiLCBvcHRzLnJlbW90ZUFkYkhvc3QpO1xyXG4gICAgfVxyXG4gICAgLy8gVE9ETyBmaWd1cmUgb3V0IHdoeSB3ZSBoYXZlIHRoaXMgb3B0aW9uIGFzIGl0IGRvZXMgbm90IGFwcGVhciB0byBiZVxyXG4gICAgLy8gdXNlZCBhbnl3aGVyZS4gUHJvYmFibHkgZGVwcmVjYXRlIGluIGZhdm9yIG9mIHNpbXBsZSBvcHRzLmFkYlBvcnRcclxuICAgIGlmIChvcHRzLnJlbW90ZUFkYlBvcnQpIHtcclxuICAgICAgdGhpcy5hZGJQb3J0ID0gb3B0cy5yZW1vdGVBZGJQb3J0O1xyXG4gICAgfVxyXG4gICAgdGhpcy5leGVjdXRhYmxlLmRlZmF1bHRBcmdzLnB1c2goXCItUFwiLCB0aGlzLmFkYlBvcnQpO1xyXG5cclxuICAgIHRoaXMuaW5pdEphcnMoKTtcclxuICB9XHJcblxyXG4gIGluaXRKYXJzICgpIHtcclxuICAgIGxldCB0ZW1wSmFycyA9IFsnbW92ZV9tYW5pZmVzdC5qYXInLCAnc2lnbi5qYXInLCAnYXBwaXVtX2Fwa190b29scy5qYXInLFxyXG4gICAgICAgICAgICAgICAgICAgICd1bnNpZ24uamFyJywgJ3ZlcmlmeS5qYXInXTtcclxuICAgIGZvciAobGV0IGphck5hbWUgb2YgdGVtcEphcnMpIHtcclxuICAgICAgdGhpcy5qYXJzW2phck5hbWVdID0gcGF0aC5yZXNvbHZlKEpBUl9QQVRILCBqYXJOYW1lKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5qYXZhVmVyc2lvbiB8fCBwYXJzZUZsb2F0KHRoaXMuamF2YVZlcnNpb24pIDwgMS43KSB7XHJcbiAgICAgIHRoaXMuamFyc1snYXBwaXVtX2Fwa190b29scy5qYXInXSA9IHBhdGgucmVzb2x2ZShKQVJfUEFUSCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcHBpdW1fYXBrX3Rvb2xzXzEuNi5qYXInKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkFEQi5jcmVhdGVBREIgPSBhc3luYyBmdW5jdGlvbiAob3B0cykge1xyXG4gIGxldCBhZGIgPSBuZXcgQURCKG9wdHMpO1xyXG4gIGF3YWl0IGFkYi5nZXRBZGJXaXRoQ29ycmVjdEFkYlBhdGgoKTtcclxuICByZXR1cm4gYWRiO1xyXG59O1xyXG5cclxuLy8gYWRkIGFsbCB0aGUgbWV0aG9kcyB0byB0aGUgQURCIHByb3RvdHlwZVxyXG5mb3IgKGxldCBbZm5OYW1lLCBmbl0gb2YgXy5wYWlycyhtZXRob2RzKSkge1xyXG4gIEFEQi5wcm90b3R5cGVbZm5OYW1lXSA9IGZuO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBBREI7XHJcbmV4cG9ydCB7IERFRkFVTFRfQURCX1BPUlQgfTtcclxuIl0sInNvdXJjZVJvb3QiOiIuLlxcLi4ifQ==
;