1# Copyright 2014 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 5import logging, os, time 6 7from autotest_lib.client.bin import test, utils 8from autotest_lib.client.common_lib import error 9from autotest_lib.client.common_lib.cros import chrome, enrollment, cfm_util 10 11TIMEOUT = 20 12 13class enterprise_RemoraRequisition(test.test): 14 """Enroll as a Remora device.""" 15 version = 1 16 17 _HANGOUTS_EXT_ID = 'ikfcpmgefdpheiiomgmhlmmkihchmdlj' 18 19 def _CheckHangoutsExtensionContexts(self, browser): 20 ext_contexts = cfm_util.wait_for_kiosk_ext( 21 browser, self._HANGOUTS_EXT_ID) 22 ext_urls = set([context.EvaluateJavaScript('location.href;') 23 for context in ext_contexts]) 24 expected_urls = set( 25 ['chrome-extension://' + self._HANGOUTS_EXT_ID + '/' + path 26 for path in ['hangoutswindow.html?windowid=0', 27 '_generated_background_page.html']]) 28 if expected_urls != ext_urls: 29 raise error.TestFail( 30 'Unexpected extension context urls, expected %s, got %s' 31 % (expected_urls, ext_urls)) 32 33 34 def run_once(self): 35 user_id, password = utils.get_signin_credentials(os.path.join( 36 os.path.dirname(os.path.realpath(__file__)), 'credentials.txt')) 37 if not (user_id and password): 38 logging.warn('No credentials found - exiting test.') 39 return 40 41 with chrome.Chrome(auto_login=False, 42 disable_gaia_services=False) as cr: 43 enrollment.RemoraEnrollment(cr.browser, user_id, password) 44 # Timeout to allow for the device to stablize and go back to the 45 # login screen before proceeding. 46 time.sleep(TIMEOUT) 47 48 # This is a workaround fix for crbug.com/495847. A more permanent fix 49 # should be to get the hotrod app to auto launch after enrollment. 50 with chrome.Chrome(clear_enterprise_policy=False, 51 dont_override_profile=True, 52 disable_gaia_services=False, 53 disable_default_apps=False, 54 auto_login=False) as cr: 55 self._CheckHangoutsExtensionContexts(cr.browser) 56