UNPKG

appium-adb

Version:

Android Debug Bridge interface

282 lines (237 loc) 15.5 kB
'use strict'; var _regeneratorRuntime = require('babel-runtime/regenerator')['default']; var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default']; var _chai = require('chai'); var _chai2 = _interopRequireDefault(_chai); var _chaiAsPromised = require('chai-as-promised'); var _chaiAsPromised2 = _interopRequireDefault(_chaiAsPromised); var _ = require('../..'); var _2 = _interopRequireDefault(_); var avdName = process.env.ANDROID_AVD || 'NEXUS_S_18_X86'; _chai2['default'].use(_chaiAsPromised2['default']); describe('System calls', function () { var _this = this; var adb = undefined; var apiLevel = '18'; this.timeout(50000); before(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(_2['default'].createADB()); case 2: adb = context$2$0.sent; case 3: case 'end': return context$2$0.stop(); } }, null, _this); }); it('getConnectedDevices should get devices', function callee$1$0() { var devices; 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(adb.getConnectedDevices()); case 2: devices = context$2$0.sent; devices.should.have.length.above(0); case 4: case 'end': return context$2$0.stop(); } }, null, _this); }); it('getDevicesWithRetry should get devices', function callee$1$0() { var devices; 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(adb.getDevicesWithRetry()); case 2: devices = context$2$0.sent; devices.should.have.length.above(0); case 4: case 'end': return context$2$0.stop(); } }, null, _this); }); it('adbExec should get devices when with devices', 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(adb.adbExec("devices")); case 2: context$2$0.sent.should.contain("List of devices attached"); case 3: case 'end': return context$2$0.stop(); } }, null, _this); }); it('isDeviceConnected should be true', 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(adb.isDeviceConnected()); case 2: context$2$0.sent.should.be['true']; case 3: case 'end': return context$2$0.stop(); } }, null, _this); }); it('shell should execute command in adb shell ', 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(adb.shell(['getprop', 'ro.build.version.sdk'])); case 2: context$2$0.t0 = apiLevel; context$2$0.sent.should.equal(context$2$0.t0); case 4: case 'end': return context$2$0.stop(); } }, null, _this); }); it('getConnectedEmulators should get all connected emulators', 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(adb.getConnectedEmulators()); case 2: context$2$0.sent.length.should.be.above(0); case 3: case 'end': return context$2$0.stop(); } }, null, _this); }); it('getRunningAVD should get all connected avd', 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(adb.getRunningAVD(avdName)); case 2: context$2$0.sent.should.not.be['null']; case 3: case 'end': return context$2$0.stop(); } }, null, _this); }); it('getRunningAVDWithRetry should get all connected avds', 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(adb.getRunningAVDWithRetry(avdName)); case 2: context$2$0.sent.should.not.be['null']; case 3: case 'end': return context$2$0.stop(); } }, null, _this); }); // Skipping for now. Will unskip depending on how it behaves on CI it.skip('launchAVD should get all connected avds', function callee$1$0() { var proc; return _regeneratorRuntime.async(function callee$1$0$(context$2$0) { while (1) switch (context$2$0.prev = context$2$0.next) { case 0: this.timeout(240000); context$2$0.next = 3; return _regeneratorRuntime.awrap(adb.launchAVD(avdName)); case 3: proc = context$2$0.sent; context$2$0.next = 6; return _regeneratorRuntime.awrap(adb.getConnectedEmulators()); case 6: context$2$0.sent.length.should.be.above(0); proc.stop(); case 8: case 'end': return context$2$0.stop(); } }, null, this); }); it('waitForDevice should get all connected avds', 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: this.timeout(60000); context$2$0.next = 3; return _regeneratorRuntime.awrap(adb.waitForDevice(2)); case 3: case 'end': return context$2$0.stop(); } }, null, this); }); it('reboot should reboot the device', 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: this.timeout(60000); context$2$0.next = 3; return _regeneratorRuntime.awrap(adb.reboot()); case 3: context$2$0.next = 5; return _regeneratorRuntime.awrap(adb.ping()); case 5: case 'end': return context$2$0.stop(); } }, null, this); }); it('fileExists should detect when files do and do not exist', 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(adb.fileExists('/foo/bar/baz.zip')); case 2: context$2$0.sent.should.be['false']; context$2$0.next = 5; return _regeneratorRuntime.awrap(adb.fileExists('/system/etc/system_fonts.xml')); case 5: context$2$0.sent.should.be['true']; case 6: case 'end': return context$2$0.stop(); } }, null, this); }); it('ls should list files', 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(adb.ls('/foo/bar')); case 2: context$2$0.t0 = []; context$2$0.sent.should.eql(context$2$0.t0); context$2$0.next = 6; return _regeneratorRuntime.awrap(adb.ls('/system/etc')); case 6: context$2$0.sent.should.contain('system_fonts.xml'); case 7: case 'end': return context$2$0.stop(); } }, null, this); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvZnVuY3Rpb25hbC9zeXNjYWxscy1lMmUtc3BlY3MuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O29CQUFpQixNQUFNOzs7OzhCQUNJLGtCQUFrQjs7OztnQkFDN0IsT0FBTzs7OztBQUd2QixJQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxnQkFBZ0IsQ0FBQzs7QUFFNUQsa0JBQUssR0FBRyw2QkFBZ0IsQ0FBQzs7QUFFekIsUUFBUSxDQUFDLGNBQWMsRUFBRSxZQUFZOzs7QUFDbkMsTUFBSSxHQUFHLFlBQUEsQ0FBQztBQUNSLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQztBQUN0QixNQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3BCLFFBQU0sQ0FBQzs7Ozs7MkNBQ08sY0FBSSxTQUFTLEVBQUU7OztBQUEzQixhQUFHOzs7Ozs7O0dBQ0osQ0FBQyxDQUFDO0FBQ0gsSUFBRSxDQUFDLHdDQUF3QyxFQUFFO1FBQ3ZDLE9BQU87Ozs7OzJDQUFTLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRTs7O0FBQXpDLGlCQUFPOztBQUNYLGlCQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDOzs7Ozs7O0dBQ3JDLENBQUMsQ0FBQztBQUNILElBQUUsQ0FBQyx3Q0FBd0MsRUFBRTtRQUN2QyxPQUFPOzs7OzsyQ0FBUyxHQUFHLENBQUMsbUJBQW1CLEVBQUU7OztBQUF6QyxpQkFBTzs7QUFDWCxpQkFBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzs7Ozs7OztHQUNyQyxDQUFDLENBQUM7QUFDSCxJQUFFLENBQUMsOENBQThDLEVBQUU7Ozs7OzJDQUMxQyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQzs7OzJCQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsMEJBQTBCOzs7Ozs7O0dBQ3pFLENBQUMsQ0FBQztBQUNILElBQUUsQ0FBQyxrQ0FBa0MsRUFBRTs7Ozs7MkNBQzlCLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRTs7OzJCQUFFLE1BQU0sQ0FBQyxFQUFFOzs7Ozs7O0dBQzFDLENBQUMsQ0FBQztBQUNILElBQUUsQ0FBQyw0Q0FBNEMsRUFBRTs7Ozs7MkNBQ3hDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLEVBQUUsc0JBQXNCLENBQUMsQ0FBQzs7OzJCQUFlLFFBQVE7MkJBQXJCLE1BQU0sQ0FBQyxLQUFLOzs7Ozs7O0dBQ3BFLENBQUMsQ0FBQztBQUNILElBQUUsQ0FBQywwREFBMEQsRUFBRTs7Ozs7MkNBQ3RELEdBQUcsQ0FBQyxxQkFBcUIsRUFBRTs7OzJCQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDOzs7Ozs7O0dBQzdELENBQUMsQ0FBQztBQUNILElBQUUsQ0FBQyw0Q0FBNEMsRUFBRTs7Ozs7MkNBQ3hDLEdBQUcsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDOzs7MkJBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFOzs7Ozs7O0dBQ2pELENBQUMsQ0FBQztBQUNILElBQUUsQ0FBQyxzREFBc0QsRUFBRTs7Ozs7MkNBQ2xELEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUM7OzsyQkFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7Ozs7Ozs7R0FDMUQsQ0FBQyxDQUFDOztBQUVILElBQUUsQ0FBQyxJQUFJLENBQUMseUNBQXlDLEVBQUU7UUFFN0MsSUFBSTs7OztBQURSLGNBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7OzJDQUNKLEdBQUcsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDOzs7QUFBbkMsY0FBSTs7MkNBQ0QsR0FBRyxDQUFDLHFCQUFxQixFQUFFOzs7MkJBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7O0FBQzVELGNBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzs7Ozs7OztHQUNiLENBQUMsQ0FBQztBQUNILElBQUUsQ0FBQyw2Q0FBNkMsRUFBRTs7OztBQUNoRCxjQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDOzsyQ0FDZCxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQzs7Ozs7OztHQUMzQixDQUFDLENBQUM7QUFDSCxJQUFFLENBQUMsaUNBQWlDLEVBQUU7Ozs7QUFDcEMsY0FBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQzs7MkNBQ2QsR0FBRyxDQUFDLE1BQU0sRUFBRTs7OzsyQ0FDWixHQUFHLENBQUMsSUFBSSxFQUFFOzs7Ozs7O0dBQ2pCLENBQUMsQ0FBQztBQUNILElBQUUsQ0FBQyx5REFBeUQsRUFBRTs7Ozs7MkNBQ3JELEdBQUcsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUM7OzsyQkFBRSxNQUFNLENBQUMsRUFBRTs7MkNBQzdDLEdBQUcsQ0FBQyxVQUFVLENBQUMsOEJBQThCLENBQUM7OzsyQkFBRSxNQUFNLENBQUMsRUFBRTs7Ozs7OztHQUNqRSxDQUFDLENBQUM7QUFDSCxJQUFFLENBQUMsc0JBQXNCLEVBQUU7Ozs7OzJDQUNsQixHQUFHLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQzs7OzJCQUFhLEVBQUU7MkJBQWIsTUFBTSxDQUFDLEdBQUc7OzJDQUM5QixHQUFHLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQzs7OzJCQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsa0JBQWtCOzs7Ozs7O0dBQ2hFLENBQUMsQ0FBQztDQUNKLENBQUMsQ0FBQyIsImZpbGUiOiJ0ZXN0L2Z1bmN0aW9uYWwvc3lzY2FsbHMtZTJlLXNwZWNzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNoYWkgZnJvbSAnY2hhaSc7XG5pbXBvcnQgY2hhaUFzUHJvbWlzZWQgZnJvbSAnY2hhaS1hcy1wcm9taXNlZCc7XG5pbXBvcnQgQURCIGZyb20gJy4uLy4uJztcblxuXG5jb25zdCBhdmROYW1lID0gcHJvY2Vzcy5lbnYuQU5EUk9JRF9BVkQgfHwgJ05FWFVTX1NfMThfWDg2JztcblxuY2hhaS51c2UoY2hhaUFzUHJvbWlzZWQpO1xuXG5kZXNjcmliZSgnU3lzdGVtIGNhbGxzJywgZnVuY3Rpb24gKCkge1xuICBsZXQgYWRiO1xuICBjb25zdCBhcGlMZXZlbCA9ICcxOCc7XG4gIHRoaXMudGltZW91dCg1MDAwMCk7XG4gIGJlZm9yZShhc3luYyAoKSA9PiB7XG4gICAgYWRiID0gYXdhaXQgQURCLmNyZWF0ZUFEQigpO1xuICB9KTtcbiAgaXQoJ2dldENvbm5lY3RlZERldmljZXMgc2hvdWxkIGdldCBkZXZpY2VzJywgYXN5bmMgKCkgPT4ge1xuICAgIGxldCBkZXZpY2VzID0gYXdhaXQgYWRiLmdldENvbm5lY3RlZERldmljZXMoKTtcbiAgICBkZXZpY2VzLnNob3VsZC5oYXZlLmxlbmd0aC5hYm92ZSgwKTtcbiAgfSk7XG4gIGl0KCdnZXREZXZpY2VzV2l0aFJldHJ5IHNob3VsZCBnZXQgZGV2aWNlcycsIGFzeW5jICgpID0+IHtcbiAgICBsZXQgZGV2aWNlcyA9IGF3YWl0IGFkYi5nZXREZXZpY2VzV2l0aFJldHJ5KCk7XG4gICAgZGV2aWNlcy5zaG91bGQuaGF2ZS5sZW5ndGguYWJvdmUoMCk7XG4gIH0pO1xuICBpdCgnYWRiRXhlYyBzaG91bGQgZ2V0IGRldmljZXMgd2hlbiB3aXRoIGRldmljZXMnLCBhc3luYyAoKSA9PiB7XG4gICAgKGF3YWl0IGFkYi5hZGJFeGVjKFwiZGV2aWNlc1wiKSkuc2hvdWxkLmNvbnRhaW4oXCJMaXN0IG9mIGRldmljZXMgYXR0YWNoZWRcIik7XG4gIH0pO1xuICBpdCgnaXNEZXZpY2VDb25uZWN0ZWQgc2hvdWxkIGJlIHRydWUnLCBhc3luYyAoKSA9PiB7XG4gICAgKGF3YWl0IGFkYi5pc0RldmljZUNvbm5lY3RlZCgpKS5zaG91bGQuYmUudHJ1ZTtcbiAgfSk7XG4gIGl0KCdzaGVsbCBzaG91bGQgZXhlY3V0ZSBjb21tYW5kIGluIGFkYiBzaGVsbCAnLCBhc3luYyAoKSA9PiB7XG4gICAgKGF3YWl0IGFkYi5zaGVsbChbJ2dldHByb3AnLCAncm8uYnVpbGQudmVyc2lvbi5zZGsnXSkpLnNob3VsZC5lcXVhbChhcGlMZXZlbCk7XG4gIH0pO1xuICBpdCgnZ2V0Q29ubmVjdGVkRW11bGF0b3JzIHNob3VsZCBnZXQgYWxsIGNvbm5lY3RlZCBlbXVsYXRvcnMnLCBhc3luYyAoKSA9PiB7XG4gICAgKGF3YWl0IGFkYi5nZXRDb25uZWN0ZWRFbXVsYXRvcnMoKSkubGVuZ3RoLnNob3VsZC5iZS5hYm92ZSgwKTtcbiAgfSk7XG4gIGl0KCdnZXRSdW5uaW5nQVZEIHNob3VsZCBnZXQgYWxsIGNvbm5lY3RlZCBhdmQnLCBhc3luYyAoKSA9PiB7XG4gICAgKGF3YWl0IGFkYi5nZXRSdW5uaW5nQVZEKGF2ZE5hbWUpKS5zaG91bGQubm90LmJlLm51bGw7XG4gIH0pO1xuICBpdCgnZ2V0UnVubmluZ0FWRFdpdGhSZXRyeSBzaG91bGQgZ2V0IGFsbCBjb25uZWN0ZWQgYXZkcycsIGFzeW5jICgpID0+IHtcbiAgICAoYXdhaXQgYWRiLmdldFJ1bm5pbmdBVkRXaXRoUmV0cnkoYXZkTmFtZSkpLnNob3VsZC5ub3QuYmUubnVsbDtcbiAgfSk7XG4gIC8vIFNraXBwaW5nIGZvciBub3cuIFdpbGwgdW5za2lwIGRlcGVuZGluZyBvbiBob3cgaXQgYmVoYXZlcyBvbiBDSVxuICBpdC5za2lwKCdsYXVuY2hBVkQgc2hvdWxkIGdldCBhbGwgY29ubmVjdGVkIGF2ZHMnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy50aW1lb3V0KDI0MDAwMCk7XG4gICAgbGV0IHByb2MgPSBhd2FpdCBhZGIubGF1bmNoQVZEKGF2ZE5hbWUpO1xuICAgIChhd2FpdCBhZGIuZ2V0Q29ubmVjdGVkRW11bGF0b3JzKCkpLmxlbmd0aC5zaG91bGQuYmUuYWJvdmUoMCk7XG4gICAgcHJvYy5zdG9wKCk7XG4gIH0pO1xuICBpdCgnd2FpdEZvckRldmljZSBzaG91bGQgZ2V0IGFsbCBjb25uZWN0ZWQgYXZkcycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLnRpbWVvdXQoNjAwMDApO1xuICAgIGF3YWl0IGFkYi53YWl0Rm9yRGV2aWNlKDIpO1xuICB9KTtcbiAgaXQoJ3JlYm9vdCBzaG91bGQgcmVib290IHRoZSBkZXZpY2UnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy50aW1lb3V0KDYwMDAwKTtcbiAgICBhd2FpdCBhZGIucmVib290KCk7XG4gICAgYXdhaXQgYWRiLnBpbmcoKTtcbiAgfSk7XG4gIGl0KCdmaWxlRXhpc3RzIHNob3VsZCBkZXRlY3Qgd2hlbiBmaWxlcyBkbyBhbmQgZG8gbm90IGV4aXN0JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIChhd2FpdCBhZGIuZmlsZUV4aXN0cygnL2Zvby9iYXIvYmF6LnppcCcpKS5zaG91bGQuYmUuZmFsc2U7XG4gICAgKGF3YWl0IGFkYi5maWxlRXhpc3RzKCcvc3lzdGVtL2V0Yy9zeXN0ZW1fZm9udHMueG1sJykpLnNob3VsZC5iZS50cnVlO1xuICB9KTtcbiAgaXQoJ2xzIHNob3VsZCBsaXN0IGZpbGVzJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIChhd2FpdCBhZGIubHMoJy9mb28vYmFyJykpLnNob3VsZC5lcWwoW10pO1xuICAgIChhd2FpdCBhZGIubHMoJy9zeXN0ZW0vZXRjJykpLnNob3VsZC5jb250YWluKCdzeXN0ZW1fZm9udHMueG1sJyk7XG4gIH0pO1xufSk7XG4iXX0=