# 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.common_lib.cros import arc from autotest_lib.client.cros.enterprise import enterprise_policy_base class policy_ArcAudioCaptureAllowed( enterprise_policy_base.EnterprisePolicyTest): """ Test effect of the ArcAudioCaptureAllowed ChromeOS policy on ARC. This test will launch the ARC container via the ArcEnabled policy, then will verify the status of the mic using dumpsys. If mic can't be unmuted then the policy has been set to False. If mic can be unmuted then it's set to True or None. """ version = 1 def _test_microphone_status(self, case): microphone_status = arc.adb_shell("dumpsys | grep microphone") if case or case is None: if "no_unmute_microphone" in microphone_status: raise error.TestFail( "Microphone is muted and it shouldn't be.") else: if "no_unmute_microphone" not in microphone_status: raise error.TestFail( "Micprophone isn't muted and it should be.") def policy_creator(self, case): pol = {'ArcEnabled': True, 'AudioCaptureAllowed': case} return pol def run_once(self, case): """ Setup and run the test configured for the specified test case. @param case: Name of the test case to run. """ policies = self.policy_creator(case) self.setup_case(user_policies=policies, arc_mode='enabled', use_clouddpc_test=False) self._test_microphone_status(case)