Home | History | Annotate | Download | only in enterprise_OnlineDemoModeEnrollment
      1 # Copyright 2019 The Chromium OS Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 from autotest_lib.client.bin import test, utils
      6 from autotest_lib.client.common_lib.cros import chrome, enrollment
      7 from telemetry.core import exceptions
      8 
      9 # Id of the Infinite Painter app.
     10 _INFINITE_PAINTER_APP_ID = 'afihfgfghkmdmggakhkgnfhlikhdpima'
     11 
     12 def _launch_arc_app(autotest_ext, app_id):
     13     try:
     14         autotest_ext.ExecuteJavaScript('''
     15             chrome.autotestPrivate.launchArcApp(
     16               '%s', /* app_id */
     17               '%s', /* intent */
     18               function(app_launched) {
     19                 window.__app_launched = app_launched;
     20             });
     21         ''' % (app_id, 'intent'))
     22         return autotest_ext.EvaluateJavaScript('window.__app_launched')
     23     except exceptions.EvaluateException as e:
     24         pass
     25     return False
     26 
     27 class enterprise_OnlineDemoModeEnrollment(test.test):
     28     """Enrolls to online demo mode."""
     29     version = 1
     30 
     31 
     32     def run_once(self):
     33         """Starts online demo mode enrollment. Waits for active session to start
     34            and launch an arc app.
     35         """
     36         with chrome.Chrome(
     37                 auto_login=False,
     38                 disable_gaia_services=False,
     39                 autotest_ext=True,
     40                 extra_browser_args='--force-devtools-available') as cr:
     41             enrollment.OnlineDemoMode(cr.browser)
     42             utils.poll_for_condition(
     43                     condition=lambda: _launch_arc_app(cr.autotest_ext,
     44                             _INFINITE_PAINTER_APP_ID),
     45                     desc='Launching the app %s' %
     46                             _INFINITE_PAINTER_APP_ID,
     47                     timeout=300,
     48                     sleep_interval=1)