aboutsummaryrefslogtreecommitdiff
path: root/catapult/devil/devil/android/apk_helper_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'catapult/devil/devil/android/apk_helper_test.py')
-rwxr-xr-xcatapult/devil/devil/android/apk_helper_test.py82
1 files changed, 69 insertions, 13 deletions
diff --git a/catapult/devil/devil/android/apk_helper_test.py b/catapult/devil/devil/android/apk_helper_test.py
index f7d077dd..12137db0 100755
--- a/catapult/devil/devil/android/apk_helper_test.py
+++ b/catapult/devil/devil/android/apk_helper_test.py
@@ -3,6 +3,8 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import unittest
+
from devil import base_error
from devil import devil_env
from devil.android import apk_helper
@@ -29,6 +31,31 @@ _MANIFEST_DUMP = """N: android=http://schemas.android.com/apk/res/android
E: service (line=7)
A: android:name(0x01010001)="org.chromium.RandomService" (Raw: "org.chromium.RandomService")
A: android:isolatedProcess(0x01010888)=(type 0x12)0xffffffff
+ E: activity (line=173)
+ A: android:name(0x01010003)=".MainActivity" (Raw: ".MainActivity")
+ E: intent-filter (line=177)
+ E: action (line=178)
+ A: android:name(0x01010003)="android.intent.action.MAIN" (Raw: "android.intent.action.MAIN")
+ E: category (line=180)
+ A: android:name(0x01010003)="android.intent.category.DEFAULT" (Raw: "android.intent.category.DEFAULT")
+ E: category (line=181)
+ A: android:name(0x01010003)="android.intent.category.LAUNCHER" (Raw: "android.intent.category.LAUNCHER")
+ E: activity-alias (line=173)
+ A: android:name(0x01010003)="org.chromium.ViewActivity" (Raw: "org.chromium.ViewActivity")
+ A: android:targetActivity(0x01010202)="org.chromium.ActivityName" (Raw: "org.chromium.ActivityName")
+ E: intent-filter (line=191)
+ E: action (line=192)
+ A: android:name(0x01010003)="android.intent.action.VIEW" (Raw: "android.intent.action.VIEW")
+ E: data (line=198)
+ A: android:scheme(0x01010027)="http" (Raw: "http")
+ E: data (line=199)
+ A: android:scheme(0x01010027)="https" (Raw: "https")
+ E: meta-data (line=43)
+ A: android:name(0x01010003)="name1" (Raw: "name1")
+ A: android:value(0x01010024)="value1" (Raw: "value1")
+ E: meta-data (line=43)
+ A: android:name(0x01010003)="name2" (Raw: "name2")
+ A: android:value(0x01010024)="value2" (Raw: "value2")
E: instrumentation (line=8)
A: android:label(0x01010001)="abc" (Raw: "abc")
A: android:name(0x01010003)="org.chromium.RandomJUnit4TestRunner" (Raw: "org.chromium.RandomJUnit4TestRunner")
@@ -84,6 +111,14 @@ _SINGLE_J4_INSTRUMENTATION_MANIFEST_DUMP = """N: android=http://schemas.android.
A: junit4=(type 0x12)0xffffffff (Raw: "true")
"""
+_NO_NAMESPACE_MANIFEST_DUMP = """E: manifest (line=1)
+ A: package="org.chromium.xyz" (Raw: "org.chromium.xyz")
+ E: instrumentation (line=8)
+ A: http://schemas.android.com/apk/res/android:label(0x01010001)="xyz" (Raw: "xyz")
+ 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")
+"""
+
def _MockAaptDump(manifest_dump):
return mock.patch(
@@ -94,19 +129,25 @@ class ApkHelperTest(mock_calls.TestCase):
def testGetInstrumentationName(self):
with _MockAaptDump(_MANIFEST_DUMP):
- helper = apk_helper.ApkHelper("")
+ helper = apk_helper.ApkHelper('')
with self.assertRaises(base_error.BaseError):
helper.GetInstrumentationName()
def testGetActivityName(self):
with _MockAaptDump(_MANIFEST_DUMP):
- helper = apk_helper.ApkHelper("")
+ helper = apk_helper.ApkHelper('')
+ self.assertEquals(
+ helper.GetActivityName(), 'org.chromium.abc.MainActivity')
+
+ def testGetViewActivityName(self):
+ with _MockAaptDump(_MANIFEST_DUMP):
+ helper = apk_helper.ApkHelper('')
self.assertEquals(
- helper.GetActivityName(), 'org.chromium.ActivityName')
+ helper.GetViewActivityName(), 'org.chromium.ViewActivity')
def testGetAllInstrumentations(self):
with _MockAaptDump(_MANIFEST_DUMP):
- helper = apk_helper.ApkHelper("")
+ helper = apk_helper.ApkHelper('')
all_instrumentations = helper.GetAllInstrumentations()
self.assertEquals(len(all_instrumentations), 2)
self.assertEquals(all_instrumentations[0]['android:name'],
@@ -116,12 +157,12 @@ class ApkHelperTest(mock_calls.TestCase):
def testGetPackageName(self):
with _MockAaptDump(_MANIFEST_DUMP):
- helper = apk_helper.ApkHelper("")
+ helper = apk_helper.ApkHelper('')
self.assertEquals(helper.GetPackageName(), 'org.chromium.abc')
def testGetPermssions(self):
with _MockAaptDump(_MANIFEST_DUMP):
- helper = apk_helper.ApkHelper("")
+ helper = apk_helper.ApkHelper('')
all_permissions = helper.GetPermissions()
self.assertEquals(len(all_permissions), 3)
self.assertTrue('android.permission.INTERNET' in all_permissions)
@@ -132,38 +173,53 @@ class ApkHelperTest(mock_calls.TestCase):
def testGetSplitName(self):
with _MockAaptDump(_MANIFEST_DUMP):
- helper = apk_helper.ApkHelper("")
+ helper = apk_helper.ApkHelper('')
self.assertEquals(helper.GetSplitName(), 'random_split')
def testHasIsolatedProcesses_noApplication(self):
with _MockAaptDump(_NO_APPLICATION):
- helper = apk_helper.ApkHelper("")
+ helper = apk_helper.ApkHelper('')
self.assertFalse(helper.HasIsolatedProcesses())
def testHasIsolatedProcesses_noServices(self):
with _MockAaptDump(_NO_SERVICES):
- helper = apk_helper.ApkHelper("")
+ helper = apk_helper.ApkHelper('')
self.assertFalse(helper.HasIsolatedProcesses())
def testHasIsolatedProcesses_oneNotIsolatedProcess(self):
with _MockAaptDump(_NO_ISOLATED_SERVICES):
- helper = apk_helper.ApkHelper("")
+ helper = apk_helper.ApkHelper('')
self.assertFalse(helper.HasIsolatedProcesses())
def testHasIsolatedProcesses_oneIsolatedProcess(self):
with _MockAaptDump(_MANIFEST_DUMP):
- helper = apk_helper.ApkHelper("")
+ helper = apk_helper.ApkHelper('')
self.assertTrue(helper.HasIsolatedProcesses())
def testGetSingleInstrumentationName(self):
with _MockAaptDump(_SINGLE_INSTRUMENTATION_MANIFEST_DUMP):
- helper = apk_helper.ApkHelper("")
+ helper = apk_helper.ApkHelper('')
self.assertEquals('org.chromium.RandomTestRunner',
helper.GetInstrumentationName())
def testGetSingleJUnit4InstrumentationName(self):
with _MockAaptDump(_SINGLE_J4_INSTRUMENTATION_MANIFEST_DUMP):
- helper = apk_helper.ApkHelper("")
+ helper = apk_helper.ApkHelper('')
self.assertEquals('org.chromium.RandomJ4TestRunner',
helper.GetInstrumentationName())
+ def testGetAllMetadata(self):
+ with _MockAaptDump(_MANIFEST_DUMP):
+ helper = apk_helper.ApkHelper('')
+ self.assertEquals([('name1', 'value1'), ('name2', 'value2')],
+ helper.GetAllMetadata())
+
+ def testGetSingleInstrumentationName_strippedNamespaces(self):
+ with _MockAaptDump(_NO_NAMESPACE_MANIFEST_DUMP):
+ helper = apk_helper.ApkHelper('')
+ self.assertEquals('org.chromium.RandomTestRunner',
+ helper.GetInstrumentationName())
+
+
+if __name__ == '__main__':
+ unittest.main(verbosity=2)