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

Side by Side Diff: components/autofill/core/browser/form_structure_unittest.cc

Issue 23432002: Generate passwords only for forms that autofill server marks as account creation forms. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address llya's nits and fix a bug in form structure unit test. Created 7 years, 3 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 // Copyright 2013 The Chromium Authors. All rights reserved. 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 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 "components/autofill/core/browser/form_structure.h" 5 #include "components/autofill/core/browser/form_structure.h"
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/strings/string_util.h" 8 #include "base/strings/string_util.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "components/autofill/content/browser/autocheckout_page_meta_data.h" 10 #include "components/autofill/content/browser/autocheckout_page_meta_data.h"
(...skipping 2311 matching lines...) Expand 10 before | Expand all | Expand 10 after
2322 field.form_control_type = "text"; 2322 field.form_control_type = "text";
2323 2323
2324 field.label = ASCIIToUTF16("email"); 2324 field.label = ASCIIToUTF16("email");
2325 field.name = ASCIIToUTF16("email"); 2325 field.name = ASCIIToUTF16("email");
2326 form.fields.push_back(field); 2326 form.fields.push_back(field);
2327 2327
2328 field.label = ASCIIToUTF16("First Name"); 2328 field.label = ASCIIToUTF16("First Name");
2329 field.name = ASCIIToUTF16("first"); 2329 field.name = ASCIIToUTF16("first");
2330 form.fields.push_back(field); 2330 form.fields.push_back(field);
2331 2331
2332 // Password fields shouldn't affect the signature. 2332 // Checkable fields shouldn't affect the signature.
2333 field.label = ASCIIToUTF16("Password"); 2333 field.label = ASCIIToUTF16("Select");
2334 field.name = ASCIIToUTF16("password"); 2334 field.name = ASCIIToUTF16("Select");
2335 field.form_control_type = "password"; 2335 field.form_control_type = "checkbox";
2336 field.is_checkable = true;
2336 form.fields.push_back(field); 2337 form.fields.push_back(field);
2337 2338
2338 form_structure.reset(new FormStructure(form, std::string())); 2339 form_structure.reset(new FormStructure(form, std::string()));
2339 2340
2340 EXPECT_EQ(FormStructureTest::Hash64Bit( 2341 EXPECT_EQ(FormStructureTest::Hash64Bit(
2341 std::string("://&&email&first")), 2342 std::string("://&&email&first")),
2342 form_structure->FormSignature()); 2343 form_structure->FormSignature());
2343 2344
2344 form.origin = GURL(std::string("http://www.facebook.com")); 2345 form.origin = GURL(std::string("http://www.facebook.com"));
2345 form_structure.reset(new FormStructure(form, std::string())); 2346 form_structure.reset(new FormStructure(form, std::string()));
2346 EXPECT_EQ(FormStructureTest::Hash64Bit( 2347 EXPECT_EQ(FormStructureTest::Hash64Bit(
2347 std::string("http://www.facebook.com&&email&first")), 2348 std::string("http://www.facebook.com&&email&first")),
2348 form_structure->FormSignature()); 2349 form_structure->FormSignature());
2349 2350
2350 form.action = GURL(std::string("https://login.facebook.com/path")); 2351 form.action = GURL(std::string("https://login.facebook.com/path"));
2351 form_structure.reset(new FormStructure(form, std::string())); 2352 form_structure.reset(new FormStructure(form, std::string()));
2352 EXPECT_EQ(FormStructureTest::Hash64Bit( 2353 EXPECT_EQ(FormStructureTest::Hash64Bit(
2353 std::string("https://login.facebook.com&&email&first")), 2354 std::string("https://login.facebook.com&&email&first")),
2354 form_structure->FormSignature()); 2355 form_structure->FormSignature());
2355 2356
2356 form.name = ASCIIToUTF16("login_form"); 2357 form.name = ASCIIToUTF16("login_form");
2357 form_structure.reset(new FormStructure(form, std::string())); 2358 form_structure.reset(new FormStructure(form, std::string()));
2358 EXPECT_EQ(FormStructureTest::Hash64Bit( 2359 EXPECT_EQ(FormStructureTest::Hash64Bit(
2359 std::string("https://login.facebook.com&login_form&email&first")), 2360 std::string("https://login.facebook.com&login_form&email&first")),
2360 form_structure->FormSignature()); 2361 form_structure->FormSignature());
2361 2362
2363 field.is_checkable = false;
2362 field.label = ASCIIToUTF16("Random Field label"); 2364 field.label = ASCIIToUTF16("Random Field label");
2363 field.name = ASCIIToUTF16("random1234"); 2365 field.name = ASCIIToUTF16("random1234");
2364 field.form_control_type = "text"; 2366 field.form_control_type = "text";
2365 form.fields.push_back(field); 2367 form.fields.push_back(field);
2366 field.label = ASCIIToUTF16("Random Field label2"); 2368 field.label = ASCIIToUTF16("Random Field label2");
2367 field.name = ASCIIToUTF16("random12345"); 2369 field.name = ASCIIToUTF16("random12345");
2368 form.fields.push_back(field); 2370 form.fields.push_back(field);
2369 field.label = ASCIIToUTF16("Random Field label3"); 2371 field.label = ASCIIToUTF16("Random Field label3");
2370 field.name = ASCIIToUTF16("1random12345678"); 2372 field.name = ASCIIToUTF16("1random12345678");
2371 form.fields.push_back(field); 2373 form.fields.push_back(field);
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
2417 form.method = ASCIIToUTF16("POST"); 2419 form.method = ASCIIToUTF16("POST");
2418 form.origin = GURL("http://cool.com"); 2420 form.origin = GURL("http://cool.com");
2419 form.action = form.origin.Resolve("/login"); 2421 form.action = form.origin.Resolve("/login");
2420 2422
2421 FormFieldData field; 2423 FormFieldData field;
2422 field.label = ASCIIToUTF16("username"); 2424 field.label = ASCIIToUTF16("username");
2423 field.name = ASCIIToUTF16("username"); 2425 field.name = ASCIIToUTF16("username");
2424 field.form_control_type = "text"; 2426 field.form_control_type = "text";
2425 form.fields.push_back(field); 2427 form.fields.push_back(field);
2426 2428
2427 field.label = ASCIIToUTF16("password"); 2429 field.label = ASCIIToUTF16("select");
2428 field.name = ASCIIToUTF16("password"); 2430 field.name = ASCIIToUTF16("select");
2429 field.form_control_type = "password"; 2431 field.form_control_type = "checkbox";
2432 field.is_checkable = true;
2430 form.fields.push_back(field); 2433 form.fields.push_back(field);
2431 2434
2432 field.label = base::string16(); 2435 field.label = base::string16();
2433 field.name = ASCIIToUTF16("email"); 2436 field.name = ASCIIToUTF16("email");
2434 field.form_control_type = "text"; 2437 field.form_control_type = "text";
2438 field.is_checkable = false;
2435 form.fields.push_back(field); 2439 form.fields.push_back(field);
2436 2440
2437 ScopedVector<FormStructure> forms; 2441 ScopedVector<FormStructure> forms;
2438 forms.push_back(new FormStructure(form, std::string())); 2442 forms.push_back(new FormStructure(form, std::string()));
2439 std::vector<std::string> encoded_signatures; 2443 std::vector<std::string> encoded_signatures;
2440 std::string encoded_xml; 2444 std::string encoded_xml;
2441 2445
2442 const char * const kSignature = "18006745212084723782"; 2446 const char * const kSignature = "18006745212084723782";
2443 const char * const kResponse = 2447 const char * const kResponse =
2444 "<\?xml version=\"1.0\" encoding=\"UTF-8\"?><autofillquery " 2448 "<\?xml version=\"1.0\" encoding=\"UTF-8\"?><autofillquery "
(...skipping 12 matching lines...) Expand all
2457 "<autofillqueryresponse><field autofilltype=\"3\" />" 2461 "<autofillqueryresponse><field autofilltype=\"3\" />"
2458 "<field autofilltype=\"9\" /></autofillqueryresponse>"; 2462 "<field autofilltype=\"9\" /></autofillqueryresponse>";
2459 FormStructure::ParseQueryResponse(kServerResponse, forms.get(), 2463 FormStructure::ParseQueryResponse(kServerResponse, forms.get(),
2460 &page_meta_data, TestAutofillMetrics()); 2464 &page_meta_data, TestAutofillMetrics());
2461 ASSERT_EQ(NAME_FIRST, forms[0]->field(0)->server_type()); 2465 ASSERT_EQ(NAME_FIRST, forms[0]->field(0)->server_type());
2462 ASSERT_EQ(NO_SERVER_DATA, forms[0]->field(1)->server_type()); 2466 ASSERT_EQ(NO_SERVER_DATA, forms[0]->field(1)->server_type());
2463 ASSERT_EQ(EMAIL_ADDRESS, forms[0]->field(2)->server_type()); 2467 ASSERT_EQ(EMAIL_ADDRESS, forms[0]->field(2)->server_type());
2464 } 2468 }
2465 2469
2466 } // namespace autofill 2470 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698