blob: 59b4e77d46f096a429289834a6a509a5e445eab0 [file] [log] [blame]
# Copyright 2013 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import unittest
from telemetry.testing import simple_mock
_ = simple_mock.DONT_CARE
class FormBasedCredentialsBackendUnitTestBase(unittest.TestCase):
def setUp(self):
self._credentials_type = None
def testLoginUsingMock(self):
raise NotImplementedError()
def _LoginUsingMock(self, backend, login_page_url, email_element_id,
password_element_id, form_element_id,
already_logged_in_js): # pylint: disable=no-self-use
del form_element_id # Unused.
del email_element_id # Unused.
del password_element_id # Unused.
tab = simple_mock.MockObject()
ar = simple_mock.MockObject()
config = {'username': 'blah',
'password': 'blargh'}
tab.ExpectCall('Navigate', login_page_url)
tab.ExpectCall(
'EvaluateJavaScript', already_logged_in_js).WillReturn(False)
tab.ExpectCall('WaitForDocumentReadyStateToBeInteractiveOrBetter')
ar.ExpectCall(
'WaitForJavaScriptCondition',
'(document.querySelector({{ form_id }}) !== null) || ({{ @code }})')
ar.ExpectCall('WaitForNavigate')
def VerifyEmail(js):
assert '{{ selector }}' in js
assert '{{ username }}' in js
tab.ExpectCall('ExecuteJavaScript', _).WhenCalled(VerifyEmail)
def VerifyPw(js):
assert '{{ selector }}' in js
assert '{{ password }}' in js
tab.ExpectCall('ExecuteJavaScript', _).WhenCalled(VerifyPw)
def VerifySubmit(js):
assert '.submit' in js or '.click' in js
tab.ExpectCall('ExecuteJavaScript', _).WhenCalled(VerifySubmit)
# Checking for form still up.
tab.ExpectCall('EvaluateJavaScript', _).WillReturn(False)
backend.LoginNeeded(tab, ar, config)