| 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 82315671a6c90f385b922850c36ef06b35a4d817..2da71e07ffd8e4a248ede819674081500a836ac1 100644
|
| --- a/chrome/browser/password_manager/native_backend_kwallet_x_unittest.cc
|
| +++ b/chrome/browser/password_manager/native_backend_kwallet_x_unittest.cc
|
| @@ -155,6 +155,10 @@ 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_.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");
|
| + form_google_.is_zero_click = true;
|
|
|
| form_isc_.origin = GURL("http://www.isc.org/");
|
| form_isc_.action = GURL("http://www.isc.org/auth");
|
| @@ -200,6 +204,10 @@ void NativeBackendKWalletTestBase::CheckPasswordForm(
|
| EXPECT_EQ(expected.times_used, actual.times_used);
|
| EXPECT_EQ(expected.scheme, actual.scheme);
|
| EXPECT_EQ(expected.date_synced, actual.date_synced);
|
| + EXPECT_EQ(expected.display_name, actual.display_name);
|
| + EXPECT_EQ(expected.avatar_url, actual.avatar_url);
|
| + EXPECT_EQ(expected.federation_url, actual.federation_url);
|
| + EXPECT_EQ(expected.is_zero_click, actual.is_zero_click);
|
| }
|
|
|
| // static
|
| @@ -904,11 +912,13 @@ TEST_F(NativeBackendKWalletTest, RemoveLoginsSyncedBetween) {
|
|
|
| class NativeBackendKWalletPickleTest : public NativeBackendKWalletTestBase {
|
| protected:
|
| + 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 CheckVersion3Pickle();
|
| void CheckVersion2Pickle();
|
| void CheckVersion1Pickle();
|
| void CheckVersion0Pickle(bool size_32, PasswordForm::Scheme scheme);
|
| @@ -917,6 +927,16 @@ class NativeBackendKWalletPickleTest : public NativeBackendKWalletTestBase {
|
| void CreatePickle(bool size_32, const PasswordForm& form, Pickle* pickle);
|
| };
|
|
|
| +void NativeBackendKWalletPickleTest::CreateVersion3Pickle(
|
| + const PasswordForm& form, Pickle* pickle) {
|
| + pickle->WriteInt(3);
|
| + CreatePickle(false, 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::CreateVersion2Pickle(
|
| const PasswordForm& form, Pickle* pickle) {
|
| pickle->WriteInt(2);
|
| @@ -958,22 +978,40 @@ void NativeBackendKWalletPickleTest::CreatePickle(
|
| pickle->WriteInt64(form.date_created.ToTimeT());
|
| }
|
|
|
| -void NativeBackendKWalletPickleTest::CheckVersion2Pickle() {
|
| +void NativeBackendKWalletPickleTest::CheckVersion3Pickle() {
|
| Pickle pickle;
|
| PasswordForm form = form_google_;
|
| - form.date_synced = base::Time();
|
| + // Remove the fields which were not present in version #3.
|
| + form.display_name.clear();
|
| + form.avatar_url = GURL();
|
| + form.federation_url = GURL();
|
| + form.is_zero_click = false;
|
| + CreateVersion3Pickle(form, &pickle);
|
| +
|
| + ScopedVector<PasswordForm> form_list;
|
| + NativeBackendKWalletStub::DeserializeValue(form.signon_realm,
|
| + pickle, &form_list.get());
|
| +
|
| + EXPECT_EQ(1u, form_list.size());
|
| + if (form_list.size() > 0)
|
| + CheckPasswordForm(form, *form_list[0]);
|
| +}
|
| +
|
| +void NativeBackendKWalletPickleTest::CheckVersion2Pickle() {
|
| + Pickle pickle;
|
| + PasswordForm form = old_form_google_;
|
| + form.times_used = form_google_.times_used;
|
| + form.type = form_google_.type;
|
| + form.form_data = form_google_.form_data;
|
| CreateVersion2Pickle(form, &pickle);
|
|
|
| - std::vector<PasswordForm*> form_list;
|
| + ScopedVector<PasswordForm> form_list;
|
| NativeBackendKWalletStub::DeserializeValue(form.signon_realm,
|
| - pickle, &form_list);
|
| + pickle, &form_list.get());
|
|
|
| - // This will match |old_form_google_| because not all the fields present in
|
| - // |form_google_| will be deserialized.
|
| EXPECT_EQ(1u, form_list.size());
|
| if (form_list.size() > 0)
|
| CheckPasswordForm(form, *form_list[0]);
|
| - STLDeleteElements(&form_list);
|
| }
|
|
|
| // Make sure that we can still read version 1 pickles.
|
| @@ -1040,3 +1078,7 @@ TEST_F(NativeBackendKWalletPickleTest, CheckVersion1Pickle) {
|
| TEST_F(NativeBackendKWalletPickleTest, CheckVersion2Pickle) {
|
| CheckVersion2Pickle();
|
| }
|
| +
|
| +TEST_F(NativeBackendKWalletPickleTest, CheckVersion3Pickle) {
|
| + CheckVersion3Pickle();
|
| +}
|
|
|