# Copyright 2018 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 from autotest_lib.client.common_lib.cros import chrome, enrollment from autotest_lib.client.common_lib import error from py_utils import TimeoutException class enterprise_RemoraRequisitionDisplayUsage(test.test): """Start enrollment and ensure that the window is shown on a Mimo display""" version = 1 def supports_display_fetching(self, oobe): """Return whether Chromium supports fetching the primary display name""" oobe.WaitForJavaScriptCondition( 'typeof Oobe !== \'undefined\'', timeout=10) return oobe.EvaluateJavaScript( '"getPrimaryDisplayNameForTesting" in Oobe') def assert_mimo_is_primary(self, oobe): """Fails the test if the Mimo is not the primary display""" oobe.ExecuteJavaScript('window.__oobe_display = ""') mimo_is_primary = ("Oobe.getPrimaryDisplayNameForTesting().then(" "display => window.__oobe_display = display);" "window.__oobe_display.indexOf('MIMO') >= 0") try: oobe.WaitForJavaScriptCondition(mimo_is_primary, timeout=10) except TimeoutException: display = oobe.EvaluateJavaScript('window.__oobe_display') raise error.TestFail( 'Primary display is {}, not Mimo'.format(display)) def run_once(self): with chrome.Chrome(auto_login=False) as cr: enrollment.SwitchToRemora(cr.browser) if not self.supports_display_fetching(cr.browser.oobe): return self.assert_mimo_is_primary(cr.browser.oobe)