blob: b2e9e98ef636cd56edd35c4d50897ff1dfd61f11 [file] [log] [blame]
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import logging
import time
import unittest
from telemetry.core import platform as platform_module
from telemetry import decorators
class PlatformBackendTest(unittest.TestCase):
@decorators.Disabled('mac', # crbug.com/440666
'vista', # crbug.com/479337
'chromeos') # crbug.com/483212
def testPowerMonitoringSync(self):
# Tests that the act of monitoring power doesn't blow up.
platform = platform_module.GetHostPlatform()
can_monitor_power = platform.CanMonitorPower()
self.assertIsInstance(can_monitor_power, bool)
if not can_monitor_power:
logging.warning('Test not supported on this platform.')
return
browser_mock = lambda: None
# Android needs to access the package of the monitored app.
if platform.GetOSName() == 'android':
# pylint: disable=protected-access
browser_mock._browser_backend = lambda: None
# Monitor the launcher, which is always present.
browser_mock._browser_backend.package = 'com.android.launcher'
platform.StartMonitoringPower(browser_mock)
time.sleep(0.001)
output = platform.StopMonitoringPower()
self.assertTrue(output.has_key('energy_consumption_mwh'))
self.assertTrue(output.has_key('identifier'))