1 # Copyright 2013 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.
7 from telemetry
.testing
import simple_mock
9 _
= simple_mock
.DONT_CARE
12 class FormBasedCredentialsBackendUnitTestBase(unittest
.TestCase
):
14 self
._credentials
_type
= None
16 def testLoginUsingMock(self
):
17 raise NotImplementedError()
19 def _LoginUsingMock(self
, backend
, login_page_url
, email_element_id
,
20 password_element_id
, form_element_id
,
21 already_logged_in_js
): # pylint: disable=no-self-use
22 del form_element_id
# Unused.
23 del email_element_id
# Unused.
24 del password_element_id
# Unused.
25 tab
= simple_mock
.MockObject()
26 ar
= simple_mock
.MockObject()
28 config
= {'username': 'blah',
31 tab
.ExpectCall('Navigate', login_page_url
)
33 'EvaluateJavaScript', already_logged_in_js
).WillReturn(False)
34 tab
.ExpectCall('WaitForDocumentReadyStateToBeInteractiveOrBetter')
37 'WaitForJavaScriptCondition',
38 '(document.querySelector({{ form_id }}) !== null) || ({{ @code }})')
39 ar
.ExpectCall('WaitForNavigate')
42 assert '{{ selector }}' in js
43 assert '{{ username }}' in js
44 tab
.ExpectCall('ExecuteJavaScript', _
).WhenCalled(VerifyEmail
)
47 assert '{{ selector }}' in js
48 assert '{{ password }}' in js
49 tab
.ExpectCall('ExecuteJavaScript', _
).WhenCalled(VerifyPw
)
52 assert '.submit' in js
or '.click' in js
53 tab
.ExpectCall('ExecuteJavaScript', _
).WhenCalled(VerifySubmit
)
55 # Checking for form still up.
56 tab
.ExpectCall('EvaluateJavaScript', _
).WillReturn(False)
58 backend
.LoginNeeded(tab
, ar
, config
)