Update sdk/platform-tools to version 26.0.0.
[android_tools.git] / sdk / platform-tools / systrace / catapult / telemetry / telemetry / internal / backends / form_based_credentials_backend_unittest_base.py
blob59b4e77d46f096a429289834a6a509a5e445eab0
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.
5 import unittest
7 from telemetry.testing import simple_mock
9 _ = simple_mock.DONT_CARE
12 class FormBasedCredentialsBackendUnitTestBase(unittest.TestCase):
13 def setUp(self):
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',
29 'password': 'blargh'}
31 tab.ExpectCall('Navigate', login_page_url)
32 tab.ExpectCall(
33 'EvaluateJavaScript', already_logged_in_js).WillReturn(False)
34 tab.ExpectCall('WaitForDocumentReadyStateToBeInteractiveOrBetter')
36 ar.ExpectCall(
37 'WaitForJavaScriptCondition',
38 '(document.querySelector({{ form_id }}) !== null) || ({{ @code }})')
39 ar.ExpectCall('WaitForNavigate')
41 def VerifyEmail(js):
42 assert '{{ selector }}' in js
43 assert '{{ username }}' in js
44 tab.ExpectCall('ExecuteJavaScript', _).WhenCalled(VerifyEmail)
46 def VerifyPw(js):
47 assert '{{ selector }}' in js
48 assert '{{ password }}' in js
49 tab.ExpectCall('ExecuteJavaScript', _).WhenCalled(VerifyPw)
51 def VerifySubmit(js):
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)