# Copyright (c) 2012 The Chromium OS Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. from autotest_lib.client.bin import utils from autotest_lib.client.common_lib.cros import arc, chrome class power_UiResume(arc.ArcTest): """ Suspend the system while simulating user behavior. If ARC is present, open ARC before suspending. If ARC is not present, log into Chrome before suspending. To suspend, call autotest power_Resume. This reduces duplicate code, while cover all 3 cases: with ARC, with Chrome but without ARC, and without Chrome. """ version = 3 def initialize(self): """ Entry point. Initialize ARC if it is enabled on the DUT, otherwise log in Chrome browser. """ self._arc_available = utils.is_arc_available() if self._arc_available: super(power_UiResume, self).initialize() else: self._chrome = chrome.Chrome() def run_once(self, max_devs_returned=10, seconds=0, ignore_kernel_warns=False): """ Run client side autotest power_Resume, to reduce duplicate code. """ self.job.run_test( 'power_Resume', max_devs_returned=max_devs_returned, seconds=seconds, ignore_kernel_warns=ignore_kernel_warns, measure_arc=self._arc_available) def cleanup(self): """ Clean up ARC if it is enabled on the DUT, otherwise close the Chrome browser. """ if self._arc_available: super(power_UiResume, self).cleanup() else: self._chrome.close()