| OLD | NEW |
| 1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 """Class representing instrumentation test apk and jar.""" | 5 """Class representing instrumentation test apk and jar.""" |
| 6 | 6 |
| 7 import os | 7 import os |
| 8 | 8 |
| 9 from devil.android import apk_helper | 9 from devil.android import apk_helper |
| 10 from pylib.instrumentation import test_jar | 10 from pylib.instrumentation import test_jar |
| 11 | 11 |
| 12 | 12 |
| 13 class TestPackage(test_jar.TestJar): | 13 class TestPackage(test_jar.TestJar): |
| 14 def __init__(self, apk_path, jar_path, test_support_apk_path): | 14 def __init__(self, apk_path, jar_path, test_support_apk_path, |
| 15 additional_apks=None, apk_under_test=None): |
| 15 test_jar.TestJar.__init__(self, jar_path) | 16 test_jar.TestJar.__init__(self, jar_path) |
| 16 | 17 |
| 17 if not os.path.exists(apk_path): | 18 if not os.path.exists(apk_path): |
| 18 raise Exception('%s not found, please build it' % apk_path) | 19 raise Exception('%s not found, please build it' % apk_path) |
| 20 self._additional_apks = additional_apks or [] |
| 21 self._apk_name = os.path.splitext(os.path.basename(apk_path))[0] |
| 19 self._apk_path = apk_path | 22 self._apk_path = apk_path |
| 20 self._apk_name = os.path.splitext(os.path.basename(apk_path))[0] | 23 self._apk_under_test = apk_under_test |
| 21 self._package_name = apk_helper.GetPackageName(self._apk_path) | 24 self._package_name = apk_helper.GetPackageName(self._apk_path) |
| 22 self._test_support_apk_path = test_support_apk_path | 25 self._test_support_apk_path = test_support_apk_path |
| 23 | 26 |
| 24 def GetApkPath(self): | 27 def GetApkPath(self): |
| 25 """Returns the absolute path to the APK.""" | 28 """Returns the absolute path to the APK.""" |
| 26 return self._apk_path | 29 return self._apk_path |
| 27 | 30 |
| 28 def GetApkName(self): | 31 def GetApkName(self): |
| 29 """Returns the name of the apk without the suffix.""" | 32 """Returns the name of the apk without the suffix.""" |
| 30 return self._apk_name | 33 return self._apk_name |
| 31 | 34 |
| 32 def GetPackageName(self): | 35 def GetPackageName(self): |
| 33 """Returns the package name of this APK.""" | 36 """Returns the package name of this APK.""" |
| 34 return self._package_name | 37 return self._package_name |
| 35 | 38 |
| 36 # Override. | 39 # Override. |
| 37 def Install(self, device): | 40 def Install(self, device): |
| 41 if self._apk_under_test: |
| 42 device.Install(self._apk_under_test) |
| 38 device.Install(self.GetApkPath()) | 43 device.Install(self.GetApkPath()) |
| 39 if (self._test_support_apk_path and | 44 if (self._test_support_apk_path and |
| 40 os.path.exists(self._test_support_apk_path)): | 45 os.path.exists(self._test_support_apk_path)): |
| 41 device.Install(self._test_support_apk_path) | 46 device.Install(self._test_support_apk_path) |
| 47 for apk in (a for a in self._additional_apks if os.path.exists(a)): |
| 48 device.Install(apk) |
| OLD | NEW |