Home | History | Annotate | Download | only in instrumentation
      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 
      7 import os
      8 
      9 from pylib.instrumentation import test_jar
     10 from pylib.utils import apk_helper
     11 
     12 
     13 class 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