Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / build / android / pylib / uirobot / uirobot_test_instance.py
blob1891ab7782b78deb54cc018b1d7660f80e7ab36f
1 # Copyright 2014 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.
5 import json
6 import logging
8 from devil.android import apk_helper
9 from pylib.base import test_instance
11 class UirobotTestInstance(test_instance.TestInstance):
13 def __init__(self, args, error_func):
14 """Constructor.
16 Args:
17 args: Command line arguments.
18 """
19 super(UirobotTestInstance, self).__init__()
20 if not args.app_under_test:
21 error_func('Must set --app-under-test.')
22 self._app_under_test = args.app_under_test
23 self._minutes = args.minutes
25 if args.remote_device_file:
26 with open(args.remote_device_file) as remote_device_file:
27 device_json = json.load(remote_device_file)
28 else:
29 device_json = {}
30 device_type = device_json.get('device_type', 'Android')
31 if args.device_type:
32 if device_type and device_type != args.device_type:
33 logging.info('Overriding device_type from %s to %s',
34 device_type, args.device_type)
35 device_type = args.device_type
37 if device_type == 'Android':
38 self._suite = 'Android Uirobot'
39 self._package_name = apk_helper.GetPackageName(self._app_under_test)
40 elif device_type == 'iOS':
41 self._suite = 'iOS Uirobot'
42 self._package_name = self._app_under_test
45 #override
46 def TestType(self):
47 """Returns type of test."""
48 return 'uirobot'
50 #override
51 def SetUp(self):
52 """Setup for test."""
53 pass
55 #override
56 def TearDown(self):
57 """Teardown for test."""
58 pass
60 @property
61 def app_under_test(self):
62 """Returns the app to run the test on."""
63 return self._app_under_test
65 @property
66 def minutes(self):
67 """Returns the number of minutes to run the uirobot for."""
68 return self._minutes
70 @property
71 def package_name(self):
72 """Returns the name of the package in the APK."""
73 return self._package_name
75 @property
76 def suite(self):
77 return self._suite