blob: 5cdc2b9e68ce81b94748fe9be25250f7954f16fc [file] [log] [blame]
# Copyright (c) 2013 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 import error
from autotest_lib.client.common_lib.cros import chrome
class telemetry_LoginTest_P(test.test):
"""This is a client side Telemetry Login Test."""
version = 1
def _get_login_status(self, cr):
login_status = cr.login_status
if not login_status:
raise error.TestFail('Failed to get LoginStatus')
if type(login_status) != dict:
raise error.TestFail('LoginStatus type mismatch %r'
% type(login_status))
is_regular_user = login_status['isRegularUser']
is_guest = login_status['isGuest']
email = login_status['email']
if is_regular_user == is_guest:
raise error.TestFail('isRegularUser == isGuest')
return (is_regular_user, email)
def run_once(self, arc_mode=None):
"""Test chrome login status.
This test uses telemetry via chrome.py to log in as a regular user,
and then checks chrome login status via the private extension api
autotestPrivate.loginStatus.
"""
with chrome.Chrome(logged_in=True, autotest_ext=True,
arc_mode=arc_mode) as cr:
(is_regular_user, email) = self._get_login_status(cr)
if not is_regular_user:
raise error.TestFail('isRegularUser should be True')
if email != cr.username:
raise error.TestFail('user email mismatch %s' % email)