| # 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 |
| from autotest_lib.client.common_lib import utils |
| |
| KIOSK_MODE = 'Starting kiosk mode...' |
| |
| |
| class policy_KioskModeEnabled( |
| enterprise_policy_base.EnterprisePolicyTest): |
| """Test for verifying that the DUT entered kiosk mode.""" |
| version = 1 |
| |
| |
| def run_once(self): |
| """Entry point of this test.""" |
| |
| # ID of the kiosk app to start. |
| kId = 'afhcomalholahplbjhnmahkoekoijban' |
| |
| self.DEVICE_POLICIES = { |
| 'DeviceLocalAccounts':[ |
| {'account_id': kId, 'kiosk_app':{'app_id': kId}, 'type': 1}], |
| 'DeviceLocalAccountAutoLoginId':kId |
| } |
| |
| self.setup_case( |
| device_policies=self.DEVICE_POLICIES, |
| enroll=True, |
| kiosk_mode=True, |
| auto_login=False) |
| running_apps = utils.system_output( |
| 'cat /var/log/messages | grep kiosk') |
| # Currently this is the best way I can think of to check if DUT entered |
| # kiosk mode. This isn't ideal but it's better than what we have now. |
| # TODO(rzakarian): Find another way to verify that kiosk mode is up. |
| # crbug.com/934500. |
| if KIOSK_MODE not in running_apps: |
| raise error.TestFail( |
| 'DUT did not enter kiosk mode. and it should have.') |