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

Side by Side Diff: components/test/data/password_manager/tests.py

Issue 472823002: The password manager python tests now logout from websites by cleaning the cookies. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 4 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
OLDNEW
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
2 # Copyright 2014 The Chromium Authors. All rights reserved. 2 # Copyright 2014 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 """Automated tests for many websites""" 6 """Automated tests for many websites"""
7 7
8 import argparse 8 import argparse
9 import logging 9 import logging
10 10
(...skipping 17 matching lines...) Expand all
28 28
29 29
30 class Facebook(WebsiteTest): 30 class Facebook(WebsiteTest):
31 31
32 def Login(self): 32 def Login(self):
33 self.GoTo("https://www.facebook.com") 33 self.GoTo("https://www.facebook.com")
34 self.FillUsernameInto("[name='email']") 34 self.FillUsernameInto("[name='email']")
35 self.FillPasswordInto("[name='pass']") 35 self.FillPasswordInto("[name='pass']")
36 self.Submit("[name='pass']") 36 self.Submit("[name='pass']")
37 37
38 def Logout(self):
39 self.WaitUntilDisplayed("#userNavigationLabel")
40 self.Click("#userNavigationLabel")
41 self.WaitUntilDisplayed("#logout_form [type='submit']")
42 self.Click("#logout_form [type='submit']")
43
44 38
45 class Google(WebsiteTest): 39 class Google(WebsiteTest):
46 40
47 def Login(self): 41 def Login(self):
48 self.GoTo("https://accounts.google.com/ServiceLogin?sacu=1&continue=") 42 self.GoTo("https://accounts.google.com/ServiceLogin?sacu=1&continue=")
49 self.FillUsernameInto("#Email") 43 self.FillUsernameInto("#Email")
50 self.FillPasswordInto("#Passwd") 44 self.FillPasswordInto("#Passwd")
51 self.Submit("#Passwd") 45 self.Submit("#Passwd")
52 46
53 def Logout(self):
54 self.GoTo("https://accounts.google.com/Logout")
55
56 47
57 class Linkedin(WebsiteTest): 48 class Linkedin(WebsiteTest):
58 49
59 def Login(self): 50 def Login(self):
60 self.GoTo("https://www.linkedin.com") 51 self.GoTo("https://www.linkedin.com")
61 self.FillUsernameInto("#session_key-login") 52 self.FillUsernameInto("#session_key-login")
62 self.FillPasswordInto("#session_password-login") 53 self.FillPasswordInto("#session_password-login")
63 self.Submit("#session_password-login") 54 self.Submit("#session_password-login")
64 55
65 def Logout(self):
66 self.WaitUntilDisplayed(".account-toggle")
67 self.HoverOver(".account-toggle")
68 self.WaitUntilDisplayed(".account-settings .act-set-action")
69 self.Click(".account-settings .act-set-action")
70
71 56
72 class Mailru(WebsiteTest): 57 class Mailru(WebsiteTest):
73 58
74 def Login(self): 59 def Login(self):
75 self.GoTo("https://mail.ru") 60 self.GoTo("https://mail.ru")
76 self.FillUsernameInto("#mailbox__login") 61 self.FillUsernameInto("#mailbox__login")
77 self.FillPasswordInto("#mailbox__password") 62 self.FillPasswordInto("#mailbox__password")
78 self.Submit("#mailbox__password") 63 self.Submit("#mailbox__password")
79 64
80 def Logout(self):
81 self.Click("#PH_logoutLink")
82
83 65
84 class Nytimes(WebsiteTest): 66 class Nytimes(WebsiteTest):
85 67
86 def Login(self): 68 def Login(self):
87 self.GoTo("https://myaccount.nytimes.com/auth/login") 69 self.GoTo("https://myaccount.nytimes.com/auth/login")
88 self.FillUsernameInto("#userid") 70 self.FillUsernameInto("#userid")
89 self.FillPasswordInto("#password") 71 self.FillPasswordInto("#password")
90 self.Submit("#password") 72 self.Submit("#password")
91 73
92 def Logout(self):
93 self.GoTo("https://myaccount.nytimes.com/gst/signout")
94
95 74
96 class Pinterest(WebsiteTest): 75 class Pinterest(WebsiteTest):
97 76
98 def Login(self): 77 def Login(self):
99 self.GoTo("https://www.pinterest.com/login/") 78 self.GoTo("https://www.pinterest.com/login/")
100 self.FillUsernameInto("[name='username_or_email']") 79 self.FillUsernameInto("[name='username_or_email']")
101 self.FillPasswordInto("[name='password']") 80 self.FillPasswordInto("[name='password']")
102 self.Submit("[name='password']") 81 self.Submit("[name='password']")
103 82
104 def Logout(self):
105 self.GoTo("https://www.pinterest.com/logout/")
106
107 83
108 class Reddit(WebsiteTest): 84 class Reddit(WebsiteTest):
109 85
110 def Login(self): 86 def Login(self):
111 self.GoTo("http://www.reddit.com") 87 self.GoTo("http://www.reddit.com")
112 self.Click(".user .login-required") 88 self.Click(".user .login-required")
113 self.FillUsernameInto("#user_login") 89 self.FillUsernameInto("#user_login")
114 self.FillPasswordInto("#passwd_login") 90 self.FillPasswordInto("#passwd_login")
115 self.Wait(2) 91 self.Wait(2)
116 self.Submit("#passwd_login") 92 self.Submit("#passwd_login")
117 93
118 def Logout(self):
119 self.Click("form[action='http://www.reddit.com/logout'] a")
120
121 94
122 class Tumblr(WebsiteTest): 95 class Tumblr(WebsiteTest):
123 96
124 def Login(self): 97 def Login(self):
125 self.GoTo("https://www.tumblr.com/login") 98 self.GoTo("https://www.tumblr.com/login")
126 self.FillUsernameInto("#signup_email") 99 self.FillUsernameInto("#signup_email")
127 self.FillPasswordInto("#signup_password") 100 self.FillPasswordInto("#signup_password")
128 self.Submit("#signup_password") 101 self.Submit("#signup_password")
129 102
130 def Logout(self):
131 self.GoTo("https://www.tumblr.com/logout")
132
133 103
134 class Wikipedia(WebsiteTest): 104 class Wikipedia(WebsiteTest):
135 105
136 def Login(self): 106 def Login(self):
137 self.GoTo("https://en.wikipedia.org/w/index.php?title=Special:UserLogin") 107 self.GoTo("https://en.wikipedia.org/w/index.php?title=Special:UserLogin")
138 self.FillUsernameInto("#wpName1") 108 self.FillUsernameInto("#wpName1")
139 self.FillPasswordInto("#wpPassword1") 109 self.FillPasswordInto("#wpPassword1")
140 self.Submit("#wpPassword1") 110 self.Submit("#wpPassword1")
141 111
142 def Logout(self):
143 self.GoTo("https://en.wikipedia.org/w/index.php?title=Special:UserLogout")
144
145 112
146 class Yandex(WebsiteTest): 113 class Yandex(WebsiteTest):
147 114
148 def Login(self): 115 def Login(self):
149 self.GoTo("https://mail.yandex.com") 116 self.GoTo("https://mail.yandex.com")
150 self.FillUsernameInto("#b-mail-domik-username11") 117 self.FillUsernameInto("#b-mail-domik-username11")
151 self.FillPasswordInto("#b-mail-domik-password11") 118 self.FillPasswordInto("#b-mail-domik-password11")
152 self.Click(".b-mail-button__button") 119 self.Click(".b-mail-button__button")
153 120
154 def Logout(self):
155 while not self.IsDisplayed(".b-mail-dropdown__item__content"
156 u".Выход.daria-action"):
157 self.ClickIfClickable(".header-user-pic.b-mail-dropdown__handle")
158 self.Wait(1)
159 self.Click(u".b-mail-dropdown__item__content.Выход.daria-action")
160
161 121
162 # Disabled tests. 122 # Disabled tests.
163 123
164 124
165 # Bug not reproducible without test. 125 # Bug not reproducible without test.
166 class Amazon(WebsiteTest): 126 class Amazon(WebsiteTest):
167 127
168 def Login(self): 128 def Login(self):
169 self.GoTo( 129 self.GoTo(
170 "https://www.amazon.com/ap/signin?openid.assoc_handle=usflex" 130 "https://www.amazon.com/ap/signin?openid.assoc_handle=usflex"
171 "&openid.mode=checkid_setup&openid.ns=http%3A%2F%2Fspecs.openid.net" 131 "&openid.mode=checkid_setup&openid.ns=http%3A%2F%2Fspecs.openid.net"
172 "%2Fauth%2F2.0") 132 "%2Fauth%2F2.0")
173 self.FillUsernameInto("[name='email']") 133 self.FillUsernameInto("[name='email']")
174 self.FillPasswordInto("[name='password']") 134 self.FillPasswordInto("[name='password']")
175 self.Submit("[name='password']") 135 self.Submit("[name='password']")
176 136
177 def Logout(self):
178 while not self.IsDisplayed("#nav-item-signout"):
179 self.Wait(1)
180 self.HoverOver("#nav-signin-title")
181 self.Click("#nav-item-signout")
182
183 137
184 # Password not saved. 138 # Password not saved.
185 class Ask(WebsiteTest): 139 class Ask(WebsiteTest):
186 140
187 def Login(self): 141 def Login(self):
188 self.GoTo("http://www.ask.com/answers/browse?qsrc=321&q=&o=0&l=dir#") 142 self.GoTo("http://www.ask.com/answers/browse?qsrc=321&q=&o=0&l=dir#")
189 while not self.IsDisplayed("[name='username']"): 143 while not self.IsDisplayed("[name='username']"):
190 self.Click("#a16CnbSignInText") 144 self.Click("#a16CnbSignInText")
191 self.Wait(1) 145 self.Wait(1)
192 self.FillUsernameInto("[name='username']") 146 self.FillUsernameInto("[name='username']")
193 self.FillPasswordInto("[name='password']") 147 self.FillPasswordInto("[name='password']")
194 self.Click(".signin_show.signin_submit") 148 self.Click(".signin_show.signin_submit")
195 149
196 def Logout(self):
197 self.WaitUntilDisplayed("#a16CnbSignInText")
198 self.Click("#a16CnbSignInText")
199
200 150
201 # Password not saved. 151 # Password not saved.
202 class Baidu(WebsiteTest): 152 class Baidu(WebsiteTest):
203 153
204 def Login(self): 154 def Login(self):
205 self.GoTo("http://www.baidu.com/") 155 self.GoTo("http://www.baidu.com/")
206 self.Click("[name='tj_login']") 156 self.Click("[name='tj_login']")
207 self.WaitUntilDisplayed("[name='userName']") 157 self.WaitUntilDisplayed("[name='userName']")
208 self.FillUsernameInto("[name='userName']") 158 self.FillUsernameInto("[name='userName']")
209 self.FillPasswordInto("[name='password']") 159 self.FillPasswordInto("[name='password']")
210 self.Submit("[name='password']") 160 self.Submit("[name='password']")
211 161
212 def Logout(self):
213 self.Wait(1)
214 self.GoTo("https://passport.baidu.com/?logout&u=http://www.baidu.com")
215
216 162
217 # http://crbug.com/368690 163 # http://crbug.com/368690
218 class Cnn(WebsiteTest): 164 class Cnn(WebsiteTest):
219 165
220 def Login(self): 166 def Login(self):
221 self.GoTo("http://www.cnn.com") 167 self.GoTo("http://www.cnn.com")
222 self.Wait(5) 168 self.Wait(5)
223 while not self.IsDisplayed(".cnnOvrlyBtn.cnnBtnLogIn"): 169 while not self.IsDisplayed(".cnnOvrlyBtn.cnnBtnLogIn"):
224 self.ClickIfClickable("#hdr-auth .no-border.no-pad-right a") 170 self.ClickIfClickable("#hdr-auth .no-border.no-pad-right a")
225 self.Wait(1) 171 self.Wait(1)
226 172
227 self.Click(".cnnOvrlyBtn.cnnBtnLogIn") 173 self.Click(".cnnOvrlyBtn.cnnBtnLogIn")
228 self.FillUsernameInto("#cnnOverlayEmail1l") 174 self.FillUsernameInto("#cnnOverlayEmail1l")
229 self.FillPasswordInto("#cnnOverlayPwd") 175 self.FillPasswordInto("#cnnOverlayPwd")
230 self.Click(".cnnOvrlyBtn.cnnBtnLogIn") 176 self.Click(".cnnOvrlyBtn.cnnBtnLogIn")
231 self.Click(".cnnOvrlyBtn.cnnBtnLogIn") 177 self.Click(".cnnOvrlyBtn.cnnBtnLogIn")
232 self.Wait(5) 178 self.Wait(5)
233 179
234 def Logout(self):
235 self.Wait(4)
236 self.Click("#hdr-auth .no-border.no-pad-right")
237
238 180
239 # http://crbug.com/368690 181 # http://crbug.com/368690
240 class Ebay(WebsiteTest): 182 class Ebay(WebsiteTest):
241 183
242 def Login(self): 184 def Login(self):
243 self.GoTo("https://signin.ebay.com/") 185 self.GoTo("https://signin.ebay.com/")
244 self.FillUsernameInto("[name='userid']") 186 self.FillUsernameInto("[name='userid']")
245 self.FillPasswordInto("[name='pass']") 187 self.FillPasswordInto("[name='pass']")
246 self.Submit("[name='pass']") 188 self.Submit("[name='pass']")
247 189
248 def Logout(self):
249 self.WaitUntilDisplayed("#gh-ug")
250 self.Click("#gh-ug")
251 self.WaitUntilDisplayed("#gh-uo")
252 self.Click("#gh-uo")
253
254 190
255 # Iframe, password saved but not autofileld. 191 # Iframe, password saved but not autofileld.
256 class Espn(WebsiteTest): 192 class Espn(WebsiteTest):
257 193
258 def Login(self): 194 def Login(self):
259 self.GoTo("http://espn.go.com/") 195 self.GoTo("http://espn.go.com/")
260 while not self.IsDisplayed("#cboxLoadedContent iframe"): 196 while not self.IsDisplayed("#cboxLoadedContent iframe"):
261 self.Click("#signin .cbOverlay") 197 self.Click("#signin .cbOverlay")
262 self.Wait(1) 198 self.Wait(1)
263 frame = self.driver.find_element_by_css_selector("#cboxLoadedContent " 199 frame = self.driver.find_element_by_css_selector("#cboxLoadedContent "
264 "iframe") 200 "iframe")
265 self.driver.switch_to_frame(frame) 201 self.driver.switch_to_frame(frame)
266 self.WaitUntilDisplayed("#username") 202 self.WaitUntilDisplayed("#username")
267 self.FillUsernameInto("#username") 203 self.FillUsernameInto("#username")
268 self.FillPasswordInto("#password") 204 self.FillPasswordInto("#password")
269 while self.IsDisplayed("#password"): 205 while self.IsDisplayed("#password"):
270 self.ClickIfClickable("#submitBtn") 206 self.ClickIfClickable("#submitBtn")
271 self.Wait(1) 207 self.Wait(1)
272 208
273 def Logout(self):
274 self.WaitUntilDisplayed("#signin .small")
275 self.Click("#signin .small")
276
277 209
278 # http://crbug.com/367768 210 # http://crbug.com/367768
279 class Live(WebsiteTest): 211 class Live(WebsiteTest):
280 212
281 def Login(self): 213 def Login(self):
282 self.GoTo("https://www.live.com") 214 self.GoTo("https://www.live.com")
283 self.FillUsernameInto("[name='login']") 215 self.FillUsernameInto("[name='login']")
284 self.FillPasswordInto("[name='passwd']") 216 self.FillPasswordInto("[name='passwd']")
285 self.Submit("[name='passwd']") 217 self.Submit("[name='passwd']")
286 218
287 def Logout(self):
288 self.WaitUntilDisplayed("#c_meun")
289 self.Click("#c_meun")
290 self.WaitUntilDisplayed("#c_signout")
291 self.Click("#c_signout")
292
293 219
294 # http://crbug.com/368690 220 # http://crbug.com/368690
295 class One63(WebsiteTest): 221 class One63(WebsiteTest):
296 222
297 def Login(self): 223 def Login(self):
298 self.GoTo("http://www.163.com") 224 self.GoTo("http://www.163.com")
299 self.HoverOver("#js_N_navHighlight") 225 self.HoverOver("#js_N_navHighlight")
300 self.WaitUntilDisplayed("#js_loginframe_username") 226 self.WaitUntilDisplayed("#js_loginframe_username")
301 self.FillUsernameInto("#js_loginframe_username") 227 self.FillUsernameInto("#js_loginframe_username")
302 self.FillPasswordInto(".ntes-loginframe-label-ipt[type='password']") 228 self.FillPasswordInto(".ntes-loginframe-label-ipt[type='password']")
303 self.Click(".ntes-loginframe-btn") 229 self.Click(".ntes-loginframe-btn")
304 230
305 def Logout(self):
306 self.WaitUntilDisplayed("#js_N_navLogout")
307 self.Click("#js_N_navLogout")
308
309 231
310 # http://crbug.com/368690 232 # http://crbug.com/368690
311 class Vube(WebsiteTest): 233 class Vube(WebsiteTest):
312 234
313 def Login(self): 235 def Login(self):
314 self.GoTo("https://vube.com") 236 self.GoTo("https://vube.com")
315 self.Click("[vube-login='']") 237 self.Click("[vube-login='']")
316 self.WaitUntilDisplayed("[ng-model='login.user']") 238 self.WaitUntilDisplayed("[ng-model='login.user']")
317 self.FillUsernameInto("[ng-model='login.user']") 239 self.FillUsernameInto("[ng-model='login.user']")
318 self.FillPasswordInto("[ng-model='login.pass']") 240 self.FillPasswordInto("[ng-model='login.pass']")
319 while (self.IsDisplayed("[ng-model='login.pass']") 241 while (self.IsDisplayed("[ng-model='login.pass']")
320 and not self.IsDisplayed(".prompt.alert")): 242 and not self.IsDisplayed(".prompt.alert")):
321 self.ClickIfClickable("[ng-click='login()']") 243 self.ClickIfClickable("[ng-click='login()']")
322 self.Wait(1) 244 self.Wait(1)
323 245
324 def Logout(self):
325 self.WaitUntilDisplayed("[ng-click='user.logout()']")
326 self.Click("[ng-click='user.logout()']")
327
328 246
329 # Tests that can cause a crash. 247 # Tests that can cause a crash.
330 248
331 249
332 class Yahoo(WebsiteTest): 250 class Yahoo(WebsiteTest):
333 251
334 def Login(self): 252 def Login(self):
335 self.GoTo("https://login.yahoo.com") 253 self.GoTo("https://login.yahoo.com")
336 self.FillUsernameInto("#username") 254 self.FillUsernameInto("#username")
337 self.FillPasswordInto("#passwd") 255 self.FillPasswordInto("#passwd")
338 self.Submit("#passwd") 256 self.Submit("#passwd")
339 257
340 def Logout(self):
341 self.WaitUntilDisplayed(".tab.tab-user>.mod.view_default")
342 self.HoverOver(".tab.tab-user>.mod.view_default")
343 self.WaitUntilDisplayed("[data-pos='4'] .lbl.y-link-1")
344 self.Click("[data-pos='4'] .lbl.y-link-1")
345
346 258
347 def Tests(environment): 259 def Tests(environment):
348 260
349 261
350 # Working tests. 262 # Working tests.
351 263
352 264
353 environment.AddWebsiteTest(Facebook("facebook")) 265 environment.AddWebsiteTest(Facebook("facebook"))
354 266
355 environment.AddWebsiteTest(Google("google")) 267 environment.AddWebsiteTest(Google("google"))
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
569 args.profile_path[0], 481 args.profile_path[0],
570 passwords_path, 482 passwords_path,
571 True, 483 True,
572 numeric_level, 484 numeric_level,
573 args.log_screen, 485 args.log_screen,
574 log_file, 486 log_file,
575 tested_websites, 487 tested_websites,
576 args.tests) 488 args.tests)
577 489
578 saveResults(tests_results, save_path) 490 saveResults(tests_results, save_path)
OLDNEW
« no previous file with comments | « components/test/data/password_manager/environment.py ('k') | components/test/data/password_manager/websitetest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698