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.utils import apk_helper
10
11import test_jar
12
13
14class 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