Index: chrome/browser/password_manager/password_store_mac_unittest.cc |
diff --git a/chrome/browser/password_manager/password_store_mac_unittest.cc b/chrome/browser/password_manager/password_store_mac_unittest.cc |
index a303bec8a98f351bcea3900b37024ce877ea7d45..37c474d3ee2e3627721977a1ab44797496b95b06 100644 |
--- a/chrome/browser/password_manager/password_store_mac_unittest.cc |
+++ b/chrome/browser/password_manager/password_store_mac_unittest.cc |
@@ -14,7 +14,7 @@ |
#include "chrome/browser/password_manager/password_store_mac_internal.h" |
#include "chrome/common/chrome_paths.h" |
#include "components/password_manager/core/browser/login_database.h" |
-#include "components/password_manager/core/browser/password_form_data.h" |
+#include "components/password_manager/core/browser/password_manager_test_utils.h" |
#include "components/password_manager/core/browser/password_store_consumer.h" |
#include "content/public/test/test_browser_thread.h" |
#include "crypto/mock_apple_keychain.h" |
@@ -28,6 +28,7 @@ using content::BrowserThread; |
using crypto::MockAppleKeychain; |
using internal_keychain_helpers::FormsMatchForMerge; |
using internal_keychain_helpers::STRICT_FORM_MATCH; |
+using password_manager::CreatePasswordFormFromDataForTestingForTesting; |
using password_manager::LoginDatabase; |
using password_manager::PasswordStore; |
using password_manager::PasswordStoreConsumer; |
@@ -221,41 +222,6 @@ struct PasswordFormData { |
const double creation_time; |
}; |
-// Creates and returns a new PasswordForm built from form_data. |
-static scoped_ptr<PasswordForm> CreatePasswordFormFromData( |
- const PasswordFormData& form_data) { |
- scoped_ptr<PasswordForm> form(new PasswordForm()); |
- form->scheme = form_data.scheme; |
- form->preferred = form_data.preferred; |
- form->ssl_valid = form_data.ssl_valid; |
- form->date_created = base::Time::FromDoubleT(form_data.creation_time); |
- form->date_synced = form->date_created + base::TimeDelta::FromDays(1); |
- if (form_data.signon_realm) |
- form->signon_realm = std::string(form_data.signon_realm); |
- if (form_data.origin) |
- form->origin = GURL(form_data.origin); |
- if (form_data.action) |
- form->action = GURL(form_data.action); |
- if (form_data.submit_element) |
- form->submit_element = WideToUTF16(form_data.submit_element); |
- if (form_data.username_element) |
- form->username_element = WideToUTF16(form_data.username_element); |
- if (form_data.password_element) |
- form->password_element = WideToUTF16(form_data.password_element); |
- if (form_data.username_value) { |
- form->username_value = WideToUTF16(form_data.username_value); |
- form->display_name = form->username_value; |
- form->is_zero_click = true; |
- if (form_data.password_value) |
- form->password_value = WideToUTF16(form_data.password_value); |
- } else { |
- form->blacklisted_by_user = true; |
- } |
- form->avatar_url = GURL("https://accounts.google.com/Avatar"); |
- form->federation_url = GURL("https://accounts.google.com/login"); |
- return form.Pass(); |
-} |
- |
// Macro to simplify calling CheckFormsAgainstExpectations with a useful label. |
#define CHECK_FORMS(forms, expectations, i) \ |
CheckFormsAgainstExpectations(forms, expectations, #forms, i) |
@@ -268,50 +234,45 @@ static void CheckFormsAgainstExpectations( |
const std::vector<PasswordForm*>& forms, |
const std::vector<PasswordFormData*>& expectations, |
const char* forms_label, unsigned int test_number) { |
- const unsigned int kBufferSize = 128; |
- char test_label[kBufferSize]; |
- snprintf(test_label, kBufferSize, "%s in test %u", forms_label, test_number); |
- |
- EXPECT_EQ(expectations.size(), forms.size()) << test_label; |
+ EXPECT_EQ(expectations.size(), forms.size()) << forms_label << " in test " |
+ << test_number; |
if (expectations.size() != forms.size()) |
return; |
for (unsigned int i = 0; i < expectations.size(); ++i) { |
- snprintf(test_label, kBufferSize, "%s in test %u, item %u", |
- forms_label, test_number, i); |
+ SCOPED_TRACE(testing::Message << forms_label << " in test " << test_number |
engedy
2015/02/04 16:18:31
Nice, thanks!
|
+ << ", item " << i); |
PasswordForm* form = forms[i]; |
PasswordFormData* expectation = expectations[i]; |
- EXPECT_EQ(expectation->scheme, form->scheme) << test_label; |
- EXPECT_EQ(std::string(expectation->signon_realm), form->signon_realm) |
- << test_label; |
- EXPECT_EQ(GURL(expectation->origin), form->origin) << test_label; |
- EXPECT_EQ(GURL(expectation->action), form->action) << test_label; |
- EXPECT_EQ(WideToUTF16(expectation->submit_element), form->submit_element) |
- << test_label; |
+ EXPECT_EQ(expectation->scheme, form->scheme); |
+ EXPECT_EQ(std::string(expectation->signon_realm), form->signon_realm); |
+ EXPECT_EQ(GURL(expectation->origin), form->origin); |
+ EXPECT_EQ(GURL(expectation->action), form->action); |
+ EXPECT_EQ(WideToUTF16(expectation->submit_element), form->submit_element); |
EXPECT_EQ(WideToUTF16(expectation->username_element), |
- form->username_element) << test_label; |
+ form->username_element); |
EXPECT_EQ(WideToUTF16(expectation->password_element), |
- form->password_element) << test_label; |
+ form->password_element); |
if (expectation->username_value) { |
- EXPECT_EQ(WideToUTF16(expectation->username_value), |
- form->username_value) << test_label; |
- EXPECT_EQ(WideToUTF16(expectation->username_value), |
- form->display_name) << test_label; |
- EXPECT_TRUE(form->is_zero_click) << test_label; |
- EXPECT_EQ(WideToUTF16(expectation->password_value), |
- form->password_value) << test_label; |
+ EXPECT_EQ(WideToUTF16(expectation->username_value), form->username_value); |
+ EXPECT_EQ(WideToUTF16(expectation->username_value), form->display_name); |
+ EXPECT_TRUE(form->is_zero_click); |
+ EXPECT_EQ(WideToUTF16(expectation->password_value), form->password_value); |
} else { |
- EXPECT_TRUE(form->blacklisted_by_user) << test_label; |
+ EXPECT_TRUE(form->blacklisted_by_user); |
} |
- EXPECT_EQ(expectation->preferred, form->preferred) << test_label; |
- EXPECT_EQ(expectation->ssl_valid, form->ssl_valid) << test_label; |
+ EXPECT_EQ(expectation->preferred, form->preferred); |
+ EXPECT_EQ(expectation->ssl_valid, form->ssl_valid); |
EXPECT_DOUBLE_EQ(expectation->creation_time, |
- form->date_created.ToDoubleT()) << test_label; |
+ form->date_created.ToDoubleT()); |
base::Time created = base::Time::FromDoubleT(expectation->creation_time); |
- EXPECT_EQ(created + base::TimeDelta::FromDays(1), |
- form->date_synced) << test_label; |
- EXPECT_EQ(GURL("https://accounts.google.com/Avatar"), form->avatar_url); |
- EXPECT_EQ(GURL("https://accounts.google.com/login"), form->federation_url); |
+ EXPECT_EQ( |
+ created + base::TimeDelta::FromDays( |
+ password_manager::kTestingDaysAfterPasswordsAreSynced), |
+ form->date_synced); |
+ EXPECT_EQ(GURL(password_manager::kTestingAvatarUrlSpec), form->avatar_url); |
+ EXPECT_EQ(GURL(password_manager::kTestingFederationUrlSpec), |
+ form->federation_url); |
} |
} |
@@ -468,7 +429,7 @@ TEST_F(PasswordStoreMacInternalsTest, TestKeychainSearch) { |
owned_keychain_adapter.SetFindsOnlyOwnedItems(true); |
for (unsigned int i = 0; i < arraysize(test_data); ++i) { |
scoped_ptr<PasswordForm> query_form = |
- CreatePasswordFormFromData(test_data[i].data); |
+ CreatePasswordFormFromDataForTestingForTesting(test_data[i].data); |
// Check matches treating the form as a fill target. |
ScopedVector<autofill::PasswordForm> matching_items = |
@@ -548,7 +509,7 @@ TEST_F(PasswordStoreMacInternalsTest, TestKeychainExactSearch) { |
for (unsigned int i = 0; i < arraysize(base_form_data); ++i) { |
// Create a base form and make sure we find a match. |
scoped_ptr<PasswordForm> base_form = |
- CreatePasswordFormFromData(base_form_data[i]); |
+ CreatePasswordFormFromDataForTesting(base_form_data[i]); |
EXPECT_TRUE(keychain_adapter.HasPasswordsMergeableWithForm(*base_form)); |
EXPECT_TRUE(keychain_adapter.HasPasswordExactlyMatchingForm(*base_form)); |
@@ -622,7 +583,7 @@ TEST_F(PasswordStoreMacInternalsTest, TestKeychainAdd) { |
for (unsigned int i = 0; i < arraysize(test_data); ++i) { |
scoped_ptr<PasswordForm> in_form = |
- CreatePasswordFormFromData(test_data[i].data); |
+ CreatePasswordFormFromDataForTesting(test_data[i].data); |
bool add_succeeded = owned_keychain_adapter.AddPassword(*in_form); |
EXPECT_EQ(test_data[i].should_succeed, add_succeeded); |
if (add_succeeded) { |
@@ -640,7 +601,8 @@ TEST_F(PasswordStoreMacInternalsTest, TestKeychainAdd) { |
"http://some.domain.com/insecure.html", NULL, |
NULL, NULL, NULL, L"joe_user", L"updated_password", false, false, 0 |
}; |
- scoped_ptr<PasswordForm> update_form = CreatePasswordFormFromData(data); |
+ scoped_ptr<PasswordForm> update_form = |
+ CreatePasswordFormFromDataForTesting(data); |
MacKeychainPasswordFormAdapter keychain_adapter(keychain_); |
EXPECT_TRUE(keychain_adapter.AddPassword(*update_form)); |
SecKeychainItemRef keychain_item = reinterpret_cast<SecKeychainItemRef>(2); |
@@ -674,12 +636,12 @@ TEST_F(PasswordStoreMacInternalsTest, TestKeychainRemove) { |
// Add our test item so that we can delete it. |
scoped_ptr<PasswordForm> add_form = |
- CreatePasswordFormFromData(test_data[0].data); |
+ CreatePasswordFormFromDataForTesting(test_data[0].data); |
EXPECT_TRUE(owned_keychain_adapter.AddPassword(*add_form)); |
for (unsigned int i = 0; i < arraysize(test_data); ++i) { |
scoped_ptr<PasswordForm> form = |
- CreatePasswordFormFromData(test_data[i].data); |
+ CreatePasswordFormFromDataForTesting(test_data[i].data); |
EXPECT_EQ(test_data[i].should_succeed, |
owned_keychain_adapter.RemovePassword(*form)); |
@@ -880,13 +842,15 @@ TEST_F(PasswordStoreMacInternalsTest, TestFormMerge) { |
for (std::vector<PasswordFormData*>::iterator i = |
test_data[KEYCHAIN_INPUT][test_case].begin(); |
i != test_data[KEYCHAIN_INPUT][test_case].end(); ++i) { |
- keychain_forms.push_back(CreatePasswordFormFromData(*(*i)).release()); |
+ keychain_forms.push_back( |
+ CreatePasswordFormFromDataForTesting(*(*i)).release()); |
} |
ScopedVector<autofill::PasswordForm> database_forms; |
for (std::vector<PasswordFormData*>::iterator i = |
test_data[DATABASE_INPUT][test_case].begin(); |
i != test_data[DATABASE_INPUT][test_case].end(); ++i) { |
- database_forms.push_back(CreatePasswordFormFromData(*(*i)).release()); |
+ database_forms.push_back( |
+ CreatePasswordFormFromDataForTesting(*(*i)).release()); |
} |
ScopedVector<autofill::PasswordForm> merged_forms; |
@@ -931,7 +895,8 @@ TEST_F(PasswordStoreMacInternalsTest, TestPasswordBulkLookup) { |
}; |
ScopedVector<autofill::PasswordForm> database_forms; |
for (unsigned int i = 0; i < arraysize(db_data); ++i) { |
- database_forms.push_back(CreatePasswordFormFromData(db_data[i]).release()); |
+ database_forms.push_back( |
+ CreatePasswordFormFromDataForTesting(db_data[i]).release()); |
} |
ScopedVector<autofill::PasswordForm> merged_forms; |
internal_keychain_helpers::GetPasswordsForForms(*keychain_, &database_forms, |
@@ -958,7 +923,8 @@ TEST_F(PasswordStoreMacInternalsTest, TestBlacklistedFiltering) { |
}; |
ScopedVector<autofill::PasswordForm> database_forms; |
for (unsigned int i = 0; i < arraysize(db_data); ++i) { |
- database_forms.push_back(CreatePasswordFormFromData(db_data[i]).release()); |
+ database_forms.push_back( |
+ CreatePasswordFormFromDataForTesting(db_data[i]).release()); |
} |
ScopedVector<autofill::PasswordForm> merged_forms; |
internal_keychain_helpers::GetPasswordsForForms(*keychain_, &database_forms, |
@@ -1060,7 +1026,7 @@ TEST_F(PasswordStoreMacInternalsTest, TestPasswordGetAll) { |
}; |
for (unsigned int i = 0; i < arraysize(owned_password_data); ++i) { |
scoped_ptr<PasswordForm> form = |
- CreatePasswordFormFromData(owned_password_data[i]); |
+ CreatePasswordFormFromDataForTesting(owned_password_data[i]); |
owned_keychain_adapter.AddPassword(*form); |
} |
@@ -1153,7 +1119,8 @@ TEST_F(PasswordStoreMacTest, TestStoreUpdate) { |
"http://some.domain.com/insecure.html", "login.cgi", |
L"username", L"password", L"submit", L"joe_user", L"sekrit", true, false, 1 |
}; |
- scoped_ptr<PasswordForm> joint_form = CreatePasswordFormFromData(joint_data); |
+ scoped_ptr<PasswordForm> joint_form = |
+ CreatePasswordFormFromDataForTesting(joint_data); |
login_db()->AddLogin(*joint_form); |
MockAppleKeychain::KeychainTestData joint_keychain_data = { |
kSecAuthenticationTypeHTMLForm, "some.domain.com", |
@@ -1203,7 +1170,7 @@ TEST_F(PasswordStoreMacTest, TestStoreUpdate) { |
}; |
for (unsigned int i = 0; i < arraysize(updates); ++i) { |
scoped_ptr<PasswordForm> form = |
- CreatePasswordFormFromData(updates[i].form_data); |
+ CreatePasswordFormFromDataForTesting(updates[i].form_data); |
store_->UpdateLogin(*form); |
} |
@@ -1212,7 +1179,7 @@ TEST_F(PasswordStoreMacTest, TestStoreUpdate) { |
MacKeychainPasswordFormAdapter keychain_adapter(keychain()); |
for (unsigned int i = 0; i < arraysize(updates); ++i) { |
scoped_ptr<PasswordForm> query_form = |
- CreatePasswordFormFromData(updates[i].form_data); |
+ CreatePasswordFormFromDataForTesting(updates[i].form_data); |
ScopedVector<autofill::PasswordForm> matching_items = |
keychain_adapter.PasswordsFillingForm(query_form->signon_realm, |
@@ -1255,7 +1222,8 @@ TEST_F(PasswordStoreMacTest, TestDBKeychainAssociation) { |
"http://www.facebook.com/index.html", "login", |
L"username", L"password", L"submit", L"joe_user", L"sekrit", true, false, 1 |
}; |
- scoped_ptr<PasswordForm> www_form = CreatePasswordFormFromData(www_form_data); |
+ scoped_ptr<PasswordForm> www_form = |
+ CreatePasswordFormFromDataForTesting(www_form_data); |
login_db()->AddLogin(*www_form); |
MacKeychainPasswordFormAdapter owned_keychain_adapter(keychain()); |
owned_keychain_adapter.SetFindsOnlyOwnedItems(true); |
@@ -1346,11 +1314,11 @@ void CheckRemoveLoginsBetween(PasswordStoreMacTest* test, bool check_created) { |
"http://different.com/index.html", "login", L"submit", L"username", |
L"password", L"different_joe_user", L"sekrit", true, false, 0 }; |
scoped_ptr<PasswordForm> form_facebook = |
- CreatePasswordFormFromData(www_form_data_facebook); |
+ CreatePasswordFormFromDataForTesting(www_form_data_facebook); |
scoped_ptr<PasswordForm> form_facebook_old = |
- CreatePasswordFormFromData(www_form_data_facebook_old); |
+ CreatePasswordFormFromDataForTesting(www_form_data_facebook_old); |
scoped_ptr<PasswordForm> form_other = |
- CreatePasswordFormFromData(www_form_data_other); |
+ CreatePasswordFormFromDataForTesting(www_form_data_other); |
base::Time now = base::Time::Now(); |
// TODO(vasilii): remove the next line once crbug/374132 is fixed. |
now = base::Time::FromTimeT(now.ToTimeT()); |
@@ -1450,7 +1418,7 @@ TEST_F(PasswordStoreMacTest, TestRemoveLoginsMultiProfile) { |
"http://www.facebook.com/index.html", "login", L"username", L"password", |
L"submit", L"joe_user", L"sekrit", true, false, 1 }; |
scoped_ptr<PasswordForm> www_form = |
- CreatePasswordFormFromData(www_form_data1); |
+ CreatePasswordFormFromDataForTesting(www_form_data1); |
EXPECT_TRUE(owned_keychain_adapter.AddPassword(*www_form)); |
// Add a password from the current profile. |
@@ -1458,7 +1426,7 @@ TEST_F(PasswordStoreMacTest, TestRemoveLoginsMultiProfile) { |
PasswordForm::SCHEME_HTML, "http://www.facebook.com/", |
"http://www.facebook.com/index.html", "login", L"username", L"password", |
L"submit", L"not_joe_user", L"12345", true, false, 1 }; |
- www_form = CreatePasswordFormFromData(www_form_data2); |
+ www_form = CreatePasswordFormFromDataForTesting(www_form_data2); |
store_->AddLogin(*www_form); |
FinishAsyncProcessing(); |
@@ -1503,7 +1471,8 @@ TEST_F(PasswordStoreMacTest, StoreIsUsableImmediatelyAfterConstruction) { |
PasswordForm::SCHEME_HTML, "http://www.facebook.com/", |
"http://www.facebook.com/index.html", "login", L"username", L"password", |
L"submit", L"not_joe_user", L"12345", true, false, 1}; |
- scoped_ptr<PasswordForm> form = CreatePasswordFormFromData(www_form_data); |
+ scoped_ptr<PasswordForm> form = |
+ CreatePasswordFormFromDataForTesting(www_form_data); |
store()->AddLogin(*form); |
MockPasswordStoreConsumer mock_consumer; |
@@ -1536,7 +1505,8 @@ TEST_F(PasswordStoreMacTest, OperationsOnABadDatabaseSilentlyFail) { |
PasswordForm::SCHEME_HTML, "http://www.facebook.com/", |
"http://www.facebook.com/index.html", "login", L"username", L"password", |
L"submit", L"not_joe_user", L"12345", true, false, 1}; |
- scoped_ptr<PasswordForm> form = CreatePasswordFormFromData(www_form_data); |
+ scoped_ptr<PasswordForm> form = |
+ CreatePasswordFormFromDataForTesting(www_form_data); |
scoped_ptr<PasswordForm> blacklisted_form(new PasswordForm(*form)); |
blacklisted_form->signon_realm = "http://foo.example.com"; |
blacklisted_form->origin = GURL("http://foo.example.com/origin"); |