| # 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.bin import test, utils |
| from autotest_lib.client.common_lib.cros import chrome, enrollment |
| from telemetry.core import exceptions |
| |
| # Id of the Infinite Painter app. |
| _INFINITE_PAINTER_APP_ID = 'afihfgfghkmdmggakhkgnfhlikhdpima' |
| |
| def _launch_arc_app(autotest_ext, app_id): |
| try: |
| autotest_ext.ExecuteJavaScript(''' |
| chrome.autotestPrivate.launchArcApp( |
| '%s', /* app_id */ |
| '%s', /* intent */ |
| function(app_launched) { |
| window.__app_launched = app_launched; |
| }); |
| ''' % (app_id, 'intent')) |
| return autotest_ext.EvaluateJavaScript('window.__app_launched') |
| except exceptions.EvaluateException as e: |
| pass |
| return False |
| |
| class enterprise_OnlineDemoModeEnrollment(test.test): |
| """Enrolls to online demo mode.""" |
| version = 1 |
| |
| |
| def run_once(self): |
| """Starts online demo mode enrollment. Waits for active session to start |
| and launch an arc app. |
| """ |
| with chrome.Chrome( |
| auto_login=False, |
| disable_gaia_services=False, |
| autotest_ext=True, |
| extra_browser_args='--force-devtools-available') as cr: |
| enrollment.OnlineDemoMode(cr.browser) |
| utils.poll_for_condition( |
| condition=lambda: _launch_arc_app(cr.autotest_ext, |
| _INFINITE_PAINTER_APP_ID), |
| desc='Launching the app %s' % |
| _INFINITE_PAINTER_APP_ID, |
| timeout=300, |
| sleep_interval=1) |