Add Apps.AppListSearchQueryLength UMA histogram.
[chromium-blink-merge.git] / build / android / pylib / uirobot / uirobot_test_instance.py
blobe3f6eb705899305657034fb3072ba720a2591570
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 os
6 import json
7 import logging
9 from pylib import constants
10 from pylib.base import test_instance
11 from pylib.utils import apk_helper
13 class UirobotTestInstance(test_instance.TestInstance):
15 def __init__(self, args, error_func):
16 """Constructor.
18 Args:
19 args: Command line arguments.
20 """
21 super(UirobotTestInstance, self).__init__()
22 if not args.app_under_test:
23 error_func('Must set --app-under-test.')
24 self._app_under_test = args.app_under_test
25 self._minutes = args.minutes
27 if args.remote_device_file:
28 with open(args.remote_device_file) as remote_device_file:
29 device_json = json.load(remote_device_file)
30 else:
31 device_json = {}
32 device_type = device_json.get('device_type', 'Android')
33 if args.device_type:
34 if device_type and device_type != args.device_type:
35 logging.info('Overriding device_type from %s to %s',
36 device_type, args.device_type)
37 device_type = args.device_type
39 if device_type == 'Android':
40 self._suite = 'Android Uirobot'
41 self._package_name = apk_helper.GetPackageName(self._app_under_test)
42 elif device_type == 'iOS':
43 self._suite = 'iOS Uirobot'
44 self._package_name = self._app_under_test
47 #override
48 def TestType(self):
49 """Returns type of test."""
50 return 'uirobot'
52 #override
53 def SetUp(self):
54 """Setup for test."""
55 pass
57 #override
58 def TearDown(self):
59 """Teardown for test."""
60 pass
62 @property
63 def app_under_test(self):
64 """Returns the app to run the test on."""
65 return self._app_under_test
67 @property
68 def minutes(self):
69 """Returns the number of minutes to run the uirobot for."""
70 return self._minutes
72 @property
73 def package_name(self):
74 """Returns the name of the package in the APK."""
75 return self._package_name
77 @property
78 def suite(self):
79 return self._suite