# Copyright 2019 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.common_lib import error from autotest_lib.client.cros.enterprise import enterprise_policy_base class policy_PolicyRefreshRate( enterprise_policy_base.EnterprisePolicyTest): """ Test effect of policy_PolicyRefreshRate policy on Chrome OS. """ version = 1 def check_refresh_rate(self, case): """ Will check the policy refresh rate from chrome://policy, and verify that the text returned alligns with the policy configured. @param case: Name of the test case to run. """ tab = self.navigate_to_url('chrome://policy') js_text_query = "document.querySelector('{}').innerText" refresh_interval_js = '#status-box-container div.refresh-interval' # Grab the policy refresh as shown at the top of the page, not from # the policy table. refresh_interval = tab.EvaluateJavaScript( js_text_query.format(refresh_interval_js)) if case <= 1800000: expected_refresh = '30 mins' elif case >= 86400000: expected_refresh = '1 day' if refresh_interval != expected_refresh: raise error.TestFail('Policy refresh incorrect. Got {} expected {}' .format(refresh_interval, expected_refresh)) def run_once(self, case): """ @param case: Name of the test case to run. """ self.setup_case(user_policies={'PolicyRefreshRate': case}) self.check_refresh_rate(case)