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 3# found in the LICENSE file. 4 5"""Class representing instrumentation test apk and jar.""" 6 7import os 8 9from pylib.instrumentation import test_jar 10from pylib.utils import apk_helper 11 12 13class TestPackage(test_jar.TestJar): 14 def __init__(self, apk_path, jar_path, test_support_apk_path): 15 test_jar.TestJar.__init__(self, jar_path) 16 17 if not os.path.exists(apk_path): 18 raise Exception('%s not found, please build it' % apk_path) 19 self._apk_path = apk_path 20 self._apk_name = os.path.splitext(os.path.basename(apk_path))[0] 21 self._package_name = apk_helper.GetPackageName(self._apk_path) 22 self._test_support_apk_path = test_support_apk_path 23 24 def GetApkPath(self): 25 """Returns the absolute path to the APK.""" 26 return self._apk_path 27 28 def GetApkName(self): 29 """Returns the name of the apk without the suffix.""" 30 return self._apk_name 31 32 def GetPackageName(self): 33 """Returns the package name of this APK.""" 34 return self._package_name 35 36 # Override. 37 def Install(self, device): 38 device.Install(self.GetApkPath()) 39 if (self._test_support_apk_path and 40 os.path.exists(self._test_support_apk_path)): 41 device.Install(self._test_support_apk_path) 42 43