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.utils import apk_helper
     10 
     11 import test_jar
     12 
     13 
     14 class TestPackage(test_jar.TestJar):
     15   def __init__(self, apk_path, jar_path):
     16     test_jar.TestJar.__init__(self, jar_path)
     17 
     18     if not os.path.exists(apk_path):
     19       raise Exception('%s not found, please build it' % apk_path)
     20     self._apk_path = apk_path
     21     self._apk_name = os.path.splitext(os.path.basename(apk_path))[0]
     22     self._package_name = apk_helper.GetPackageName(self._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, adb):
     38     adb.ManagedInstall(self.GetApkPath(), package_name=self.GetPackageName())
     39