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

Side by Side Diff: chrome/browser/autofill/form_structure_browsertest.cc

Issue 6026010: Autofill heuristics regular expressions should be stored in external data files. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Nits Created 10 years 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 | « chrome/browser/autofill/form_field.cc ('k') | chrome/browser/autofill/name_field.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <vector> 5 #include <vector>
6 6
7 #include "base/file_path.h" 7 #include "base/file_path.h"
8 #include "base/path_service.h" 8 #include "base/path_service.h"
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
(...skipping 29 matching lines...) Expand all
40 int write_size = file_util::WriteFile(file, content.c_str(), 40 int write_size = file_util::WriteFile(file, content.c_str(),
41 content.length()); 41 content.length());
42 return write_size == static_cast<int>(content.length()); 42 return write_size == static_cast<int>(content.length());
43 } 43 }
44 44
45 // Convert |html| to URL format, and return the converted string. 45 // Convert |html| to URL format, and return the converted string.
46 const std::string ConvertToURLFormat(const std::string& html) { 46 const std::string ConvertToURLFormat(const std::string& html) {
47 return std::string("data:text/html;charset=utf-8,") + html; 47 return std::string("data:text/html;charset=utf-8,") + html;
48 } 48 }
49 49
50 // Compare |output_file_source| with |form_string|. Returns true when they are 50 // Convert strings with platform end-of-line characters with spaces.
51 // identical. 51 const std::string NormalizeText(const std::string& text) {
52 bool CompareText(const std::string& output_file_source, 52 std::string normalized = text;
53 const std::string& form_string) { 53 ReplaceSubstringsAfterOffset(&normalized, 0, "\r\n", " ");
54 std::string output_file = output_file_source; 54 ReplaceSubstringsAfterOffset(&normalized, 0, "\r", " ");
55 std::string form = form_string; 55 ReplaceSubstringsAfterOffset(&normalized, 0, "\n", " ");
56 56 return normalized;
57 ReplaceSubstringsAfterOffset(&output_file, 0, "\r\n", " ");
58 ReplaceSubstringsAfterOffset(&output_file, 0, "\r", " ");
59 ReplaceSubstringsAfterOffset(&output_file, 0, "\n", " ");
60 ReplaceSubstringsAfterOffset(&form, 0, "\n", " ");
61
62 return (output_file == form);
63 } 57 }
64 58
65 } // namespace 59 } // namespace
66 60
67 // Test class for verifying proper form structure as determined by AutoFill 61 // Test class for verifying proper form structure as determined by AutoFill
68 // heuristics. A test inputs each form file(e.g. form_[language_code].html), 62 // heuristics. A test inputs each form file(e.g. form_[language_code].html),
69 // loads its HTML content with a call to |NavigateToURL|, the |AutoFillManager| 63 // loads its HTML content with a call to |NavigateToURL|, the |AutoFillManager|
70 // associated with the tab contents is queried for the form structures that 64 // associated with the tab contents is queried for the form structures that
71 // were loaded and parsed. These form structures are serialized to string form. 65 // were loaded and parsed. These form structures are serialized to string form.
72 // If this is the first time test is run, a gold test result file is generated 66 // If this is the first time test is run, a gold test result file is generated
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 ASSERT_NE(static_cast<AutoFillManager*>(NULL), autofill_manager); 240 ASSERT_NE(static_cast<AutoFillManager*>(NULL), autofill_manager);
247 std::vector<FormStructure*> forms = GetFormStructures(*autofill_manager); 241 std::vector<FormStructure*> forms = GetFormStructures(*autofill_manager);
248 242
249 FilePath output_file_directory = GetOutputFileDirectory(); 243 FilePath output_file_directory = GetOutputFileDirectory();
250 FilePath output_file_path = output_file_directory.Append( 244 FilePath output_file_path = output_file_directory.Append(
251 input_file_path.BaseName().StripTrailingSeparators().ReplaceExtension( 245 input_file_path.BaseName().StripTrailingSeparators().ReplaceExtension(
252 FILE_PATH_LITERAL(".out"))); 246 FILE_PATH_LITERAL(".out")));
253 247
254 std::string output_file_source; 248 std::string output_file_source;
255 if (file_util::ReadFileToString(output_file_path, &output_file_source)) { 249 if (file_util::ReadFileToString(output_file_path, &output_file_source)) {
256 ASSERT_TRUE(CompareText( 250 ASSERT_EQ(NormalizeText(output_file_source),
257 output_file_source, 251 NormalizeText(
258 FormStructureBrowserTest::FormStructuresToString(forms))); 252 FormStructureBrowserTest::FormStructuresToString(forms)));
259 253
260 } else { 254 } else {
261 ASSERT_TRUE(WriteFile( 255 ASSERT_TRUE(WriteFile(
262 output_file_path, 256 output_file_path,
263 FormStructureBrowserTest::FormStructuresToString(forms))); 257 FormStructureBrowserTest::FormStructuresToString(forms)));
264 } 258 }
265 } 259 }
266 } 260 }
OLDNEW
« no previous file with comments | « chrome/browser/autofill/form_field.cc ('k') | chrome/browser/autofill/name_field.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698