| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <stdarg.h> | 5 #include <stdarg.h> |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/prefs/pref_service.h" | 8 #include "base/prefs/pref_service.h" |
| 9 #include "base/strings/string_number_conversions.h" | 9 #include "base/strings/string_number_conversions.h" |
| 10 #include "base/strings/string_util.h" | 10 #include "base/strings/string_util.h" |
| (...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 352 form_google_.submit_element = UTF8ToUTF16("submit"); | 352 form_google_.submit_element = UTF8ToUTF16("submit"); |
| 353 form_google_.signon_realm = "http://www.google.com/"; | 353 form_google_.signon_realm = "http://www.google.com/"; |
| 354 form_google_.type = PasswordForm::TYPE_GENERATED; | 354 form_google_.type = PasswordForm::TYPE_GENERATED; |
| 355 form_google_.date_created = base::Time::Now(); | 355 form_google_.date_created = base::Time::Now(); |
| 356 form_google_.date_synced = base::Time::Now(); | 356 form_google_.date_synced = base::Time::Now(); |
| 357 form_google_.display_name = UTF8ToUTF16("Joe Schmoe"); | 357 form_google_.display_name = UTF8ToUTF16("Joe Schmoe"); |
| 358 form_google_.avatar_url = GURL("http://www.google.com/avatar"); | 358 form_google_.avatar_url = GURL("http://www.google.com/avatar"); |
| 359 form_google_.federation_url = GURL("http://www.google.com/federation_url"); | 359 form_google_.federation_url = GURL("http://www.google.com/federation_url"); |
| 360 form_google_.skip_zero_click = true; | 360 form_google_.skip_zero_click = true; |
| 361 form_google_.generation_upload_status = PasswordForm::POSITIVE_SIGNAL_SENT; | 361 form_google_.generation_upload_status = PasswordForm::POSITIVE_SIGNAL_SENT; |
| 362 form_google_.form_data.name = UTF8ToUTF16("form_name"); |
| 363 form_google_.form_data.user_submitted = true; |
| 362 | 364 |
| 363 form_facebook_.origin = GURL("http://www.facebook.com/"); | 365 form_facebook_.origin = GURL("http://www.facebook.com/"); |
| 364 form_facebook_.action = GURL("http://www.facebook.com/login"); | 366 form_facebook_.action = GURL("http://www.facebook.com/login"); |
| 365 form_facebook_.username_element = UTF8ToUTF16("user"); | 367 form_facebook_.username_element = UTF8ToUTF16("user"); |
| 366 form_facebook_.username_value = UTF8ToUTF16("a"); | 368 form_facebook_.username_value = UTF8ToUTF16("a"); |
| 367 form_facebook_.password_element = UTF8ToUTF16("password"); | 369 form_facebook_.password_element = UTF8ToUTF16("password"); |
| 368 form_facebook_.password_value = UTF8ToUTF16("b"); | 370 form_facebook_.password_value = UTF8ToUTF16("b"); |
| 369 form_facebook_.submit_element = UTF8ToUTF16("submit"); | 371 form_facebook_.submit_element = UTF8ToUTF16("submit"); |
| 370 form_facebook_.signon_realm = "http://www.facebook.com/"; | 372 form_facebook_.signon_realm = "http://www.facebook.com/"; |
| 371 form_facebook_.date_created = base::Time::Now(); | 373 form_facebook_.date_created = base::Time::Now(); |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 441 } | 443 } |
| 442 } | 444 } |
| 443 | 445 |
| 444 void CheckMockKeyringItem(const MockKeyringItem* item, | 446 void CheckMockKeyringItem(const MockKeyringItem* item, |
| 445 const PasswordForm& form, | 447 const PasswordForm& form, |
| 446 const std::string& app_string) { | 448 const std::string& app_string) { |
| 447 // We always add items to the login keyring. | 449 // We always add items to the login keyring. |
| 448 EXPECT_EQ("login", item->keyring); | 450 EXPECT_EQ("login", item->keyring); |
| 449 EXPECT_EQ(form.origin.spec(), item->display_name); | 451 EXPECT_EQ(form.origin.spec(), item->display_name); |
| 450 EXPECT_EQ(UTF16ToUTF8(form.password_value), item->password); | 452 EXPECT_EQ(UTF16ToUTF8(form.password_value), item->password); |
| 451 EXPECT_EQ(21u, item->attributes.size()); | 453 EXPECT_EQ(22u, item->attributes.size()); |
| 452 CheckStringAttribute(item, "origin_url", form.origin.spec()); | 454 CheckStringAttribute(item, "origin_url", form.origin.spec()); |
| 453 CheckStringAttribute(item, "action_url", form.action.spec()); | 455 CheckStringAttribute(item, "action_url", form.action.spec()); |
| 454 CheckStringAttribute(item, "username_element", | 456 CheckStringAttribute(item, "username_element", |
| 455 UTF16ToUTF8(form.username_element)); | 457 UTF16ToUTF8(form.username_element)); |
| 456 CheckStringAttribute(item, "username_value", | 458 CheckStringAttribute(item, "username_value", |
| 457 UTF16ToUTF8(form.username_value)); | 459 UTF16ToUTF8(form.username_value)); |
| 458 CheckStringAttribute(item, "password_element", | 460 CheckStringAttribute(item, "password_element", |
| 459 UTF16ToUTF8(form.password_element)); | 461 UTF16ToUTF8(form.password_element)); |
| 460 CheckStringAttribute(item, "submit_element", | 462 CheckStringAttribute(item, "submit_element", |
| 461 UTF16ToUTF8(form.submit_element)); | 463 UTF16ToUTF8(form.submit_element)); |
| 462 CheckStringAttribute(item, "signon_realm", form.signon_realm); | 464 CheckStringAttribute(item, "signon_realm", form.signon_realm); |
| 463 CheckUint32Attribute(item, "ssl_valid", form.ssl_valid); | 465 CheckUint32Attribute(item, "ssl_valid", form.ssl_valid); |
| 464 CheckUint32Attribute(item, "preferred", form.preferred); | 466 CheckUint32Attribute(item, "preferred", form.preferred); |
| 465 // We don't check the date created. It varies. | 467 // We don't check the date created. It varies. |
| 466 CheckUint32Attribute(item, "blacklisted_by_user", form.blacklisted_by_user); | 468 CheckUint32Attribute(item, "blacklisted_by_user", form.blacklisted_by_user); |
| 467 CheckUint32Attribute(item, "type", form.type); | 469 CheckUint32Attribute(item, "type", form.type); |
| 468 CheckUint32Attribute(item, "times_used", form.times_used); | 470 CheckUint32Attribute(item, "times_used", form.times_used); |
| 469 CheckUint32Attribute(item, "scheme", form.scheme); | 471 CheckUint32Attribute(item, "scheme", form.scheme); |
| 470 CheckStringAttribute(item, "date_synced", base::Int64ToString( | 472 CheckStringAttribute(item, "date_synced", base::Int64ToString( |
| 471 form.date_synced.ToInternalValue())); | 473 form.date_synced.ToInternalValue())); |
| 472 CheckStringAttribute(item, "display_name", UTF16ToUTF8(form.display_name)); | 474 CheckStringAttribute(item, "display_name", UTF16ToUTF8(form.display_name)); |
| 473 CheckStringAttribute(item, "avatar_url", form.avatar_url.spec()); | 475 CheckStringAttribute(item, "avatar_url", form.avatar_url.spec()); |
| 474 CheckStringAttribute(item, "federation_url", form.federation_url.spec()); | 476 CheckStringAttribute(item, "federation_url", form.federation_url.spec()); |
| 475 CheckUint32Attribute(item, "skip_zero_click", form.skip_zero_click); | 477 CheckUint32Attribute(item, "skip_zero_click", form.skip_zero_click); |
| 476 CheckUint32Attribute(item, "generation_upload_status", | 478 CheckUint32Attribute(item, "generation_upload_status", |
| 477 form.generation_upload_status); | 479 form.generation_upload_status); |
| 478 CheckStringAttribute(item, "application", app_string); | 480 CheckStringAttribute(item, "application", app_string); |
| 481 autofill::FormData actual; |
| 482 DeserializeFormDataFromBase64String( |
| 483 item->attributes.at("form_data").value_string, &actual); |
| 484 EXPECT_TRUE(form.form_data.SameFormAs(actual)); |
| 479 } | 485 } |
| 480 | 486 |
| 481 // Saves |credentials| and then gets logins matching |url| and |scheme|. | 487 // Saves |credentials| and then gets logins matching |url| and |scheme|. |
| 482 // Returns true when something is found, and in such case copies the result to | 488 // Returns true when something is found, and in such case copies the result to |
| 483 // |result| when |result| is not NULL. (Note that there can be max. 1 result, | 489 // |result| when |result| is not NULL. (Note that there can be max. 1 result, |
| 484 // derived from |credentials|.) | 490 // derived from |credentials|.) |
| 485 bool CheckCredentialAvailability(const PasswordForm& credentials, | 491 bool CheckCredentialAvailability(const PasswordForm& credentials, |
| 486 const GURL& url, | 492 const GURL& url, |
| 487 const PasswordForm::Scheme& scheme, | 493 const PasswordForm::Scheme& scheme, |
| 488 PasswordForm* result) { | 494 PasswordForm* result) { |
| (...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 765 if (mock_keyring_items.size() > 0) | 771 if (mock_keyring_items.size() > 0) |
| 766 CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome-42"); | 772 CheckMockKeyringItem(&mock_keyring_items[0], form_google_, "chrome-42"); |
| 767 } | 773 } |
| 768 | 774 |
| 769 TEST_F(NativeBackendGnomeTest, BasicListLogins) { | 775 TEST_F(NativeBackendGnomeTest, BasicListLogins) { |
| 770 NativeBackendGnome backend(42); | 776 NativeBackendGnome backend(42); |
| 771 backend.Init(); | 777 backend.Init(); |
| 772 | 778 |
| 773 BrowserThread::PostTask( | 779 BrowserThread::PostTask( |
| 774 BrowserThread::DB, FROM_HERE, | 780 BrowserThread::DB, FROM_HERE, |
| 775 base::Bind(base::IgnoreResult( &NativeBackendGnome::AddLogin), | 781 base::Bind(base::IgnoreResult(&NativeBackendGnome::AddLogin), |
| 776 base::Unretained(&backend), form_google_)); | 782 base::Unretained(&backend), form_google_)); |
| 777 | 783 |
| 778 ScopedVector<autofill::PasswordForm> form_list; | 784 ScopedVector<autofill::PasswordForm> form_list; |
| 779 BrowserThread::PostTask( | 785 BrowserThread::PostTask( |
| 780 BrowserThread::DB, FROM_HERE, | 786 BrowserThread::DB, FROM_HERE, |
| 781 base::Bind( | 787 base::Bind( |
| 782 base::IgnoreResult(&NativeBackendGnome::GetAutofillableLogins), | 788 base::IgnoreResult(&NativeBackendGnome::GetAutofillableLogins), |
| 783 base::Unretained(&backend), &form_list)); | 789 base::Unretained(&backend), &form_list)); |
| 784 | 790 |
| 785 RunBothThreads(); | 791 RunBothThreads(); |
| (...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1099 | 1105 |
| 1100 TEST_F(NativeBackendGnomeTest, RemoveLoginsCreatedBetween) { | 1106 TEST_F(NativeBackendGnomeTest, RemoveLoginsCreatedBetween) { |
| 1101 CheckRemoveLoginsBetween(CREATED); | 1107 CheckRemoveLoginsBetween(CREATED); |
| 1102 } | 1108 } |
| 1103 | 1109 |
| 1104 TEST_F(NativeBackendGnomeTest, RemoveLoginsSyncedBetween) { | 1110 TEST_F(NativeBackendGnomeTest, RemoveLoginsSyncedBetween) { |
| 1105 CheckRemoveLoginsBetween(SYNCED); | 1111 CheckRemoveLoginsBetween(SYNCED); |
| 1106 } | 1112 } |
| 1107 | 1113 |
| 1108 // TODO(mdm): add more basic tests here at some point. | 1114 // TODO(mdm): add more basic tests here at some point. |
| OLD | NEW |