diff options
Diffstat (limited to 'catapult/devil/devil/android/apk_helper_test.py')
-rwxr-xr-x | catapult/devil/devil/android/apk_helper_test.py | 82 |
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) |