Home | History | Annotate | Download | only in functional
      1 # Copyright (c) 2012 The Chromium 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 import pyauto_functional  # Must come before pyauto (and thus, policy_base).
      6 import policy_base
      7 
      8 
      9 class ChromeosRetailMode(policy_base.PolicyTestBase):
     10   """Tests for retail mode."""
     11 
     12   # The inherited setUp() method fakes enterprise enrollment. Setting the mode
     13   # to 'kiosk' causes enrollment into retail mode instead of the default
     14   # enterprise mode.
     15   mode = 'kiosk'
     16   machine_id = 'KIOSK'
     17 
     18   def ShouldOOBESkipToLogin(self):
     19     # There's no OOBE to skip.
     20     return False
     21 
     22   def _CheckOnRetailModeLoginScreen(self):
     23     """Checks that the retail mode login screen is visible."""
     24     return self.ExecuteJavascriptInOOBEWebUI(
     25         """window.domAutomationController.send(
     26                !!document.getElementById('demo-login-text'));
     27         """)
     28 
     29   def Login(self):
     30     """Login to retail mode by simulating a mouse click."""
     31     self.ExecuteJavascriptInOOBEWebUI(
     32         """var event = document.createEvent("MouseEvent");
     33            event.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0,
     34                false, false, false, false, 0, null);
     35            window.domAutomationController.send(
     36               document.getElementById('page').dispatchEvent(event));
     37         """)
     38 
     39   def testLogin(self):
     40     """Tests retail mode login."""
     41     self.assertTrue(self._CheckOnRetailModeLoginScreen(),
     42                     msg='Expected to be on the retail mode login screen.')
     43 
     44     self.Login()
     45     self.assertTrue(self.GetLoginInfo()['is_logged_in'],
     46                     msg='Expected to be logged in.')
     47     self.Logout()
     48 
     49 
     50 if __name__ == '__main__':
     51   pyauto_functional.Main()
     52