summaryrefslogtreecommitdiff
path: root/systrace/catapult/devil/devil/android/apk_helper_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'systrace/catapult/devil/devil/android/apk_helper_test.py')
-rwxr-xr-xsystrace/catapult/devil/devil/android/apk_helper_test.py157
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)