Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(664)

Side by Side Diff: chrome/test/functional/passwords.py

Issue 9775001: Refactor tests that performs an action on the password infobar to identify the infobar by type and … (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 import os 6 import os
7 7
8 import pyauto_functional # Must be imported before pyauto 8 import pyauto_functional # Must be imported before pyauto
9 import pyauto 9 import pyauto
10 import test_utils 10 import test_utils
11 11
12 12
13 class PasswordTest(pyauto.PyUITest): 13 class PasswordTest(pyauto.PyUITest):
14 """Tests that passwords work correctly.""" 14 """Tests that passwords work correctly."""
15 15
16 INFOBAR_BUTTON_TEXT = 'Save password' 16 INFOBAR_TYPE = 'password_infobar'
17 17
18 def Debug(self): 18 def Debug(self):
19 """Test method for experimentation. 19 """Test method for experimentation.
20 20
21 This method will not run automatically. 21 This method will not run automatically.
22 """ 22 """
23 while True: 23 while True:
24 raw_input('Interact with the browser and hit <enter> to dump passwords. ') 24 raw_input('Interact with the browser and hit <enter> to dump passwords. ')
25 print '*' * 20 25 print '*' * 20
26 self.pprint(self.GetSavedPasswords()) 26 self.pprint(self.GetSavedPasswords())
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 if (element) 74 if (element)
75 value = element.value; 75 value = element.value;
76 window.domAutomationController.send(value); 76 window.domAutomationController.send(value);
77 """ 77 """
78 self.assertTrue(self.WaitUntil( 78 self.assertTrue(self.WaitUntil(
79 lambda: self.ExecuteJavascript(js_template % 'Email', 79 lambda: self.ExecuteJavascript(js_template % 'Email',
80 tab_index, window_index) != '' and 80 tab_index, window_index) != '' and
81 self.ExecuteJavascript(js_template % 'Passwd', 81 self.ExecuteJavascript(js_template % 'Passwd',
82 tab_index, window_index) != '')) 82 tab_index, window_index) != ''))
83 83
84 def _InfobarButtonContainsText(self, search_text, windex, tab_index): 84 def _InfobarTypeDisplayed(self, infobar_type, windex, tab_index):
dennis_jeffrey 2012/03/20 21:17:58 Change the function name to something like "_GetIn
dyu1 2012/03/20 22:24:35 Done.
85 """Identifies whether an infobar button exists with the specified text. 85 """Identifies whether an infobar displays and get the index.
dennis_jeffrey 2012/03/20 21:17:58 Returns the index of the infobar of the given type
dyu1 2012/03/20 22:24:35 Done.
86 86
87 Args: 87 Args:
88 search_text: The text to search for on the infobar buttons. 88 infobar_type: The infobar type displayed.
89 windex: Window index. 89 windex: Window index.
90 tab_index: Tab index. 90 tab_index: Tab index.
91 91
92 Returns: 92 Returns:
93 True, if search_text is found in the buttons, or False otherwise. 93 Index of infobar for infobar type, or -1 if not found.
dennis_jeffrey 2012/03/20 21:17:58 Maybe we should return None in the event it's not
dyu1 2012/03/20 22:24:35 Done.
94 """ 94 """
95 infobar = ( 95 infobar_list = (
96 self.GetBrowserInfo()['windows'][windex]['tabs'][tab_index] \ 96 self.GetBrowserInfo()['windows'][windex]['tabs'][tab_index] \
97 ['infobars']) 97 ['infobars'])
98 for infobar_info in infobar: 98 for infobar in infobar_list:
99 if search_text in infobar_info['buttons']: 99 if infobar_type == infobar['type']:
100 return True 100 return infobar_list.index(infobar)
101 return False 101 return -1
dennis_jeffrey 2012/03/20 21:17:58 recommend changing '-1' to 'None'
dyu1 2012/03/20 22:24:35 Done.
102 102
103 def _WaitForSavePasswordInfobar(self, windex=0, tab_index=0): 103 def _WaitForSavePasswordInfobar(self, windex=0, tab_index=0):
104 """Wait for and asserts that the save password infobar appears. 104 """Wait for and asserts that the save password infobar appears.
105 105
106 Args: 106 Args:
107 windex: Window index. Defaults to 0 (first window). 107 windex: Window index. Defaults to 0 (first window).
108 tab_index: Tab index. Defaults to 0 (first tab). 108 tab_index: Tab index. Defaults to 0 (first tab).
109
110 Returns:
111 Index of infobar for infobar type.
109 """ 112 """
110 self.assertTrue( 113 self.assertTrue(
111 self.WaitUntil(lambda: self._InfobarButtonContainsText( 114 self.WaitUntil(lambda: self._InfobarTypeDisplayed(
112 self.INFOBAR_BUTTON_TEXT, windex, tab_index)), 115 self.INFOBAR_TYPE, windex, tab_index) is not -1),
dennis_jeffrey 2012/03/20 21:17:58 we can remove 'is not -1' if you address comment a
dyu1 2012/03/20 22:24:35 Done.
113 msg='Save password infobar did not appear.') 116 msg='Save password infobar did not appear.')
117 infobar_index = self._InfobarTypeDisplayed(
118 self.INFOBAR_TYPE, windex, tab_index)
119 return infobar_index
dennis_jeffrey 2012/03/20 21:17:58 combine the above 2 statements into a single state
dyu1 2012/03/20 22:24:35 Done On 2012/03/20 21:17:58, dennis_jeffrey wrot
114 120
115 def testSavePassword(self): 121 def testSavePassword(self):
116 """Test saving a password and getting saved passwords.""" 122 """Test saving a password and getting saved passwords."""
117 password1 = self._ConstructPasswordDictionary( 123 password1 = self._ConstructPasswordDictionary(
118 'user@example.com', 'test.password', 124 'user@example.com', 'test.password',
119 'https://www.example.com/', 'https://www.example.com/login', 125 'https://www.example.com/', 'https://www.example.com/login',
120 'username', 'password', 'https://www.example.com/login/') 126 'username', 'password', 'https://www.example.com/login/')
121 self.assertTrue(self.AddSavedPassword(password1)) 127 self.assertTrue(self.AddSavedPassword(password1))
122 self.assertEqual(self.GetSavedPasswords(), [password1]) 128 self.assertEqual(self.GetSavedPasswords(), [password1])
123 129
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
309 self.ExecuteJavascript(set_focus, 0, 0) 315 self.ExecuteJavascript(set_focus, 0, 0)
310 self._SendCharToPopulateField('t', tab_index=0, windex=0) 316 self._SendCharToPopulateField('t', tab_index=0, windex=0)
311 passwd_value = self.GetDOMValue('document.getElementById("Passwd").value') 317 passwd_value = self.GetDOMValue('document.getElementById("Passwd").value')
312 self.assertFalse(passwd_value, 318 self.assertFalse(passwd_value,
313 msg='Password field not empty for new username.') 319 msg='Password field not empty for new username.')
314 test_utils.ClearPasswords(self) 320 test_utils.ClearPasswords(self)
315 321
316 322
317 if __name__ == '__main__': 323 if __name__ == '__main__':
318 pyauto_functional.Main() 324 pyauto_functional.Main()
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698