普通文本  |  50行  |  1.68 KB

# 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)