Index: build/android/devil/android/device_utils_test.py |
diff --git a/build/android/devil/android/device_utils_test.py b/build/android/devil/android/device_utils_test.py |
index ec641e9748606e354d9ec2867afbe962a16d3b10..ae389aa97ab3e7bd6885f0b3322e7829574beaf9 100755 |
--- a/build/android/devil/android/device_utils_test.py |
+++ b/build/android/devil/android/device_utils_test.py |
@@ -553,13 +553,51 @@ class DeviceUtilsRebootTest(DeviceUtilsTest): |
class DeviceUtilsInstallTest(DeviceUtilsTest): |
def testInstall_noPriorInstall(self): |
+ with self.patch_call(self.call.device.build_version_sdk, return_value=23): |
+ with self.assertCalls( |
+ (mock.call.devil.android.apk_helper.GetPackageName( |
+ '/fake/test/app.apk'), |
+ 'test.package'), |
+ (self.call.device._GetApplicationPathsInternal('test.package'), []), |
+ self.call.adb.Install('/fake/test/app.apk', reinstall=False), |
+ (mock.call.devil.android.apk_helper.ApkHelper.GetPermissions(), |
+ ['p1']), |
+ (self.call.device.GrantPermissions('test.package', ['p1']), [])): |
+ self.device.Install('/fake/test/app.apk', retries=0) |
+ |
+ def testIntsall_permissionsPreM(self): |
+ with self.patch_call(self.call.device.build_version_sdk, return_value=20): |
+ with self.assertCalls( |
+ (mock.call.devil.android.apk_helper.GetPackageName( |
+ '/fake/test/app.apk'), |
+ 'test.package'), |
+ (self.call.device._GetApplicationPathsInternal('test.package'), []), |
+ (self.call.adb.Install('/fake/test/app.apk', reinstall=False))): |
+ self.device.Install('/fake/test/app.apk', retries=0) |
+ |
+ def testInstall_findPermissions(self): |
+ with self.patch_call(self.call.device.build_version_sdk, return_value=23): |
+ with self.assertCalls( |
+ (mock.call.devil.android.apk_helper.GetPackageName( |
+ '/fake/test/app.apk'), |
+ 'test.package'), |
+ (self.call.device._GetApplicationPathsInternal('test.package'), []), |
+ (self.call.adb.Install('/fake/test/app.apk', reinstall=False)), |
+ (mock.call.devil.android.apk_helper.ApkHelper.GetPermissions(), |
+ ['p1']), |
+ (self.call.device.GrantPermissions('test.package', ['p1']), [])): |
+ self.device.Install('/fake/test/app.apk', retries=0) |
+ |
+ def testInstall_passPermissions(self): |
with self.assertCalls( |
(mock.call.devil.android.apk_helper.GetPackageName( |
'/fake/test/app.apk'), |
'test.package'), |
(self.call.device._GetApplicationPathsInternal('test.package'), []), |
- self.call.adb.Install('/fake/test/app.apk', reinstall=False)): |
- self.device.Install('/fake/test/app.apk', retries=0) |
+ (self.call.adb.Install('/fake/test/app.apk', reinstall=False)), |
+ (self.call.device.GrantPermissions('test.package', ['p1', 'p2']), [])): |
+ self.device.Install( |
+ '/fake/test/app.apk', retries=0, permissions=['p1', 'p2']) |
def testInstall_differentPriorInstall(self): |
with self.assertCalls( |
@@ -573,7 +611,7 @@ class DeviceUtilsInstallTest(DeviceUtilsTest): |
(['/fake/test/app.apk'], None)), |
self.call.adb.Uninstall('test.package', False), |
self.call.adb.Install('/fake/test/app.apk', reinstall=False)): |
- self.device.Install('/fake/test/app.apk', retries=0) |
+ self.device.Install('/fake/test/app.apk', retries=0, permissions=[]) |
def testInstall_differentPriorInstall_reinstall(self): |
with self.assertCalls( |
@@ -586,7 +624,8 @@ class DeviceUtilsInstallTest(DeviceUtilsTest): |
['/fake/test/app.apk']), |
(['/fake/test/app.apk'], None)), |
self.call.adb.Install('/fake/test/app.apk', reinstall=True)): |
- self.device.Install('/fake/test/app.apk', reinstall=True, retries=0) |
+ self.device.Install( |
+ '/fake/test/app.apk', reinstall=True, retries=0, permissions=[]) |
def testInstall_identicalPriorInstall(self): |
with self.assertCalls( |
@@ -598,7 +637,7 @@ class DeviceUtilsInstallTest(DeviceUtilsTest): |
(self.call.device._ComputeStaleApks('test.package', |
['/fake/test/app.apk']), |
([], None))): |
- self.device.Install('/fake/test/app.apk', retries=0) |
+ self.device.Install('/fake/test/app.apk', retries=0, permissions=[]) |
def testInstall_fails(self): |
with self.assertCalls( |
@@ -2006,6 +2045,33 @@ class DeviceUtilsRestartAdbdTest(DeviceUtilsTest): |
self.device.RestartAdbd() |
+class DeviceUtilsGrantPermissionsTest(DeviceUtilsTest): |
+ |
+ def testGrantPermissions_none(self): |
+ self.device.GrantPermissions('package', []) |
+ |
+ def testGrantPermissions_underM(self): |
+ with self.patch_call(self.call.device.build_version_sdk, |
+ return_value=20): |
+ self.device.GrantPermissions('package', ['p1']) |
+ |
+ def testGrantPermissions_one(self): |
+ permissions_cmd = 'pm grant package p1;' |
+ with self.patch_call(self.call.device.build_version_sdk, |
+ return_value=23): |
+ with self.assertCalls( |
+ (self.call.device.RunShellCommand(permissions_cmd), [])): |
+ self.device.GrantPermissions('package', ['p1']) |
+ |
+ def testGrantPermissions_multiple(self): |
+ permissions_cmd = 'pm grant package p1;pm grant package p2;' |
+ with self.patch_call(self.call.device.build_version_sdk, |
+ return_value=23): |
+ with self.assertCalls( |
+ (self.call.device.RunShellCommand(permissions_cmd), [])): |
+ self.device.GrantPermissions('package', ['p1', 'p2']) |
+ |
+ |
if __name__ == '__main__': |
logging.getLogger().setLevel(logging.DEBUG) |
unittest.main(verbosity=2) |