Chromium Code Reviews| Index: chrome/browser/password_manager/native_backend_kwallet_x_unittest.cc |
| diff --git a/chrome/browser/password_manager/native_backend_kwallet_x_unittest.cc b/chrome/browser/password_manager/native_backend_kwallet_x_unittest.cc |
| index 53de5bade8149f33a8d933ce03088ec87221e4b6..aab8e7fb07f1439893c53c3d9fe0d384e91b5405 100644 |
| --- a/chrome/browser/password_manager/native_backend_kwallet_x_unittest.cc |
| +++ b/chrome/browser/password_manager/native_backend_kwallet_x_unittest.cc |
| @@ -157,6 +157,7 @@ class NativeBackendKWalletTestBase : public testing::Test { |
| old_form_google_.password_value = UTF8ToUTF16("seekrit"); |
| old_form_google_.submit_element = UTF8ToUTF16("submit"); |
| old_form_google_.signon_realm = "Google"; |
| + old_form_google_.date_created = base::Time::Now(); |
| form_google_ = old_form_google_; |
| form_google_.times_used = 3; |
| @@ -164,6 +165,7 @@ class NativeBackendKWalletTestBase : public testing::Test { |
| form_google_.form_data.name = UTF8ToUTF16("form_name"); |
| form_google_.form_data.user_submitted = true; |
| form_google_.date_synced = base::Time::Now(); |
| + form_google_.date_created = old_form_google_.date_created; |
| form_google_.display_name = UTF8ToUTF16("Joe Schmoe"); |
| form_google_.avatar_url = GURL("http://www.google.com/avatar"); |
| form_google_.federation_url = GURL("http://www.google.com/federation_url"); |
| @@ -178,10 +180,12 @@ class NativeBackendKWalletTestBase : public testing::Test { |
| form_isc_.submit_element = UTF8ToUTF16("login"); |
| form_isc_.signon_realm = "ISC"; |
| form_isc_.date_synced = base::Time::Now(); |
| + form_isc_.date_created = base::Time::Now(); |
| } |
| static void CheckPasswordForm(const PasswordForm& expected, |
| - const PasswordForm& actual); |
| + const PasswordForm& actual, |
| + int version); |
| static void CheckPasswordChanges(const PasswordStoreChangeList& expected, |
| const PasswordStoreChangeList& actual); |
| static void CheckPasswordChangesWithResult( |
| @@ -196,7 +200,9 @@ class NativeBackendKWalletTestBase : public testing::Test { |
| // static |
| void NativeBackendKWalletTestBase::CheckPasswordForm( |
| - const PasswordForm& expected, const PasswordForm& actual) { |
| + const PasswordForm& expected, |
| + const PasswordForm& actual, |
| + int version) { |
|
vabr (Chromium)
2015/02/03 16:06:42
I suggest adding a flag saying whether the date is
dvadym
2015/02/04 10:40:25
Done.
|
| EXPECT_EQ(expected.origin, actual.origin); |
| EXPECT_EQ(expected.password_value, actual.password_value); |
| EXPECT_EQ(expected.action, actual.action); |
| @@ -207,7 +213,11 @@ void NativeBackendKWalletTestBase::CheckPasswordForm( |
| EXPECT_EQ(expected.signon_realm, actual.signon_realm); |
| EXPECT_EQ(expected.ssl_valid, actual.ssl_valid); |
| EXPECT_EQ(expected.preferred, actual.preferred); |
| + if (version > 4) { |
| + EXPECT_EQ(expected.date_created, actual.date_created); |
| + } else { |
| // We don't check the date created. It varies. |
| + } |
| EXPECT_EQ(expected.blacklisted_by_user, actual.blacklisted_by_user); |
| EXPECT_EQ(expected.type, actual.type); |
| EXPECT_EQ(expected.times_used, actual.times_used); |
| @@ -226,7 +236,7 @@ void NativeBackendKWalletTestBase::CheckPasswordChanges( |
| ASSERT_EQ(expected.size(), actual.size()); |
| for (size_t i = 0; i < expected.size(); ++i) { |
| EXPECT_EQ(expected[i].type(), actual[i].type()); |
| - CheckPasswordForm(expected[i].form(), actual[i].form()); |
| + CheckPasswordForm(expected[i].form(), actual[i].form(), 5); |
| } |
| } |
| @@ -365,8 +375,6 @@ void NativeBackendKWalletTest::TestRemoveLoginsBetween( |
| base::Time now = base::Time::Now(); |
| base::Time next_day = now + base::TimeDelta::FromDays(1); |
| if (date_to_test == CREATED) { |
| - // crbug/374132. Remove the next line once it's fixed. |
| - next_day = base::Time::FromTimeT(next_day.ToTimeT()); |
| form_google_.date_created = now; |
| form_isc_.date_created = next_day; |
| } else { |
| @@ -604,7 +612,7 @@ void NativeBackendKWalletTest::CheckPasswordForms( |
| const std::vector<const PasswordForm*>& expect = sorted_expected[i].second; |
| EXPECT_EQ(expect.size(), forms.size()); |
| for (size_t j = 0; j < forms.size() && j < expect.size(); ++j) |
| - CheckPasswordForm(*expect[j], *forms[j]); |
| + CheckPasswordForm(*expect[j], *forms[j], 5); |
| } |
| } |
| @@ -923,25 +931,41 @@ TEST_F(NativeBackendKWalletTest, RemoveLoginsSyncedBetween) { |
| class NativeBackendKWalletPickleTest : public NativeBackendKWalletTestBase { |
| protected: |
| + void CreateVersion5Pickle(const PasswordForm& form, Pickle* pickle); |
| void CreateVersion3Pickle(const PasswordForm& form, Pickle* pickle); |
| void CreateVersion2Pickle(const PasswordForm& form, Pickle* pickle); |
| void CreateVersion1Pickle(const PasswordForm& form, Pickle* pickle); |
| void CreateVersion0Pickle(bool size_32, |
| const PasswordForm& form, |
| Pickle* pickle); |
| + void CheckVersion5Pickle(); |
| void CheckVersion3Pickle(); |
| void CheckVersion2Pickle(); |
| void CheckVersion1Pickle(); |
| void CheckVersion0Pickle(bool size_32, PasswordForm::Scheme scheme); |
| private: |
| - void CreatePickle(bool size_32, const PasswordForm& form, Pickle* pickle); |
| + void CreatePickle(bool size_32, |
| + bool date_created_internal, |
|
vabr (Chromium)
2015/02/03 16:06:42
Please add a comment explaining the arguments, in
dvadym
2015/02/04 10:40:25
Done.
|
| + const PasswordForm& form, |
| + Pickle* pickle); |
| }; |
| +void NativeBackendKWalletPickleTest::CreateVersion5Pickle( |
| + const PasswordForm& form, |
| + Pickle* pickle) { |
| + pickle->WriteInt(5); |
| + CreatePickle(false, true, form, pickle); |
| + pickle->WriteInt(form.type); |
| + pickle->WriteInt(form.times_used); |
| + autofill::SerializeFormData(form.form_data, pickle); |
| + pickle->WriteInt64(form.date_synced.ToInternalValue()); |
| +} |
| + |
| void NativeBackendKWalletPickleTest::CreateVersion3Pickle( |
| const PasswordForm& form, Pickle* pickle) { |
| pickle->WriteInt(3); |
| - CreatePickle(false, form, pickle); |
| + CreatePickle(false, false, form, pickle); |
| pickle->WriteInt(form.type); |
| pickle->WriteInt(form.times_used); |
| autofill::SerializeFormData(form.form_data, pickle); |
| @@ -951,7 +975,7 @@ void NativeBackendKWalletPickleTest::CreateVersion3Pickle( |
| void NativeBackendKWalletPickleTest::CreateVersion2Pickle( |
| const PasswordForm& form, Pickle* pickle) { |
| pickle->WriteInt(2); |
| - CreatePickle(false, form, pickle); |
| + CreatePickle(false, false, form, pickle); |
| pickle->WriteInt(form.type); |
| pickle->WriteInt(form.times_used); |
| autofill::SerializeFormData(form.form_data, pickle); |
| @@ -960,17 +984,19 @@ void NativeBackendKWalletPickleTest::CreateVersion2Pickle( |
| void NativeBackendKWalletPickleTest::CreateVersion1Pickle( |
| const PasswordForm& form, Pickle* pickle) { |
| pickle->WriteInt(1); |
| - CreatePickle(false, form, pickle); |
| + CreatePickle(false, false, form, pickle); |
| } |
| void NativeBackendKWalletPickleTest::CreateVersion0Pickle( |
| bool size_32, const PasswordForm& form, Pickle* pickle) { |
| pickle->WriteInt(0); |
| - CreatePickle(size_32, form, pickle); |
| + CreatePickle(size_32, false, form, pickle); |
| } |
| -void NativeBackendKWalletPickleTest::CreatePickle( |
| - bool size_32, const PasswordForm& form, Pickle* pickle) { |
| +void NativeBackendKWalletPickleTest::CreatePickle(bool size_32, |
| + bool date_created_internal, |
| + const PasswordForm& form, |
| + Pickle* pickle) { |
| if (size_32) |
| pickle->WriteUInt32(1); // Size of form list. 32 bits. |
| else |
| @@ -986,7 +1012,24 @@ void NativeBackendKWalletPickleTest::CreatePickle( |
| pickle->WriteBool(form.ssl_valid); |
| pickle->WriteBool(form.preferred); |
| pickle->WriteBool(form.blacklisted_by_user); |
| - pickle->WriteInt64(form.date_created.ToTimeT()); |
| + if (date_created_internal) |
| + pickle->WriteInt64(form.date_created.ToInternalValue()); |
| + else |
| + pickle->WriteInt64(form.date_created.ToTimeT()); |
| +} |
| + |
| +void NativeBackendKWalletPickleTest::CheckVersion5Pickle() { |
| + Pickle pickle; |
| + PasswordForm form = form_google_; |
| + CreateVersion5Pickle(form, &pickle); |
| + |
| + ScopedVector<PasswordForm> form_list; |
| + NativeBackendKWalletStub::DeserializeValue(form.signon_realm, pickle, |
| + &form_list); |
| + |
| + EXPECT_EQ(1u, form_list.size()); |
| + if (form_list.size() > 0) |
| + CheckPasswordForm(form, *form_list[0], 5); |
| } |
| void NativeBackendKWalletPickleTest::CheckVersion3Pickle() { |
| @@ -1005,7 +1048,7 @@ void NativeBackendKWalletPickleTest::CheckVersion3Pickle() { |
| EXPECT_EQ(1u, form_list.size()); |
| if (form_list.size() > 0) |
| - CheckPasswordForm(form, *form_list[0]); |
| + CheckPasswordForm(form, *form_list[0], 3); |
| } |
| void NativeBackendKWalletPickleTest::CheckVersion2Pickle() { |
| @@ -1022,7 +1065,7 @@ void NativeBackendKWalletPickleTest::CheckVersion2Pickle() { |
| EXPECT_EQ(1u, form_list.size()); |
| if (form_list.size() > 0) |
| - CheckPasswordForm(form, *form_list[0]); |
| + CheckPasswordForm(form, *form_list[0], 2); |
| } |
| // Make sure that we can still read version 1 pickles. |
| @@ -1039,7 +1082,7 @@ void NativeBackendKWalletPickleTest::CheckVersion1Pickle() { |
| // |form_google_| will be deserialized. |
| EXPECT_EQ(1u, form_list.size()); |
| if (form_list.size() > 0) |
| - CheckPasswordForm(old_form_google_, *form_list[0]); |
| + CheckPasswordForm(old_form_google_, *form_list[0], 1); |
| } |
| void NativeBackendKWalletPickleTest::CheckVersion0Pickle( |
| @@ -1053,7 +1096,7 @@ void NativeBackendKWalletPickleTest::CheckVersion0Pickle( |
| pickle, &form_list); |
| EXPECT_EQ(1u, form_list.size()); |
| if (form_list.size() > 0) |
| - CheckPasswordForm(form, *form_list[0]); |
| + CheckPasswordForm(form, *form_list[0], 0); |
| } |
| // Check that if KWallet fails to respond, the backend propagates the error. |
| @@ -1113,3 +1156,7 @@ TEST_F(NativeBackendKWalletPickleTest, CheckVersion2Pickle) { |
| TEST_F(NativeBackendKWalletPickleTest, CheckVersion3Pickle) { |
| CheckVersion3Pickle(); |
| } |
| + |
| +TEST_F(NativeBackendKWalletPickleTest, CheckVersion5Pickle) { |
| + CheckVersion3Pickle(); |
|
vabr (Chromium)
2015/02/03 16:06:42
3->5
dvadym
2015/02/04 10:40:25
Done.
|
| +} |