UNPKG

appium-adb-test

Version:

Android Debug Bridge interface

119 lines (90 loc) 12.1 kB
'use strict'; 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;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvdW5pdC9hbmRyb2lkLW1hbmlmZXN0LXNwZWNzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7b0JBQWlCLE1BQU07Ozs7OEJBQ0ksa0JBQWtCOzs7O2dCQUM3QixPQUFPOzs7OzRCQUNPLGNBQWM7O0lBQWhDLFlBQVk7O2lDQUNFLHFCQUFxQjs7QUFHL0Msa0JBQUssR0FBRyw2QkFBZ0IsQ0FBQzs7QUFFekIsUUFBUSxDQUFDLGtCQUFrQixFQUFFLFlBQU07QUFDakMsTUFBSSxHQUFHLEdBQUcsbUJBQVMsQ0FBQztBQUNwQixVQUFRLENBQUMscUJBQXFCLEVBQUUsa0NBQVUsRUFBQyxHQUFHLEVBQUgsR0FBRyxFQUFFLFlBQVksRUFBWixZQUFZLEVBQUMsRUFBRSxVQUFDLEtBQUssRUFBSztBQUN4RSxNQUFFLENBQUMsOENBQThDLEVBQUU7VUFFM0MsUUFBUSxFQUNSLFlBQVk7Ozs7QUFGbEIsZUFBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDO0FBQzNCLG9CQUFRLEdBQUcsVUFBVSxFQUNyQixZQUFZLEdBQUcsY0FBYzs7QUFDbkMsaUJBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUMxQixJQUFJLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FDaEIsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3JCLGlCQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FDL0IsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUMxQyxxQkFBcUIsQ0FBQyxDQUFDLENBQzVDLE9BQU8sQ0FBQyxFQUFDLE1BQU0sNkZBQ29DLFlBQVksTUFBRyxFQUFDLENBQUMsQ0FBQzs7NkNBQ2pFLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUM7Ozs2QkFBZSxZQUFZOzZCQUF6QixNQUFNLENBQUMsS0FBSzs7QUFDdEQsaUJBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7Ozs7Ozs7S0FDcEIsQ0FBQyxDQUFDO0dBQ0osQ0FBQyxDQUFDLENBQUM7QUFDSixVQUFRLENBQUMsc0NBQXNDLEVBQUUsa0NBQVUsRUFBQyxHQUFHLEVBQUgsR0FBRyxFQUFFLFlBQVksRUFBWixZQUFZLEVBQUMsRUFBRSxVQUFDLEtBQUssRUFBSztBQUN6RixNQUFFLENBQUMsMkRBQTJELEVBQUU7VUFFeEQsUUFBUSxFQUNSLGdCQUFnQixFQUNoQixpQkFBaUIsUUFRbEIsVUFBVSxFQUFFLFdBQVc7Ozs7O0FBWDVCLGVBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztBQUMzQixvQkFBUSxHQUFHLFVBQVUsRUFDckIsZ0JBQWdCLEdBQUcsU0FBUyxFQUM1QixpQkFBaUIsR0FBRyxVQUFVOztBQUNwQyxpQkFBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQzFCLElBQUksRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUNoQixPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDckIsaUJBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUMvQixJQUFJLEVBQUUsQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUNqRSxPQUFPLENBQUMsRUFBQyxNQUFNLHdCQUFxQixnQkFBZ0Isb0VBQ0osaUJBQWlCLE9BQUcsRUFBQyxDQUFDLENBQUM7OzZDQUNuQyxHQUFHLENBQUMsb0NBQW9DLENBQUMsUUFBUSxDQUFDOzs7O0FBQXBGLHNCQUFVLFFBQVYsVUFBVTtBQUFFLHVCQUFXLFFBQVgsV0FBVzs7QUFDNUIsc0JBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDMUMsdUJBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDNUMsaUJBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7Ozs7Ozs7S0FDcEIsQ0FBQyxDQUFDO0dBQ0osQ0FBQyxDQUFDLENBQUM7QUFDSixVQUFRLENBQUMsbUNBQW1DLEVBQUUsa0NBQVUsRUFBQyxHQUFHLEVBQUgsR0FBRyxFQUFFLFlBQVksRUFBWixZQUFZLEVBQUMsRUFBRSxVQUFDLEtBQUssRUFBSztBQUN0RixNQUFFLENBQUMsMERBQTBELEVBQUU7VUFFdkQsUUFBUTs7OztBQURkLGVBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztBQUMzQixvQkFBUSxHQUFHLFVBQVU7O0FBQzNCLGlCQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FDMUIsSUFBSSxFQUFFLENBQUMsYUFBYSxFQUFFLENBQ2hCLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNyQixpQkFBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQy9CLElBQUksRUFBRSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQ2pFLE9BQU8sQ0FBQyxFQUFDLE1BQU0sc0RBQW9ELEVBQUMsQ0FBQyxDQUFDOzs2Q0FDbEUsR0FBRyxDQUFDLGlDQUFpQyxDQUFDLFFBQVEsQ0FBQzs7OzZCQUFFLE1BQU0sQ0FBQyxFQUFFOztBQUNqRSxpQkFBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQzs7Ozs7OztLQUNwQixDQUFDLENBQUM7R0FDSixDQUFDLENBQUMsQ0FBQztDQUNMLENBQUMsQ0FBQyIsImZpbGUiOiJ0ZXN0L3VuaXQvYW5kcm9pZC1tYW5pZmVzdC1zcGVjcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjaGFpIGZyb20gJ2NoYWknO1xyXG5pbXBvcnQgY2hhaUFzUHJvbWlzZWQgZnJvbSAnY2hhaS1hcy1wcm9taXNlZCc7XHJcbmltcG9ydCBBREIgZnJvbSAnLi4vLi4nO1xyXG5pbXBvcnQgKiBhcyB0ZWVuX3Byb2Nlc3MgZnJvbSAndGVlbl9wcm9jZXNzJztcclxuaW1wb3J0IHsgd2l0aE1vY2tzIH0gZnJvbSAnYXBwaXVtLXRlc3Qtc3VwcG9ydCc7XHJcblxyXG5cclxuY2hhaS51c2UoY2hhaUFzUHJvbWlzZWQpO1xyXG5cclxuZGVzY3JpYmUoJ2FuZHJvaWQtbWFuaWZlc3QnLCAoKSA9PiB7XHJcbiAgbGV0IGFkYiA9IG5ldyBBREIoKTtcclxuICBkZXNjcmliZSgncHJvY2Vzc0Zyb21NYW5pZmVzdCcsIHdpdGhNb2Nrcyh7YWRiLCB0ZWVuX3Byb2Nlc3N9LCAobW9ja3MpID0+IHtcclxuICAgIGl0KCdzaG91bGQgY29ycmVjdGx5IHBhcnNlIHByb2Nlc3MgZnJvbSBtYW5pZmVzdCcsIGFzeW5jICgpID0+IHtcclxuICAgICAgYWRiLmJpbmFyaWVzLmFhcHQgPSAnZHVtbXlfYWFwdCc7XHJcbiAgICAgIGNvbnN0IGxvY2FsQXBrID0gJ2R1bW15QVBLJyxcclxuICAgICAgICAgICAgZHVtbXlQcm9jZXNzID0gJ2R1bW15UHJvY2Vzcyc7XHJcbiAgICAgIG1vY2tzLmFkYi5leHBlY3RzKFwiaW5pdEFhcHRcIilcclxuICAgICAgICAub25jZSgpLndpdGhFeGFjdEFyZ3MoKVxyXG4gICAgICAgICAgICAgIC5yZXR1cm5zKCcnKTtcclxuICAgICAgbW9ja3MudGVlbl9wcm9jZXNzLmV4cGVjdHMoXCJleGVjXCIpXHJcbiAgICAgICAgLm9uY2UoKS53aXRoRXhhY3RBcmdzKCdkdW1teV9hYXB0JywgWydkdW1wJywgJ3htbHRyZWUnLCBsb2NhbEFwayxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FuZHJvaWRNYW5pZmVzdC54bWwnXSlcclxuICAgICAgICAucmV0dXJucyh7c3Rkb3V0OiBgIEU6IGFwcGxpY2F0aW9uIChsaW5lPTIzNClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBBOiBhbmRyb2lkOnByb2Nlc3MoMHgwMTAxMDAxMSk9XCIke2R1bW15UHJvY2Vzc31cImB9KTtcclxuICAgICAgKGF3YWl0IGFkYi5wcm9jZXNzRnJvbU1hbmlmZXN0KGxvY2FsQXBrKSkuc2hvdWxkLmVxdWFsKGR1bW15UHJvY2Vzcyk7XHJcbiAgICAgIG1vY2tzLmFkYi52ZXJpZnkoKTtcclxuICAgIH0pO1xyXG4gIH0pKTtcclxuICBkZXNjcmliZSgncGFja2FnZUFuZExhdW5jaEFjdGl2aXR5RnJvbU1hbmlmZXN0Jywgd2l0aE1vY2tzKHthZGIsIHRlZW5fcHJvY2Vzc30sIChtb2NrcykgPT4ge1xyXG4gICAgaXQoJ3Nob3VsZCBjb3JyZWN0bHkgcGFyc2UgcGFja2FnZSBhbmQgYWN0aXZpdHkgZnJvbSBtYW5pZmVzdCcsIGFzeW5jICgpID0+IHtcclxuICAgICAgYWRiLmJpbmFyaWVzLmFhcHQgPSAnZHVtbXlfYWFwdCc7XHJcbiAgICAgIGNvbnN0IGxvY2FsQXBrID0gJ2R1bW15QVBLJyxcclxuICAgICAgICAgICAgZHVtbXlQYWNrYWdlTmFtZSA9ICdwYWNrYWdlJyxcclxuICAgICAgICAgICAgZHVtbXlBY3Rpdml0eU5hbWUgPSAnYWN0aXZpdHknO1xyXG4gICAgICBtb2Nrcy5hZGIuZXhwZWN0cyhcImluaXRBYXB0XCIpXHJcbiAgICAgICAgLm9uY2UoKS53aXRoRXhhY3RBcmdzKClcclxuICAgICAgICAgICAgICAucmV0dXJucygnJyk7XHJcbiAgICAgIG1vY2tzLnRlZW5fcHJvY2Vzcy5leHBlY3RzKFwiZXhlY1wiKVxyXG4gICAgICAgIC5vbmNlKCkud2l0aEV4YWN0QXJncygnZHVtbXlfYWFwdCcsIFsnZHVtcCcsICdiYWRnaW5nJywgbG9jYWxBcGtdKVxyXG4gICAgICAgIC5yZXR1cm5zKHtzdGRvdXQ6IGAgcGFja2FnZTogbmFtZT0nJHtkdW1teVBhY2thZ2VOYW1lfSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhdW5jaGFibGUtYWN0aXZpdHk6IG5hbWU9JyR7ZHVtbXlBY3Rpdml0eU5hbWV9J2B9KTtcclxuICAgICAgbGV0IHthcGtQYWNrYWdlLCBhcGtBY3Rpdml0eX0gPSAoYXdhaXQgYWRiLnBhY2thZ2VBbmRMYXVuY2hBY3Rpdml0eUZyb21NYW5pZmVzdChsb2NhbEFwaykpO1xyXG4gICAgICBhcGtQYWNrYWdlLnNob3VsZC5lcXVhbChkdW1teVBhY2thZ2VOYW1lKTtcclxuICAgICAgYXBrQWN0aXZpdHkuc2hvdWxkLmVxdWFsKGR1bW15QWN0aXZpdHlOYW1lKTtcclxuICAgICAgbW9ja3MuYWRiLnZlcmlmeSgpO1xyXG4gICAgfSk7XHJcbiAgfSkpO1xyXG4gIGRlc2NyaWJlKCdoYXNJbnRlcm5ldFBlcm1pc3Npb25Gcm9tTWFuaWZlc3QnLCB3aXRoTW9ja3Moe2FkYiwgdGVlbl9wcm9jZXNzfSwgKG1vY2tzKSA9PiB7XHJcbiAgICBpdCgnc2hvdWxkIGNvcnJlY3RseSBwYXJzZSBpbnRlcm5ldCBwZXJtaXNzaW9uIGZyb20gbWFuaWZlc3QnLCBhc3luYyAoKSA9PiB7XHJcbiAgICAgIGFkYi5iaW5hcmllcy5hYXB0ID0gJ2R1bW15X2FhcHQnO1xyXG4gICAgICBjb25zdCBsb2NhbEFwayA9ICdkdW1teUFQSyc7XHJcbiAgICAgIG1vY2tzLmFkYi5leHBlY3RzKFwiaW5pdEFhcHRcIilcclxuICAgICAgICAub25jZSgpLndpdGhFeGFjdEFyZ3MoKVxyXG4gICAgICAgICAgICAgIC5yZXR1cm5zKCcnKTtcclxuICAgICAgbW9ja3MudGVlbl9wcm9jZXNzLmV4cGVjdHMoXCJleGVjXCIpXHJcbiAgICAgICAgLm9uY2UoKS53aXRoRXhhY3RBcmdzKCdkdW1teV9hYXB0JywgWydkdW1wJywgJ2JhZGdpbmcnLCBsb2NhbEFwa10pXHJcbiAgICAgICAgLnJldHVybnMoe3N0ZG91dDogYCB1c2VzLXBlcm1pc3Npb246LionYW5kcm9pZC5wZXJtaXNzaW9uLklOVEVSTkVUJ2B9KTtcclxuICAgICAgKGF3YWl0IGFkYi5oYXNJbnRlcm5ldFBlcm1pc3Npb25Gcm9tTWFuaWZlc3QobG9jYWxBcGspKS5zaG91bGQuYmUudHJ1ZTtcclxuICAgICAgbW9ja3MuYWRiLnZlcmlmeSgpO1xyXG4gICAgfSk7XHJcbiAgfSkpO1xyXG59KTtcclxuIl0sInNvdXJjZVJvb3QiOiIuLlxcLi5cXC4uIn0=