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

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

Issue 6685077: Two sets of Autofill tests.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 9 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
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # Copyright (c) 2010 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2010 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 logging 6 import logging
7 import os 7 import os
8 import pickle 8 import pickle
9 9
10 import autofill_dataset_converter 10 import autofill_dataset_converter
11 import autofill_dataset_generator
11 import pyauto_functional # Must be imported before pyauto 12 import pyauto_functional # Must be imported before pyauto
12 import pyauto 13 import pyauto
13 14
14 15
15 class AutoFillTest(pyauto.PyUITest): 16 class AutoFillTest(pyauto.PyUITest):
16 """Tests that autofill works correctly""" 17 """Tests that autofill works correctly"""
17 18
18 def Debug(self): 19 def Debug(self):
19 """Test method for experimentation. 20 """Test method for experimentation.
20 21
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 js_code = """ 141 js_code = """
141 document.getElementById("merge_dup").submit(); 142 document.getElementById("merge_dup").submit();
142 window.addEventListener("unload", function() { 143 window.addEventListener("unload", function() {
143 window.domAutomationController.send("done"); 144 window.domAutomationController.send("done");
144 }); 145 });
145 """ 146 """
146 self.ExecuteJavascript(js_code, 0, 0) 147 self.ExecuteJavascript(js_code, 0, 0)
147 if 'EMAIL_ADDRESS' in self.GetAutofillProfile()['profiles'][0]: 148 if 'EMAIL_ADDRESS' in self.GetAutofillProfile()['profiles'][0]:
148 raise KeyError('TEST FAIL: Malformed email address is saved in profiles.') 149 raise KeyError('TEST FAIL: Malformed email address is saved in profiles.')
149 150
151 def testComparePhoneNumbers(self):
152 """Test phone fields parses correctly from a given profile."""
153 profile_path = os.path.join(self.DataDir(), 'autofill',
154 'phone_pinput_autofill.txt')
155 profile_expected_path = os.path.join(self.DataDir(), 'autofill',
156 'phone_pexpected_autofill.txt')
157 profiles = self.EvalDataFrom(profile_path)
158 profiles_expected = self.EvalDataFrom(profile_expected_path)
159 tab_keypress=0x09
160 down_keypress=0x28
161 return_keypress=0x0D
dennis_jeffrey 2011/03/18 21:44:01 I think the above 3 lines are better declared as n
dyu1 2011/03/21 18:42:35 Done.
162 self.FillAutofillProfile(profiles=profiles)
163 url = self.GetHttpURLForDataPath(
164 os.path.join('autofill', 'form_phones.html'))
165 for profile_expected in profiles_expected:
166 self.NavigateToURL(url)
167 self.SendKeyEvent(tab_keypress, windex=0, tab_index=0)
dennis_jeffrey 2011/03/18 21:44:01 Could you add a comment to explain what you're doi
dyu1 2011/03/21 18:42:35 I thought the named variables was self explanatory
168 self.SendKeyEvent(down_keypress, windex=0, tab_index=0)
169 self.SendKeyEvent(down_keypress, windex=0, tab_index=0)
170 self.SendKeyEvent(return_keypress, windex=0, tab_index=0)
171 raw_input()
dennis_jeffrey 2011/03/18 21:44:01 This line shouldn't be here in an automated test,
dyu1 2011/03/21 18:42:35 Left it in for debugging but removed it in my last
172 form_values = {}
173 for key, value in profile_expected.iteritems():
174 js_returning_field_value = (
175 'var field_value = document.getElementById("%s").value;'
176 'window.domAutomationController.send(field_value);'
177 ) % key
178 form_values[key] = self.ExecuteJavascript(
179 js_returning_field_value, 0, 0)
180 self.assertEqual(
181 form_values[key], value,
182 'Original profile not equal to expected profile at key: "%s" \
183 \nExpected: "%s"\nReturned: "%s"' % (key, value, form_values[key]))
dennis_jeffrey 2011/03/18 21:44:01 Rather than using "\" to continue the string onto
dyu1 2011/03/21 18:42:35 Done.
184
185 def FormFillLatencyAfterSubmit(self):
dennis_jeffrey 2011/03/18 21:44:01 Shouldn't this function name begin with the substr
dyu1 2011/03/21 18:42:35 Since this test is only partially automated I didn
186 """Test latency time on form submit with lots of stored Autofill profiles.
187
188 This test verifies when a profile is selected from the Autofill dictionary,
dennis_jeffrey 2011/03/18 21:44:01 Remove the comma at the end of this line.
dyu1 2011/03/21 18:42:35 Done.
189 that consists of thousands of profiles, the form does not hang after being
190 submitted.
191 """
192 # HTML file needs to be run from a http:// url.
193 url = self.GetHttpURLForDataPath(
194 os.path.join('autofill', 'latency_after_submit_test.html'))
195 # Run the generator script to generate the dictionary list needed for the
196 # profiles.
197 gen = autofill_dataset_generator.DatasetGenerator(
198 logging_level=logging.ERROR) # Set verbosity to INFO, WARNING, ERROR.
199 list_of_dict = gen.GenerateDataset(num_of_records_to_generate=50)
dennis_jeffrey 2011/03/18 21:44:01 Does this mean you're generating 50 profiles? The
dyu1 2011/03/21 18:42:35 Only left 50 for testing purposes. Will change to
200 self.FillAutofillProfile(profiles=list_of_dict)
201 tab_keypress=0x09
202 down_keypress=0x28
203 return_keypress=0x0D
dennis_jeffrey 2011/03/18 21:44:01 Perhaps better as constants defined at the top of
dyu1 2011/03/21 18:42:35 Done.
204 self.NavigateToURL(url)
205 self.SendKeyEvent(tab_keypress, windex=0, tab_index=0)
dennis_jeffrey 2011/03/18 21:44:01 Add a comment to describe what this sequence of ke
dyu1 2011/03/21 18:42:35 Done.
206 self.SendKeyEvent(down_keypress, windex=0, tab_index=0)
207 self.SendKeyEvent(down_keypress, windex=0, tab_index=0)
208 self.SendKeyEvent(return_keypress, windex=0, tab_index=0)
209 # Requires manual intervention to test the performance time after submitted
dennis_jeffrey 2011/03/18 21:44:01 "submitted" --> "submitting"
dyu1 2011/03/21 18:42:35 Done.
210 # the form.
211 raw_input()
dennis_jeffrey 2011/03/18 21:44:01 Is it considered acceptable to check in PyAuto tes
dyu1 2011/03/21 18:42:35 Yes, should be fine as Nir approved of two other t
212
213
150 def AutofillCrowdsourcing(self): 214 def AutofillCrowdsourcing(self):
151 """Test able to send POST request of web form to Autofill server. 215 """Test able to send POST request of web form to Autofill server.
152 216
153 The Autofill server processes the data offline, so it can take a few days 217 The Autofill server processes the data offline, so it can take a few days
154 for the result to be detectable. Manual verification is required. 218 for the result to be detectable. Manual verification is required.
155 """ 219 """
156 # HTML file needs to be run from a specific http:// url to be able to verify 220 # HTML file needs to be run from a specific http:// url to be able to verify
157 # the results a few days later by visiting the same url. 221 # the results a few days later by visiting the same url.
158 url = 'http://www.corp.google.com/~dyu/autofill/crowdsourcing-test.html' 222 url = 'http://www.corp.google.com/~dyu/autofill/crowdsourcing-test.html'
159 # Adding crowdsourcing Autofill profile. 223 # Adding crowdsourcing Autofill profile.
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 merged_profile = os.path.join(self.DataDir(), 'autofill', 276 merged_profile = os.path.join(self.DataDir(), 'autofill',
213 'merged-profiles.txt') 277 'merged-profiles.txt')
214 profile_dict = self.GetAutofillProfile()['profiles'] 278 profile_dict = self.GetAutofillProfile()['profiles']
215 output = open(merged_profile, 'wb') 279 output = open(merged_profile, 'wb')
216 pickle.dump(profile_dict, output) 280 pickle.dump(profile_dict, output)
217 output.close() 281 output.close()
218 282
219 283
220 if __name__ == '__main__': 284 if __name__ == '__main__':
221 pyauto_functional.Main() 285 pyauto_functional.Main()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698