appium-adb
Version:
Android Debug Bridge interface
282 lines (237 loc) • 15.5 kB
JavaScript
;
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=