diff options
Diffstat (limited to 'systrace/catapult/devil/devil/android/apk_helper_test.py')
-rwxr-xr-x | systrace/catapult/devil/devil/android/apk_helper_test.py | 157 |
1 files changed, 0 insertions, 157 deletions
diff --git a/systrace/catapult/devil/devil/android/apk_helper_test.py b/systrace/catapult/devil/devil/android/apk_helper_test.py index 3258bb0..12137db 100755 --- a/systrace/catapult/devil/devil/android/apk_helper_test.py +++ b/systrace/catapult/devil/devil/android/apk_helper_test.py @@ -3,30 +3,21 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -import collections -import os import unittest from devil import base_error from devil import devil_env from devil.android import apk_helper -from devil.android.ndk import abis from devil.utils import mock_calls with devil_env.SysPath(devil_env.PYMOCK_PATH): import mock # pylint: disable=import-error -# pylint: disable=line-too-long _MANIFEST_DUMP = """N: android=http://schemas.android.com/apk/res/android E: manifest (line=1) - A: android:versionCode(0x0101021b)=(type 0x10)0x166de1ea - A: android:versionName(0x0101021c)="75.0.3763.0" (Raw: "75.0.3763.0") A: package="org.chromium.abc" (Raw: "org.chromium.abc") A: split="random_split" (Raw: "random_split") - E: uses-sdk (line=2) - A: android:minSdkVersion(0x0101020c)=(type 0x10)0x15 - A: android:targetSdkVersion(0x01010270)=(type 0x10)0x1c E: uses-permission (line=2) A: android:name(0x01010003)="android.permission.INTERNET" (Raw: "android.permission.INTERNET") E: uses-permission (line=3) @@ -120,14 +111,6 @@ _SINGLE_J4_INSTRUMENTATION_MANIFEST_DUMP = """N: android=http://schemas.android. A: junit4=(type 0x12)0xffffffff (Raw: "true") """ -_TARGETING_PRE_RELEASE_Q_MANIFEST_DUMP = """N: android=http://schemas.android.com/apk/res/android - E: manifest (line=1) - A: package="org.chromium.xyz" (Raw: "org.chromium.xyz") - E: uses-sdk (line=2) - A: android:minSdkVersion(0x0101020c)="Q" (Raw: "Q") - A: android:targetSdkVersion(0x01010270)="Q" (Raw: "Q") -""" - _NO_NAMESPACE_MANIFEST_DUMP = """E: manifest (line=1) A: package="org.chromium.xyz" (Raw: "org.chromium.xyz") E: instrumentation (line=8) @@ -135,7 +118,6 @@ _NO_NAMESPACE_MANIFEST_DUMP = """E: manifest (line=1) A: http://schemas.android.com/apk/res/android:name(0x01010003)="org.chromium.RandomTestRunner" (Raw: "org.chromium.RandomTestRunner") A: http://schemas.android.com/apk/res/android:targetPackage(0x01010021)="org.chromium.random_package" (Raw:"org.chromium.random_pacakge") """ -# pylint: enable=line-too-long def _MockAaptDump(manifest_dump): @@ -143,11 +125,6 @@ def _MockAaptDump(manifest_dump): 'devil.android.sdk.aapt.Dump', mock.Mock(side_effect=None, return_value=manifest_dump.split('\n'))) -def _MockListApkPaths(files): - return mock.patch( - 'devil.android.apk_helper.ApkHelper._ListApkPaths', - mock.Mock(side_effect=None, return_value=files)) - class ApkHelperTest(mock_calls.TestCase): def testGetInstrumentationName(self): @@ -237,146 +214,12 @@ class ApkHelperTest(mock_calls.TestCase): self.assertEquals([('name1', 'value1'), ('name2', 'value2')], helper.GetAllMetadata()) - def testGetVersionCode(self): - with _MockAaptDump(_MANIFEST_DUMP): - helper = apk_helper.ApkHelper('') - self.assertEquals(376300010, helper.GetVersionCode()) - - def testGetVersionName(self): - with _MockAaptDump(_MANIFEST_DUMP): - helper = apk_helper.ApkHelper('') - self.assertEquals('75.0.3763.0', helper.GetVersionName()) - - def testGetMinSdkVersion_integerValue(self): - with _MockAaptDump(_MANIFEST_DUMP): - helper = apk_helper.ApkHelper('') - self.assertEquals('21', helper.GetMinSdkVersion()) - - def testGetMinSdkVersion_stringValue(self): - with _MockAaptDump(_TARGETING_PRE_RELEASE_Q_MANIFEST_DUMP): - helper = apk_helper.ApkHelper('') - self.assertEquals('Q', helper.GetMinSdkVersion()) - - def testGetTargetSdkVersion_integerValue(self): - with _MockAaptDump(_MANIFEST_DUMP): - helper = apk_helper.ApkHelper('') - self.assertEquals('28', helper.GetTargetSdkVersion()) - - def testGetTargetSdkVersion_stringValue(self): - with _MockAaptDump(_TARGETING_PRE_RELEASE_Q_MANIFEST_DUMP): - helper = apk_helper.ApkHelper('') - self.assertEquals('Q', helper.GetTargetSdkVersion()) - def testGetSingleInstrumentationName_strippedNamespaces(self): with _MockAaptDump(_NO_NAMESPACE_MANIFEST_DUMP): helper = apk_helper.ApkHelper('') self.assertEquals('org.chromium.RandomTestRunner', helper.GetInstrumentationName()) - def testGetArchitectures(self): - AbiPair = collections.namedtuple('AbiPair', ['abi32bit', 'abi64bit']) - for abi_pair in [AbiPair('lib/' + abis.ARM, 'lib/' + abis.ARM_64), - AbiPair('lib/' + abis.X86, 'lib/' + abis.X86_64)]: - with _MockListApkPaths([abi_pair.abi32bit]): - helper = apk_helper.ApkHelper('') - self.assertEquals(set([os.path.basename(abi_pair.abi32bit), - os.path.basename(abi_pair.abi64bit)]), - set(helper.GetAbis())) - with _MockListApkPaths([abi_pair.abi32bit, abi_pair.abi64bit]): - helper = apk_helper.ApkHelper('') - self.assertEquals(set([os.path.basename(abi_pair.abi32bit), - os.path.basename(abi_pair.abi64bit)]), - set(helper.GetAbis())) - with _MockListApkPaths([abi_pair.abi64bit]): - helper = apk_helper.ApkHelper('') - self.assertEquals(set([os.path.basename(abi_pair.abi64bit)]), - set(helper.GetAbis())) - - def testParseXmlManifest(self): - self.assertEquals({ - 'manifest': [ - {'android:compileSdkVersion': '28', - 'android:versionCode': '2', - 'uses-sdk': [ - {'android:minSdkVersion': '24', - 'android:targetSdkVersion': '28'}], - 'uses-permission': [ - {'android:name': - 'android.permission.ACCESS_COARSE_LOCATION'}, - {'android:name': - 'android.permission.ACCESS_NETWORK_STATE'}], - 'application': [ - {'android:allowBackup': 'true', - 'android:extractNativeLibs': 'false', - 'android:fullBackupOnly': 'false', - 'meta-data': [ - {'android:name': 'android.allow_multiple', - 'android:value': 'true'}, - {'android:name': 'multiwindow', - 'android:value': 'true'}], - 'activity': [ - {'android:configChanges': '0x00001fb3', - 'android:excludeFromRecents': 'true', - 'android:name': 'ChromeLauncherActivity', - 'intent-filter': [ - {'action': [ - {'android:name': 'dummy.action'}], - 'category': [ - {'android:name': 'DAYDREAM'}, - {'android:name': 'CARDBOARD'}]}]}, - {'android:enabled': 'false', - 'android:name': 'MediaLauncherActivity', - 'intent-filter': [ - {'tools:ignore': 'AppLinkUrlError', - 'action': [{'android:name': 'VIEW'}], - 'category': [{'android:name': 'DEFAULT'}], - 'data': [ - {'android:mimeType': 'audio/*'}, - {'android:mimeType': 'image/*'}, - {'android:mimeType': 'video/*'}, - {'android:scheme': 'file'}, - {'android:scheme': 'content'}]}]}]}]}]}, - apk_helper.ParseManifestFromXml(""" - <manifest xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" - android:compileSdkVersion="28" android:versionCode="2"> - <uses-sdk android:minSdkVersion="24" android:targetSdkVersion="28"/> - <uses-permission - android:name="android.permission.ACCESS_COARSE_LOCATION"/> - <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> - <application android:allowBackup="true" - android:extractNativeLibs="false" - android:fullBackupOnly="false"> - <meta-data android:name="android.allow_multiple" - android:value="true"/> - <meta-data android:name="multiwindow" - android:value="true"/> - <activity android:configChanges="0x00001fb3" - android:excludeFromRecents="true" - android:name="ChromeLauncherActivity"> - <intent-filter> - <action android:name="dummy.action"/> - <category android:name="DAYDREAM"/> - <category android:name="CARDBOARD"/> - </intent-filter> - </activity> - <activity android:enabled="false" - android:name="MediaLauncherActivity"> - <intent-filter tools:ignore="AppLinkUrlError"> - <action android:name="VIEW"/> - - <category android:name="DEFAULT"/> - - <data android:mimeType="audio/*"/> - <data android:mimeType="image/*"/> - <data android:mimeType="video/*"/> - <data android:scheme="file"/> - <data android:scheme="content"/> - </intent-filter> - </activity> - </application> - </manifest>""")) - if __name__ == '__main__': unittest.main(verbosity=2) |