testfiles.append(os.path.join(self.basedir, 'urzip-badsig.apk'))
testfiles.append(os.path.join(self.basedir, 'urzip-badcert.apk'))
for apkfile in testfiles:
- debuggable = fdroidserver.common.isApkAndDebuggable(apkfile)
+ debuggable = fdroidserver.common.is_apk_and_debuggable(apkfile)
self.assertTrue(debuggable,
"debuggable APK state was not properly parsed!")
# these are set NOT debuggable
testfiles.append(os.path.join(self.basedir, 'urzip-release.apk'))
testfiles.append(os.path.join(self.basedir, 'urzip-release-unsigned.apk'))
for apkfile in testfiles:
- debuggable = fdroidserver.common.isApkAndDebuggable(apkfile)
+ debuggable = fdroidserver.common.is_apk_and_debuggable(apkfile)
self.assertFalse(debuggable,
"debuggable APK state was not properly parsed!")
self.assertTrue(fdroidserver.common.verify_apk_signature(signed))
self.assertEqual(18, fdroidserver.common.get_minSdkVersion_aapt(signed))
- def test_get_api_id_aapt(self):
+ def test_get_api_id(self):
config = dict()
fdroidserver.common.fill_config_defaults(config)
self._set_build_tools()
config['aapt'] = fdroidserver.common.find_sdk_tools_cmd('aapt')
- appid, vercode, vername = fdroidserver.common.get_apk_id_aapt('repo/obb.main.twoversions_1101613.apk')
- self.assertEqual('obb.main.twoversions', appid)
- self.assertEqual('1101613', vercode)
- self.assertEqual('0.1', vername)
+ testcases = [
+ ('repo/obb.main.twoversions_1101613.apk', 'obb.main.twoversions', '1101613', '0.1'),
+ ('org.bitbucket.tickytacky.mirrormirror_1.apk', 'org.bitbucket.tickytacky.mirrormirror', '1', '1.0'),
+ ('org.bitbucket.tickytacky.mirrormirror_2.apk', 'org.bitbucket.tickytacky.mirrormirror', '2', '1.0.1'),
+ ('org.bitbucket.tickytacky.mirrormirror_3.apk', 'org.bitbucket.tickytacky.mirrormirror', '3', '1.0.2'),
+ ('org.bitbucket.tickytacky.mirrormirror_4.apk', 'org.bitbucket.tickytacky.mirrormirror', '4', '1.0.3'),
+ ('org.dyndns.fules.ck_20.apk', 'org.dyndns.fules.ck', '20', 'v1.6pre2'),
+ ('urzip.apk', 'info.guardianproject.urzip', '100', '0.1'),
+ ('urzip-badcert.apk', 'info.guardianproject.urzip', '100', '0.1'),
+ ('urzip-badsig.apk', 'info.guardianproject.urzip', '100', '0.1'),
+ ('urzip-release.apk', 'info.guardianproject.urzip', '100', '0.1'),
+ ('urzip-release-unsigned.apk', 'info.guardianproject.urzip', '100', '0.1'),
+ ('repo/com.politedroid_3.apk', 'com.politedroid', '3', '1.2'),
+ ('repo/com.politedroid_4.apk', 'com.politedroid', '4', '1.3'),
+ ('repo/com.politedroid_5.apk', 'com.politedroid', '5', '1.4'),
+ ('repo/com.politedroid_6.apk', 'com.politedroid', '6', '1.5'),
+ ('repo/duplicate.permisssions_9999999.apk', 'duplicate.permisssions', '9999999', ''),
+ ('repo/info.zwanenburg.caffeinetile_4.apk', 'info.zwanenburg.caffeinetile', '4', '1.3'),
+ ('repo/obb.main.oldversion_1444412523.apk', 'obb.main.oldversion', '1444412523', '0.1'),
+ ('repo/obb.mainpatch.current_1619_another-release-key.apk', 'obb.mainpatch.current', '1619', '0.1'),
+ ('repo/obb.mainpatch.current_1619.apk', 'obb.mainpatch.current', '1619', '0.1'),
+ ('repo/obb.main.twoversions_1101613.apk', 'obb.main.twoversions', '1101613', '0.1'),
+ ('repo/obb.main.twoversions_1101615.apk', 'obb.main.twoversions', '1101615', '0.1'),
+ ('repo/obb.main.twoversions_1101617.apk', 'obb.main.twoversions', '1101617', '0.1'),
+ ('repo/urzip-; Рахма́нинов, [rɐxˈmanʲɪnəf] سيرجي_رخمانينوف 谢尔盖·.apk', 'info.guardianproject.urzip', '100', '0.1'),
+ ]
+ for apkfilename, appid, versionCode, versionName in testcases:
+ print('\n\nAPKFILENAME\n', apkfilename)
+ if 'aapt' in config:
+ a, vc, vn = fdroidserver.common.get_apk_id_aapt(apkfilename)
+ self.assertEqual(appid, a)
+ self.assertEqual(versionCode, vc)
+ self.assertEqual(versionName, vn)
+ if fdroidserver.common.use_androguard():
+ a, vc, vn = fdroidserver.common.get_apk_id_androguard(apkfilename)
+ self.assertEqual(appid, a)
+ self.assertEqual(versionCode, vc)
+ self.assertEqual(versionName, vn)
with self.assertRaises(FDroidException):
- fdroidserver.common.get_apk_id_aapt('nope')
+ fdroidserver.common.get_apk_id('nope')
def test_get_minSdkVersion_aapt(self):
self.assertEqual(('1.9.8.1-ose', '197', 'at.bitfire.davdroid'),
fdroidserver.common.parse_androidmanifests(paths, app))
+ app = fdroidserver.metadata.App()
+ build = fdroidserver.metadata.Build()
+ build.gradle = ['libre']
+ app.builds = [build]
+ app.id = 'com.kunzisoft.fdroidtest.applicationidsuffix.libre'
+ paths = [
+ os.path.join(source_files_dir, 'com.kunzisoft.testcase', 'build.gradle'),
+ ]
+ for path in paths:
+ self.assertTrue(os.path.isfile(path))
+ self.assertEqual(('1.0-libre', '1', 'com.kunzisoft.fdroidtest.applicationidsuffix.libre'),
+ fdroidserver.common.parse_androidmanifests(paths, app))
+
+ app = fdroidserver.metadata.App()
+ build = fdroidserver.metadata.Build()
+ build.gradle = ['pro']
+ app.builds = [build]
+ app.id = 'com.kunzisoft.fdroidtest.applicationidsuffix.pro'
+ paths = [
+ os.path.join(source_files_dir, 'com.kunzisoft.testcase', 'build.gradle'),
+ ]
+ for path in paths:
+ self.assertTrue(os.path.isfile(path))
+ self.assertEqual(('20180430-pro', '20180430', 'com.kunzisoft.fdroidtest.applicationidsuffix.pro'),
+ fdroidserver.common.parse_androidmanifests(paths, app))
+
+ app = fdroidserver.metadata.App()
+ build = fdroidserver.metadata.Build()
+ build.gradle = ['free']
+ app.builds = [build]
+ app.id = 'com.kunzisoft.fdroidtest.applicationidsuffix'
+ paths = [
+ os.path.join(source_files_dir, 'com.kunzisoft.testcase', 'build.gradle'),
+ ]
+ for path in paths:
+ self.assertTrue(os.path.isfile(path))
+ self.assertEqual(('1.0-free', '1', 'com.kunzisoft.fdroidtest.applicationidsuffix'),
+ fdroidserver.common.parse_androidmanifests(paths, app))
+
if __name__ == "__main__":
parser = optparse.OptionParser()