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

Side by Side Diff: chrome/browser/password_manager/password_store_mac_unittest.cc

Issue 655413002: Convert ARRAYSIZE_UNSAFE -> arraysize in chrome/browser/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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 (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 "chrome/browser/password_manager/password_store_mac.h" 5 #include "chrome/browser/password_manager/password_store_mac.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/files/scoped_temp_dir.h" 8 #include "base/files/scoped_temp_dir.h"
9 #include "base/memory/scoped_vector.h" 9 #include "base/memory/scoped_vector.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after
317 { PasswordForm::SCHEME_DIGEST, "https://some.domain.com/high_security", 317 { PasswordForm::SCHEME_DIGEST, "https://some.domain.com/high_security",
318 "https://some.domain.com/", L"digest_auth_user", L"digest", true, 318 "https://some.domain.com/", L"digest_auth_user", L"digest", true,
319 1998, 3, 30, 10, 0, 0 }, 319 1998, 3, 30, 10, 0, 0 },
320 // This one gives us an invalid date, which we will treat as a "NULL" date 320 // This one gives us an invalid date, which we will treat as a "NULL" date
321 // which is 1601. 321 // which is 1601.
322 { PasswordForm::SCHEME_OTHER, "http://a.server.com/", 322 { PasswordForm::SCHEME_OTHER, "http://a.server.com/",
323 "http://a.server.com/", L"abc", L"123", false, 323 "http://a.server.com/", L"abc", L"123", false,
324 1601, 1, 1, 0, 0, 0 }, 324 1601, 1, 1, 0, 0, 0 },
325 }; 325 };
326 326
327 for (unsigned int i = 0; i < ARRAYSIZE_UNSAFE(expected); ++i) { 327 for (unsigned int i = 0; i < arraysize(expected); ++i) {
328 // Create our fake KeychainItemRef; see MockAppleKeychain docs. 328 // Create our fake KeychainItemRef; see MockAppleKeychain docs.
329 SecKeychainItemRef keychain_item = 329 SecKeychainItemRef keychain_item =
330 reinterpret_cast<SecKeychainItemRef>(i + 1); 330 reinterpret_cast<SecKeychainItemRef>(i + 1);
331 PasswordForm form; 331 PasswordForm form;
332 bool parsed = internal_keychain_helpers::FillPasswordFormFromKeychainItem( 332 bool parsed = internal_keychain_helpers::FillPasswordFormFromKeychainItem(
333 *keychain_, keychain_item, &form, true); 333 *keychain_, keychain_item, &form, true);
334 334
335 EXPECT_TRUE(parsed) << "In iteration " << i; 335 EXPECT_TRUE(parsed) << "In iteration " << i;
336 336
337 EXPECT_EQ(expected[i].scheme, form.scheme) << "In iteration " << i; 337 EXPECT_EQ(expected[i].scheme, form.scheme) << "In iteration " << i;
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 0 }, 418 0 },
419 0, 0 }, 419 0, 0 },
420 // Garbage forms should have no matches. 420 // Garbage forms should have no matches.
421 { { PasswordForm::SCHEME_HTML, "foo/bar/baz", 421 { { PasswordForm::SCHEME_HTML, "foo/bar/baz",
422 NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, false, 0 }, 0, 0 }, 422 NULL, NULL, NULL, NULL, NULL, NULL, NULL, false, false, 0 }, 0, 0 },
423 }; 423 };
424 424
425 MacKeychainPasswordFormAdapter keychain_adapter(keychain_); 425 MacKeychainPasswordFormAdapter keychain_adapter(keychain_);
426 MacKeychainPasswordFormAdapter owned_keychain_adapter(keychain_); 426 MacKeychainPasswordFormAdapter owned_keychain_adapter(keychain_);
427 owned_keychain_adapter.SetFindsOnlyOwnedItems(true); 427 owned_keychain_adapter.SetFindsOnlyOwnedItems(true);
428 for (unsigned int i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { 428 for (unsigned int i = 0; i < arraysize(test_data); ++i) {
429 scoped_ptr<PasswordForm> query_form( 429 scoped_ptr<PasswordForm> query_form(
430 CreatePasswordFormFromData(test_data[i].data)); 430 CreatePasswordFormFromData(test_data[i].data));
431 431
432 // Check matches treating the form as a fill target. 432 // Check matches treating the form as a fill target.
433 std::vector<PasswordForm*> matching_items = 433 std::vector<PasswordForm*> matching_items =
434 keychain_adapter.PasswordsFillingForm(query_form->signon_realm, 434 keychain_adapter.PasswordsFillingForm(query_form->signon_realm,
435 query_form->scheme); 435 query_form->scheme);
436 EXPECT_EQ(test_data[i].expected_fill_matches, matching_items.size()); 436 EXPECT_EQ(test_data[i].expected_fill_matches, matching_items.size());
437 STLDeleteElements(&matching_items); 437 STLDeleteElements(&matching_items);
438 438
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
575 // password; see MockAppleKeychain::ItemModifyAttributesAndData) is 575 // password; see MockAppleKeychain::ItemModifyAttributesAndData) is
576 // reported. 576 // reported.
577 { { PasswordForm::SCHEME_HTML, "http://some.domain.com", 577 { { PasswordForm::SCHEME_HTML, "http://some.domain.com",
578 "http://some.domain.com/insecure.html", NULL, NULL, NULL, NULL, 578 "http://some.domain.com/insecure.html", NULL, NULL, NULL, NULL,
579 L"joe_user", L"fail_me", false, false, 0 }, false }, 579 L"joe_user", L"fail_me", false, false, 0 }, false },
580 }; 580 };
581 581
582 MacKeychainPasswordFormAdapter owned_keychain_adapter(keychain_); 582 MacKeychainPasswordFormAdapter owned_keychain_adapter(keychain_);
583 owned_keychain_adapter.SetFindsOnlyOwnedItems(true); 583 owned_keychain_adapter.SetFindsOnlyOwnedItems(true);
584 584
585 for (unsigned int i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { 585 for (unsigned int i = 0; i < arraysize(test_data); ++i) {
586 scoped_ptr<PasswordForm> in_form( 586 scoped_ptr<PasswordForm> in_form(
587 CreatePasswordFormFromData(test_data[i].data)); 587 CreatePasswordFormFromData(test_data[i].data));
588 bool add_succeeded = owned_keychain_adapter.AddPassword(*in_form); 588 bool add_succeeded = owned_keychain_adapter.AddPassword(*in_form);
589 EXPECT_EQ(test_data[i].should_succeed, add_succeeded); 589 EXPECT_EQ(test_data[i].should_succeed, add_succeeded);
590 if (add_succeeded) { 590 if (add_succeeded) {
591 EXPECT_TRUE(owned_keychain_adapter.HasPasswordsMergeableWithForm( 591 EXPECT_TRUE(owned_keychain_adapter.HasPasswordsMergeableWithForm(
592 *in_form)); 592 *in_form));
593 EXPECT_TRUE(owned_keychain_adapter.HasPasswordExactlyMatchingForm( 593 EXPECT_TRUE(owned_keychain_adapter.HasPasswordExactlyMatchingForm(
594 *in_form)); 594 *in_form));
595 } 595 }
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
632 }; 632 };
633 633
634 MacKeychainPasswordFormAdapter owned_keychain_adapter(keychain_); 634 MacKeychainPasswordFormAdapter owned_keychain_adapter(keychain_);
635 owned_keychain_adapter.SetFindsOnlyOwnedItems(true); 635 owned_keychain_adapter.SetFindsOnlyOwnedItems(true);
636 636
637 // Add our test item so that we can delete it. 637 // Add our test item so that we can delete it.
638 PasswordForm* add_form = CreatePasswordFormFromData(test_data[0].data); 638 PasswordForm* add_form = CreatePasswordFormFromData(test_data[0].data);
639 EXPECT_TRUE(owned_keychain_adapter.AddPassword(*add_form)); 639 EXPECT_TRUE(owned_keychain_adapter.AddPassword(*add_form));
640 delete add_form; 640 delete add_form;
641 641
642 for (unsigned int i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) { 642 for (unsigned int i = 0; i < arraysize(test_data); ++i) {
643 scoped_ptr<PasswordForm> form(CreatePasswordFormFromData( 643 scoped_ptr<PasswordForm> form(CreatePasswordFormFromData(
644 test_data[i].data)); 644 test_data[i].data));
645 EXPECT_EQ(test_data[i].should_succeed, 645 EXPECT_EQ(test_data[i].should_succeed,
646 owned_keychain_adapter.RemovePassword(*form)); 646 owned_keychain_adapter.RemovePassword(*form));
647 647
648 MacKeychainPasswordFormAdapter keychain_adapter(keychain_); 648 MacKeychainPasswordFormAdapter keychain_adapter(keychain_);
649 bool match = keychain_adapter.HasPasswordExactlyMatchingForm(*form); 649 bool match = keychain_adapter.HasPasswordExactlyMatchingForm(*form);
650 EXPECT_EQ(test_data[i].should_succeed, !match); 650 EXPECT_EQ(test_data[i].should_succeed, !match);
651 } 651 }
652 } 652 }
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
888 "http://dont.remember.com/", 888 "http://dont.remember.com/",
889 "http://dont.remember.com/handlepage.cgi", 889 "http://dont.remember.com/handlepage.cgi",
890 L"submit", L"username", L"password", L"joe_user", L"", 890 L"submit", L"username", L"password", L"joe_user", L"",
891 true, false, 1240000000 }, 891 true, false, 1240000000 },
892 { PasswordForm::SCHEME_HTML, "http://some.domain.com/", 892 { PasswordForm::SCHEME_HTML, "http://some.domain.com/",
893 "http://some.domain.com/path.html", "http://some.domain.com/action.cgi", 893 "http://some.domain.com/path.html", "http://some.domain.com/action.cgi",
894 L"submit", L"username", L"password", NULL, NULL, 894 L"submit", L"username", L"password", NULL, NULL,
895 true, false, 1212121212 }, 895 true, false, 1212121212 },
896 }; 896 };
897 std::vector<PasswordForm*> database_forms; 897 std::vector<PasswordForm*> database_forms;
898 for (unsigned int i = 0; i < ARRAYSIZE_UNSAFE(db_data); ++i) { 898 for (unsigned int i = 0; i < arraysize(db_data); ++i) {
899 database_forms.push_back(CreatePasswordFormFromData(db_data[i])); 899 database_forms.push_back(CreatePasswordFormFromData(db_data[i]));
900 } 900 }
901 std::vector<PasswordForm*> merged_forms = 901 std::vector<PasswordForm*> merged_forms =
902 internal_keychain_helpers::GetPasswordsForForms(*keychain_, 902 internal_keychain_helpers::GetPasswordsForForms(*keychain_,
903 &database_forms); 903 &database_forms);
904 EXPECT_EQ(2U, database_forms.size()); 904 EXPECT_EQ(2U, database_forms.size());
905 ASSERT_EQ(3U, merged_forms.size()); 905 ASSERT_EQ(3U, merged_forms.size());
906 EXPECT_EQ(ASCIIToUTF16("sekrit"), merged_forms[0]->password_value); 906 EXPECT_EQ(ASCIIToUTF16("sekrit"), merged_forms[0]->password_value);
907 EXPECT_EQ(ASCIIToUTF16("sekrit"), merged_forms[1]->password_value); 907 EXPECT_EQ(ASCIIToUTF16("sekrit"), merged_forms[1]->password_value);
908 EXPECT_TRUE(merged_forms[2]->blacklisted_by_user); 908 EXPECT_TRUE(merged_forms[2]->blacklisted_by_user);
909 909
910 STLDeleteElements(&database_forms); 910 STLDeleteElements(&database_forms);
911 STLDeleteElements(&merged_forms); 911 STLDeleteElements(&merged_forms);
912 } 912 }
913 913
914 TEST_F(PasswordStoreMacInternalsTest, TestBlacklistedFiltering) { 914 TEST_F(PasswordStoreMacInternalsTest, TestBlacklistedFiltering) {
915 PasswordFormData db_data[] = { 915 PasswordFormData db_data[] = {
916 { PasswordForm::SCHEME_HTML, "http://dont.remember.com/", 916 { PasswordForm::SCHEME_HTML, "http://dont.remember.com/",
917 "http://dont.remember.com/", 917 "http://dont.remember.com/",
918 "http://dont.remember.com/handlepage.cgi", 918 "http://dont.remember.com/handlepage.cgi",
919 L"submit", L"username", L"password", L"joe_user", L"non_empty_password", 919 L"submit", L"username", L"password", L"joe_user", L"non_empty_password",
920 true, false, 1240000000 }, 920 true, false, 1240000000 },
921 { PasswordForm::SCHEME_HTML, "https://dont.remember.com/", 921 { PasswordForm::SCHEME_HTML, "https://dont.remember.com/",
922 "https://dont.remember.com/", 922 "https://dont.remember.com/",
923 "https://dont.remember.com/handlepage_secure.cgi", 923 "https://dont.remember.com/handlepage_secure.cgi",
924 L"submit", L"username", L"password", L"joe_user", L"non_empty_password", 924 L"submit", L"username", L"password", L"joe_user", L"non_empty_password",
925 true, false, 1240000000 }, 925 true, false, 1240000000 },
926 }; 926 };
927 std::vector<PasswordForm*> database_forms; 927 std::vector<PasswordForm*> database_forms;
928 for (unsigned int i = 0; i < ARRAYSIZE_UNSAFE(db_data); ++i) { 928 for (unsigned int i = 0; i < arraysize(db_data); ++i) {
929 database_forms.push_back(CreatePasswordFormFromData(db_data[i])); 929 database_forms.push_back(CreatePasswordFormFromData(db_data[i]));
930 } 930 }
931 std::vector<PasswordForm*> merged_forms = 931 std::vector<PasswordForm*> merged_forms =
932 internal_keychain_helpers::GetPasswordsForForms(*keychain_, 932 internal_keychain_helpers::GetPasswordsForForms(*keychain_,
933 &database_forms); 933 &database_forms);
934 EXPECT_EQ(2U, database_forms.size()); 934 EXPECT_EQ(2U, database_forms.size());
935 ASSERT_EQ(0U, merged_forms.size()); 935 ASSERT_EQ(0U, merged_forms.size());
936 936
937 STLDeleteElements(&database_forms); 937 STLDeleteElements(&database_forms);
938 STLDeleteElements(&merged_forms); 938 STLDeleteElements(&merged_forms);
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
1148 // Update a password that doesn't exist in either location. This tests the 1148 // Update a password that doesn't exist in either location. This tests the
1149 // case where a form is filled, then the stored login is removed, then the 1149 // case where a form is filled, then the stored login is removed, then the
1150 // form is submitted. 1150 // form is submitted.
1151 { { PasswordForm::SCHEME_HTML, "http://different.com/", 1151 { { PasswordForm::SCHEME_HTML, "http://different.com/",
1152 "http://different.com/index.html", "login.cgi", 1152 "http://different.com/index.html", "login.cgi",
1153 L"username", L"password", L"submit", L"abc", L"123", 1153 L"username", L"password", L"submit", L"abc", L"123",
1154 true, false, 2 }, 1154 true, false, 2 },
1155 NULL, 1155 NULL,
1156 }, 1156 },
1157 }; 1157 };
1158 for (unsigned int i = 0; i < ARRAYSIZE_UNSAFE(updates); ++i) { 1158 for (unsigned int i = 0; i < arraysize(updates); ++i) {
1159 scoped_ptr<PasswordForm> form(CreatePasswordFormFromData( 1159 scoped_ptr<PasswordForm> form(CreatePasswordFormFromData(
1160 updates[i].form_data)); 1160 updates[i].form_data));
1161 store_->UpdateLogin(*form); 1161 store_->UpdateLogin(*form);
1162 } 1162 }
1163 1163
1164 WaitForStoreUpdate(); 1164 WaitForStoreUpdate();
1165 1165
1166 MacKeychainPasswordFormAdapter keychain_adapter(keychain_); 1166 MacKeychainPasswordFormAdapter keychain_adapter(keychain_);
1167 for (unsigned int i = 0; i < ARRAYSIZE_UNSAFE(updates); ++i) { 1167 for (unsigned int i = 0; i < arraysize(updates); ++i) {
1168 scoped_ptr<PasswordForm> query_form( 1168 scoped_ptr<PasswordForm> query_form(
1169 CreatePasswordFormFromData(updates[i].form_data)); 1169 CreatePasswordFormFromData(updates[i].form_data));
1170 1170
1171 std::vector<PasswordForm*> matching_items = 1171 std::vector<PasswordForm*> matching_items =
1172 keychain_adapter.PasswordsFillingForm(query_form->signon_realm, 1172 keychain_adapter.PasswordsFillingForm(query_form->signon_realm,
1173 query_form->scheme); 1173 query_form->scheme);
1174 if (updates[i].password) { 1174 if (updates[i].password) {
1175 EXPECT_GT(matching_items.size(), 0U) << "iteration " << i; 1175 EXPECT_GT(matching_items.size(), 0U) << "iteration " << i;
1176 if (matching_items.size() >= 1) 1176 if (matching_items.size() >= 1)
1177 EXPECT_EQ(ASCIIToUTF16(updates[i].password), 1177 EXPECT_EQ(ASCIIToUTF16(updates[i].password),
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
1436 ASSERT_EQ(1u, matching_items.size()); 1436 ASSERT_EQ(1u, matching_items.size());
1437 EXPECT_EQ(ASCIIToUTF16("joe_user"), matching_items[0]->username_value); 1437 EXPECT_EQ(ASCIIToUTF16("joe_user"), matching_items[0]->username_value);
1438 matching_items.clear(); 1438 matching_items.clear();
1439 1439
1440 // Check the third-party password is still there. 1440 // Check the third-party password is still there.
1441 owned_keychain_adapter.SetFindsOnlyOwnedItems(false); 1441 owned_keychain_adapter.SetFindsOnlyOwnedItems(false);
1442 matching_items.get() = owned_keychain_adapter.PasswordsFillingForm( 1442 matching_items.get() = owned_keychain_adapter.PasswordsFillingForm(
1443 "http://some.domain.com/insecure.html", PasswordForm::SCHEME_HTML); 1443 "http://some.domain.com/insecure.html", PasswordForm::SCHEME_HTML);
1444 ASSERT_EQ(1u, matching_items.size()); 1444 ASSERT_EQ(1u, matching_items.size());
1445 } 1445 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698