appium-adb
Version:
Android Debug Bridge interface
118 lines (90 loc) • 11.9 kB
JavaScript
;
var _regeneratorRuntime = require('babel-runtime/regenerator')['default'];
var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
var _interopRequireWildcard = require('babel-runtime/helpers/interop-require-wildcard')['default'];
var _this = this;
var _chai = require('chai');
var _chai2 = _interopRequireDefault(_chai);
var _chaiAsPromised = require('chai-as-promised');
var _chaiAsPromised2 = _interopRequireDefault(_chaiAsPromised);
var _ = require('../..');
var _2 = _interopRequireDefault(_);
var _teen_process = require('teen_process');
var teen_process = _interopRequireWildcard(_teen_process);
var _appiumTestSupport = require('appium-test-support');
_chai2['default'].use(_chaiAsPromised2['default']);
describe('android-manifest', function () {
var adb = new _2['default']();
describe('processFromManifest', (0, _appiumTestSupport.withMocks)({ adb: adb, teen_process: teen_process }, function (mocks) {
it('should correctly parse process from manifest', function callee$2$0() {
var localApk, dummyProcess;
return _regeneratorRuntime.async(function callee$2$0$(context$3$0) {
while (1) switch (context$3$0.prev = context$3$0.next) {
case 0:
adb.binaries.aapt = 'dummy_aapt';
localApk = 'dummyAPK', dummyProcess = 'dummyProcess';
mocks.adb.expects("initAapt").once().withExactArgs().returns('');
mocks.teen_process.expects("exec").once().withExactArgs('dummy_aapt', ['dump', 'xmltree', localApk, 'AndroidManifest.xml']).returns({ stdout: ' E: application (line=234)\n A: android:process(0x01010011)="' + dummyProcess + '"' });
context$3$0.next = 6;
return _regeneratorRuntime.awrap(adb.processFromManifest(localApk));
case 6:
context$3$0.t0 = dummyProcess;
context$3$0.sent.should.equal(context$3$0.t0);
mocks.adb.verify();
case 9:
case 'end':
return context$3$0.stop();
}
}, null, _this);
});
}));
describe('packageAndLaunchActivityFromManifest', (0, _appiumTestSupport.withMocks)({ adb: adb, teen_process: teen_process }, function (mocks) {
it('should correctly parse package and activity from manifest', function callee$2$0() {
var localApk, dummyPackageName, dummyActivityName, _ref, apkPackage, apkActivity;
return _regeneratorRuntime.async(function callee$2$0$(context$3$0) {
while (1) switch (context$3$0.prev = context$3$0.next) {
case 0:
adb.binaries.aapt = 'dummy_aapt';
localApk = 'dummyAPK', dummyPackageName = 'package', dummyActivityName = 'activity';
mocks.adb.expects("initAapt").once().withExactArgs().returns('');
mocks.teen_process.expects("exec").once().withExactArgs('dummy_aapt', ['dump', 'badging', localApk]).returns({ stdout: ' package: name=\'' + dummyPackageName + '\'\n launchable-activity: name=\'' + dummyActivityName + '\'' });
context$3$0.next = 6;
return _regeneratorRuntime.awrap(adb.packageAndLaunchActivityFromManifest(localApk));
case 6:
_ref = context$3$0.sent;
apkPackage = _ref.apkPackage;
apkActivity = _ref.apkActivity;
apkPackage.should.equal(dummyPackageName);
apkActivity.should.equal(dummyActivityName);
mocks.adb.verify();
case 12:
case 'end':
return context$3$0.stop();
}
}, null, _this);
});
}));
describe('hasInternetPermissionFromManifest', (0, _appiumTestSupport.withMocks)({ adb: adb, teen_process: teen_process }, function (mocks) {
it('should correctly parse internet permission from manifest', function callee$2$0() {
var localApk;
return _regeneratorRuntime.async(function callee$2$0$(context$3$0) {
while (1) switch (context$3$0.prev = context$3$0.next) {
case 0:
adb.binaries.aapt = 'dummy_aapt';
localApk = 'dummyAPK';
mocks.adb.expects("initAapt").once().withExactArgs().returns('');
mocks.teen_process.expects("exec").once().withExactArgs('dummy_aapt', ['dump', 'badging', localApk]).returns({ stdout: ' uses-permission:.*\'android.permission.INTERNET\'' });
context$3$0.next = 6;
return _regeneratorRuntime.awrap(adb.hasInternetPermissionFromManifest(localApk));
case 6:
context$3$0.sent.should.be['true'];
mocks.adb.verify();
case 8:
case 'end':
return context$3$0.stop();
}
}, null, _this);
});
}));
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvdW5pdC9hbmRyb2lkLW1hbmlmZXN0LXNwZWNzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7b0JBQWlCLE1BQU07Ozs7OEJBQ0ksa0JBQWtCOzs7O2dCQUM3QixPQUFPOzs7OzRCQUNPLGNBQWM7O0lBQWhDLFlBQVk7O2lDQUNFLHFCQUFxQjs7QUFHL0Msa0JBQUssR0FBRyw2QkFBZ0IsQ0FBQzs7QUFFekIsUUFBUSxDQUFDLGtCQUFrQixFQUFFLFlBQU07QUFDakMsTUFBSSxHQUFHLEdBQUcsbUJBQVMsQ0FBQztBQUNwQixVQUFRLENBQUMscUJBQXFCLEVBQUUsa0NBQVUsRUFBQyxHQUFHLEVBQUgsR0FBRyxFQUFFLFlBQVksRUFBWixZQUFZLEVBQUMsRUFBRSxVQUFDLEtBQUssRUFBSztBQUN4RSxNQUFFLENBQUMsOENBQThDLEVBQUU7VUFFM0MsUUFBUSxFQUNSLFlBQVk7Ozs7QUFGbEIsZUFBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDO0FBQzNCLG9CQUFRLEdBQUcsVUFBVSxFQUNyQixZQUFZLEdBQUcsY0FBYzs7QUFDbkMsaUJBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUMxQixJQUFJLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FDaEIsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3JCLGlCQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FDL0IsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUMxQyxxQkFBcUIsQ0FBQyxDQUFDLENBQzVDLE9BQU8sQ0FBQyxFQUFDLE1BQU0sNkZBQ29DLFlBQVksTUFBRyxFQUFDLENBQUMsQ0FBQzs7NkNBQ2pFLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUM7Ozs2QkFBZSxZQUFZOzZCQUF6QixNQUFNLENBQUMsS0FBSzs7QUFDdEQsaUJBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7Ozs7Ozs7S0FDcEIsQ0FBQyxDQUFDO0dBQ0osQ0FBQyxDQUFDLENBQUM7QUFDSixVQUFRLENBQUMsc0NBQXNDLEVBQUUsa0NBQVUsRUFBQyxHQUFHLEVBQUgsR0FBRyxFQUFFLFlBQVksRUFBWixZQUFZLEVBQUMsRUFBRSxVQUFDLEtBQUssRUFBSztBQUN6RixNQUFFLENBQUMsMkRBQTJELEVBQUU7VUFFeEQsUUFBUSxFQUNSLGdCQUFnQixFQUNoQixpQkFBaUIsUUFRbEIsVUFBVSxFQUFFLFdBQVc7Ozs7O0FBWDVCLGVBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztBQUMzQixvQkFBUSxHQUFHLFVBQVUsRUFDckIsZ0JBQWdCLEdBQUcsU0FBUyxFQUM1QixpQkFBaUIsR0FBRyxVQUFVOztBQUNwQyxpQkFBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQzFCLElBQUksRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUNoQixPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDckIsaUJBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUMvQixJQUFJLEVBQUUsQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUNqRSxPQUFPLENBQUMsRUFBQyxNQUFNLHdCQUFxQixnQkFBZ0Isb0VBQ0osaUJBQWlCLE9BQUcsRUFBQyxDQUFDLENBQUM7OzZDQUNuQyxHQUFHLENBQUMsb0NBQW9DLENBQUMsUUFBUSxDQUFDOzs7O0FBQXBGLHNCQUFVLFFBQVYsVUFBVTtBQUFFLHVCQUFXLFFBQVgsV0FBVzs7QUFDNUIsc0JBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDMUMsdUJBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDNUMsaUJBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7Ozs7Ozs7S0FDcEIsQ0FBQyxDQUFDO0dBQ0osQ0FBQyxDQUFDLENBQUM7QUFDSixVQUFRLENBQUMsbUNBQW1DLEVBQUUsa0NBQVUsRUFBQyxHQUFHLEVBQUgsR0FBRyxFQUFFLFlBQVksRUFBWixZQUFZLEVBQUMsRUFBRSxVQUFDLEtBQUssRUFBSztBQUN0RixNQUFFLENBQUMsMERBQTBELEVBQUU7VUFFdkQsUUFBUTs7OztBQURkLGVBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztBQUMzQixvQkFBUSxHQUFHLFVBQVU7O0FBQzNCLGlCQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FDMUIsSUFBSSxFQUFFLENBQUMsYUFBYSxFQUFFLENBQ2hCLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNyQixpQkFBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQy9CLElBQUksRUFBRSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQ2pFLE9BQU8sQ0FBQyxFQUFDLE1BQU0sc0RBQW9ELEVBQUMsQ0FBQyxDQUFDOzs2Q0FDbEUsR0FBRyxDQUFDLGlDQUFpQyxDQUFDLFFBQVEsQ0FBQzs7OzZCQUFFLE1BQU0sQ0FBQyxFQUFFOztBQUNqRSxpQkFBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQzs7Ozs7OztLQUNwQixDQUFDLENBQUM7R0FDSixDQUFDLENBQUMsQ0FBQztDQUNMLENBQUMsQ0FBQyIsImZpbGUiOiJ0ZXN0L3VuaXQvYW5kcm9pZC1tYW5pZmVzdC1zcGVjcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjaGFpIGZyb20gJ2NoYWknO1xuaW1wb3J0IGNoYWlBc1Byb21pc2VkIGZyb20gJ2NoYWktYXMtcHJvbWlzZWQnO1xuaW1wb3J0IEFEQiBmcm9tICcuLi8uLic7XG5pbXBvcnQgKiBhcyB0ZWVuX3Byb2Nlc3MgZnJvbSAndGVlbl9wcm9jZXNzJztcbmltcG9ydCB7IHdpdGhNb2NrcyB9IGZyb20gJ2FwcGl1bS10ZXN0LXN1cHBvcnQnO1xuXG5cbmNoYWkudXNlKGNoYWlBc1Byb21pc2VkKTtcblxuZGVzY3JpYmUoJ2FuZHJvaWQtbWFuaWZlc3QnLCAoKSA9PiB7XG4gIGxldCBhZGIgPSBuZXcgQURCKCk7XG4gIGRlc2NyaWJlKCdwcm9jZXNzRnJvbU1hbmlmZXN0Jywgd2l0aE1vY2tzKHthZGIsIHRlZW5fcHJvY2Vzc30sIChtb2NrcykgPT4ge1xuICAgIGl0KCdzaG91bGQgY29ycmVjdGx5IHBhcnNlIHByb2Nlc3MgZnJvbSBtYW5pZmVzdCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGFkYi5iaW5hcmllcy5hYXB0ID0gJ2R1bW15X2FhcHQnO1xuICAgICAgY29uc3QgbG9jYWxBcGsgPSAnZHVtbXlBUEsnLFxuICAgICAgICAgICAgZHVtbXlQcm9jZXNzID0gJ2R1bW15UHJvY2Vzcyc7XG4gICAgICBtb2Nrcy5hZGIuZXhwZWN0cyhcImluaXRBYXB0XCIpXG4gICAgICAgIC5vbmNlKCkud2l0aEV4YWN0QXJncygpXG4gICAgICAgICAgICAgIC5yZXR1cm5zKCcnKTtcbiAgICAgIG1vY2tzLnRlZW5fcHJvY2Vzcy5leHBlY3RzKFwiZXhlY1wiKVxuICAgICAgICAub25jZSgpLndpdGhFeGFjdEFyZ3MoJ2R1bW15X2FhcHQnLCBbJ2R1bXAnLCAneG1sdHJlZScsIGxvY2FsQXBrLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FuZHJvaWRNYW5pZmVzdC54bWwnXSlcbiAgICAgICAgLnJldHVybnMoe3N0ZG91dDogYCBFOiBhcHBsaWNhdGlvbiAobGluZT0yMzQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEE6IGFuZHJvaWQ6cHJvY2VzcygweDAxMDEwMDExKT1cIiR7ZHVtbXlQcm9jZXNzfVwiYH0pO1xuICAgICAgKGF3YWl0IGFkYi5wcm9jZXNzRnJvbU1hbmlmZXN0KGxvY2FsQXBrKSkuc2hvdWxkLmVxdWFsKGR1bW15UHJvY2Vzcyk7XG4gICAgICBtb2Nrcy5hZGIudmVyaWZ5KCk7XG4gICAgfSk7XG4gIH0pKTtcbiAgZGVzY3JpYmUoJ3BhY2thZ2VBbmRMYXVuY2hBY3Rpdml0eUZyb21NYW5pZmVzdCcsIHdpdGhNb2Nrcyh7YWRiLCB0ZWVuX3Byb2Nlc3N9LCAobW9ja3MpID0+IHtcbiAgICBpdCgnc2hvdWxkIGNvcnJlY3RseSBwYXJzZSBwYWNrYWdlIGFuZCBhY3Rpdml0eSBmcm9tIG1hbmlmZXN0JywgYXN5bmMgKCkgPT4ge1xuICAgICAgYWRiLmJpbmFyaWVzLmFhcHQgPSAnZHVtbXlfYWFwdCc7XG4gICAgICBjb25zdCBsb2NhbEFwayA9ICdkdW1teUFQSycsXG4gICAgICAgICAgICBkdW1teVBhY2thZ2VOYW1lID0gJ3BhY2thZ2UnLFxuICAgICAgICAgICAgZHVtbXlBY3Rpdml0eU5hbWUgPSAnYWN0aXZpdHknO1xuICAgICAgbW9ja3MuYWRiLmV4cGVjdHMoXCJpbml0QWFwdFwiKVxuICAgICAgICAub25jZSgpLndpdGhFeGFjdEFyZ3MoKVxuICAgICAgICAgICAgICAucmV0dXJucygnJyk7XG4gICAgICBtb2Nrcy50ZWVuX3Byb2Nlc3MuZXhwZWN0cyhcImV4ZWNcIilcbiAgICAgICAgLm9uY2UoKS53aXRoRXhhY3RBcmdzKCdkdW1teV9hYXB0JywgWydkdW1wJywgJ2JhZGdpbmcnLCBsb2NhbEFwa10pXG4gICAgICAgIC5yZXR1cm5zKHtzdGRvdXQ6IGAgcGFja2FnZTogbmFtZT0nJHtkdW1teVBhY2thZ2VOYW1lfSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXVuY2hhYmxlLWFjdGl2aXR5OiBuYW1lPScke2R1bW15QWN0aXZpdHlOYW1lfSdgfSk7XG4gICAgICBsZXQge2Fwa1BhY2thZ2UsIGFwa0FjdGl2aXR5fSA9IChhd2FpdCBhZGIucGFja2FnZUFuZExhdW5jaEFjdGl2aXR5RnJvbU1hbmlmZXN0KGxvY2FsQXBrKSk7XG4gICAgICBhcGtQYWNrYWdlLnNob3VsZC5lcXVhbChkdW1teVBhY2thZ2VOYW1lKTtcbiAgICAgIGFwa0FjdGl2aXR5LnNob3VsZC5lcXVhbChkdW1teUFjdGl2aXR5TmFtZSk7XG4gICAgICBtb2Nrcy5hZGIudmVyaWZ5KCk7XG4gICAgfSk7XG4gIH0pKTtcbiAgZGVzY3JpYmUoJ2hhc0ludGVybmV0UGVybWlzc2lvbkZyb21NYW5pZmVzdCcsIHdpdGhNb2Nrcyh7YWRiLCB0ZWVuX3Byb2Nlc3N9LCAobW9ja3MpID0+IHtcbiAgICBpdCgnc2hvdWxkIGNvcnJlY3RseSBwYXJzZSBpbnRlcm5ldCBwZXJtaXNzaW9uIGZyb20gbWFuaWZlc3QnLCBhc3luYyAoKSA9PiB7XG4gICAgICBhZGIuYmluYXJpZXMuYWFwdCA9ICdkdW1teV9hYXB0JztcbiAgICAgIGNvbnN0IGxvY2FsQXBrID0gJ2R1bW15QVBLJztcbiAgICAgIG1vY2tzLmFkYi5leHBlY3RzKFwiaW5pdEFhcHRcIilcbiAgICAgICAgLm9uY2UoKS53aXRoRXhhY3RBcmdzKClcbiAgICAgICAgICAgICAgLnJldHVybnMoJycpO1xuICAgICAgbW9ja3MudGVlbl9wcm9jZXNzLmV4cGVjdHMoXCJleGVjXCIpXG4gICAgICAgIC5vbmNlKCkud2l0aEV4YWN0QXJncygnZHVtbXlfYWFwdCcsIFsnZHVtcCcsICdiYWRnaW5nJywgbG9jYWxBcGtdKVxuICAgICAgICAucmV0dXJucyh7c3Rkb3V0OiBgIHVzZXMtcGVybWlzc2lvbjouKidhbmRyb2lkLnBlcm1pc3Npb24uSU5URVJORVQnYH0pO1xuICAgICAgKGF3YWl0IGFkYi5oYXNJbnRlcm5ldFBlcm1pc3Npb25Gcm9tTWFuaWZlc3QobG9jYWxBcGspKS5zaG91bGQuYmUudHJ1ZTtcbiAgICAgIG1vY2tzLmFkYi52ZXJpZnkoKTtcbiAgICB9KTtcbiAgfSkpO1xufSk7XG4iXX0=