appium-adb
Version:
Android Debug Bridge interface
63 lines (59 loc) • 2.66 kB
JavaScript
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import ADB from '../..';
import * as teen_process from 'teen_process';
import { withMocks } from 'appium-test-support';
chai.use(chaiAsPromised);
describe('android-manifest', () => {
let adb = new ADB();
describe('processFromManifest', withMocks({adb, teen_process}, (mocks) => {
it('should correctly parse process from manifest', async () => {
adb.binaries.aapt = 'dummy_aapt';
const 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)
A: android:process(0x01010011)="${dummyProcess}"`});
(await adb.processFromManifest(localApk)).should.equal(dummyProcess);
mocks.adb.verify();
});
}));
describe('packageAndLaunchActivityFromManifest', withMocks({adb, teen_process}, (mocks) => {
it('should correctly parse package and activity from manifest', async () => {
adb.binaries.aapt = 'dummy_aapt';
const 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}'
launchable-activity: name='${dummyActivityName}'`});
let {apkPackage, apkActivity} = (await adb.packageAndLaunchActivityFromManifest(localApk));
apkPackage.should.equal(dummyPackageName);
apkActivity.should.equal(dummyActivityName);
mocks.adb.verify();
});
}));
describe('hasInternetPermissionFromManifest', withMocks({adb, teen_process}, (mocks) => {
it('should correctly parse internet permission from manifest', async () => {
adb.binaries.aapt = 'dummy_aapt';
const 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'`});
(await adb.hasInternetPermissionFromManifest(localApk)).should.be.true;
mocks.adb.verify();
});
}));
});