| 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 682a30d9a566c9ee8b71fa01863816336433736d..63db11b53e5ad2eaf3ab53719a4a7aa251922faa 100644
|
| --- a/chrome/browser/password_manager/native_backend_kwallet_x_unittest.cc
|
| +++ b/chrome/browser/password_manager/native_backend_kwallet_x_unittest.cc
|
| @@ -154,6 +154,7 @@ class NativeBackendKWalletTestBase : public testing::Test {
|
| form_google_.type = PasswordForm::TYPE_GENERATED;
|
| form_google_.form_data.name = UTF8ToUTF16("form_name");
|
| form_google_.form_data.user_submitted = true;
|
| + form_google_.date_synced = base::Time::Now();
|
|
|
| form_isc_.origin = GURL("http://www.isc.org/");
|
| form_isc_.action = GURL("http://www.isc.org/auth");
|
| @@ -163,6 +164,7 @@ class NativeBackendKWalletTestBase : public testing::Test {
|
| form_isc_.password_value = UTF8ToUTF16("ihazabukkit");
|
| form_isc_.submit_element = UTF8ToUTF16("login");
|
| form_isc_.signon_realm = "ISC";
|
| + form_isc_.date_synced = base::Time::Now();
|
| }
|
|
|
| static void CheckPasswordForm(const PasswordForm& expected,
|
| @@ -192,6 +194,7 @@ void NativeBackendKWalletTestBase::CheckPasswordForm(
|
| EXPECT_EQ(expected.type, actual.type);
|
| EXPECT_EQ(expected.times_used, actual.times_used);
|
| EXPECT_EQ(expected.scheme, actual.scheme);
|
| + EXPECT_EQ(expected.date_synced, actual.date_synced);
|
| }
|
|
|
| void NativeBackendKWalletTestBase::CheckPasswordChanges(
|
| @@ -794,10 +797,12 @@ TEST_F(NativeBackendKWalletTest, ListLoginsAppends) {
|
|
|
| class NativeBackendKWalletPickleTest : public NativeBackendKWalletTestBase {
|
| protected:
|
| + 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 CheckVersion2Pickle();
|
| void CheckVersion1Pickle();
|
| void CheckVersion0Pickle(bool size_32, PasswordForm::Scheme scheme);
|
|
|
| @@ -805,6 +810,15 @@ class NativeBackendKWalletPickleTest : public NativeBackendKWalletTestBase {
|
| void CreatePickle(bool size_32, const PasswordForm& form, Pickle* pickle);
|
| };
|
|
|
| +void NativeBackendKWalletPickleTest::CreateVersion2Pickle(
|
| + const PasswordForm& form, Pickle* pickle) {
|
| + pickle->WriteInt(2);
|
| + CreatePickle(false, form, pickle);
|
| + pickle->WriteInt(form.type);
|
| + pickle->WriteInt(form.times_used);
|
| + autofill::SerializeFormData(form.form_data, pickle);
|
| +}
|
| +
|
| void NativeBackendKWalletPickleTest::CreateVersion1Pickle(
|
| const PasswordForm& form, Pickle* pickle) {
|
| pickle->WriteInt(1);
|
| @@ -837,15 +851,18 @@ void NativeBackendKWalletPickleTest::CreatePickle(
|
| pickle->WriteInt64(form.date_created.ToTimeT());
|
| }
|
|
|
| -void NativeBackendKWalletPickleTest::CheckVersion0Pickle(
|
| - bool size_32, PasswordForm::Scheme scheme) {
|
| +void NativeBackendKWalletPickleTest::CheckVersion2Pickle() {
|
| Pickle pickle;
|
| - PasswordForm form = old_form_google_;
|
| - form.scheme = scheme;
|
| - CreateVersion0Pickle(size_32, form, &pickle);
|
| + PasswordForm form = form_google_;
|
| + form.date_synced = base::Time();
|
| + CreateVersion2Pickle(form, &pickle);
|
| +
|
| std::vector<PasswordForm*> form_list;
|
| NativeBackendKWalletStub::DeserializeValue(form.signon_realm,
|
| pickle, &form_list);
|
| +
|
| + // 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]);
|
| @@ -870,6 +887,21 @@ void NativeBackendKWalletPickleTest::CheckVersion1Pickle() {
|
| STLDeleteElements(&form_list);
|
| }
|
|
|
| +void NativeBackendKWalletPickleTest::CheckVersion0Pickle(
|
| + bool size_32, PasswordForm::Scheme scheme) {
|
| + Pickle pickle;
|
| + PasswordForm form = old_form_google_;
|
| + form.scheme = scheme;
|
| + CreateVersion0Pickle(size_32, form, &pickle);
|
| + std::vector<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]);
|
| + STLDeleteElements(&form_list);
|
| +}
|
| +
|
| // We try both SCHEME_HTML and SCHEME_BASIC since the scheme is stored right
|
| // after the size in the pickle, so it's what gets read as part of the count
|
| // when reading 32-bit pickles on 64-bit systems. SCHEME_HTML is 0 (so we'll
|
| @@ -897,3 +929,7 @@ TEST_F(NativeBackendKWalletPickleTest, ReadsOld64BitHTTPPickles) {
|
| TEST_F(NativeBackendKWalletPickleTest, CheckVersion1Pickle) {
|
| CheckVersion1Pickle();
|
| }
|
| +
|
| +TEST_F(NativeBackendKWalletPickleTest, CheckVersion2Pickle) {
|
| + CheckVersion2Pickle();
|
| +}
|
|
|