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

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

Issue 316243002: Add date_synced to PasswordForm. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: +comment Created 6 years, 6 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 | Annotate | Revision Log
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 <algorithm> 5 #include <algorithm>
6 #include <map> 6 #include <map>
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 old_form_google_.password_element = UTF8ToUTF16("pass"); 147 old_form_google_.password_element = UTF8ToUTF16("pass");
148 old_form_google_.password_value = UTF8ToUTF16("seekrit"); 148 old_form_google_.password_value = UTF8ToUTF16("seekrit");
149 old_form_google_.submit_element = UTF8ToUTF16("submit"); 149 old_form_google_.submit_element = UTF8ToUTF16("submit");
150 old_form_google_.signon_realm = "Google"; 150 old_form_google_.signon_realm = "Google";
151 151
152 form_google_ = old_form_google_; 152 form_google_ = old_form_google_;
153 form_google_.times_used = 3; 153 form_google_.times_used = 3;
154 form_google_.type = PasswordForm::TYPE_GENERATED; 154 form_google_.type = PasswordForm::TYPE_GENERATED;
155 form_google_.form_data.name = UTF8ToUTF16("form_name"); 155 form_google_.form_data.name = UTF8ToUTF16("form_name");
156 form_google_.form_data.user_submitted = true; 156 form_google_.form_data.user_submitted = true;
157 form_google_.date_synced = base::Time::Now();
157 158
158 form_isc_.origin = GURL("http://www.isc.org/"); 159 form_isc_.origin = GURL("http://www.isc.org/");
159 form_isc_.action = GURL("http://www.isc.org/auth"); 160 form_isc_.action = GURL("http://www.isc.org/auth");
160 form_isc_.username_element = UTF8ToUTF16("id"); 161 form_isc_.username_element = UTF8ToUTF16("id");
161 form_isc_.username_value = UTF8ToUTF16("janedoe"); 162 form_isc_.username_value = UTF8ToUTF16("janedoe");
162 form_isc_.password_element = UTF8ToUTF16("passwd"); 163 form_isc_.password_element = UTF8ToUTF16("passwd");
163 form_isc_.password_value = UTF8ToUTF16("ihazabukkit"); 164 form_isc_.password_value = UTF8ToUTF16("ihazabukkit");
164 form_isc_.submit_element = UTF8ToUTF16("login"); 165 form_isc_.submit_element = UTF8ToUTF16("login");
165 form_isc_.signon_realm = "ISC"; 166 form_isc_.signon_realm = "ISC";
167 form_isc_.date_synced = base::Time::Now();
166 } 168 }
167 169
168 static void CheckPasswordForm(const PasswordForm& expected, 170 static void CheckPasswordForm(const PasswordForm& expected,
169 const PasswordForm& actual); 171 const PasswordForm& actual);
170 static void CheckPasswordChanges(const PasswordStoreChangeList& expected, 172 static void CheckPasswordChanges(const PasswordStoreChangeList& expected,
171 const PasswordStoreChangeList& actual); 173 const PasswordStoreChangeList& actual);
172 174
173 PasswordForm old_form_google_; 175 PasswordForm old_form_google_;
174 PasswordForm form_google_; 176 PasswordForm form_google_;
175 PasswordForm form_isc_; 177 PasswordForm form_isc_;
176 }; 178 };
177 179
178 void NativeBackendKWalletTestBase::CheckPasswordForm( 180 void NativeBackendKWalletTestBase::CheckPasswordForm(
179 const PasswordForm& expected, const PasswordForm& actual) { 181 const PasswordForm& expected, const PasswordForm& actual) {
180 EXPECT_EQ(expected.origin, actual.origin); 182 EXPECT_EQ(expected.origin, actual.origin);
181 EXPECT_EQ(expected.password_value, actual.password_value); 183 EXPECT_EQ(expected.password_value, actual.password_value);
182 EXPECT_EQ(expected.action, actual.action); 184 EXPECT_EQ(expected.action, actual.action);
183 EXPECT_EQ(expected.username_element, actual.username_element); 185 EXPECT_EQ(expected.username_element, actual.username_element);
184 EXPECT_EQ(expected.username_value, actual.username_value); 186 EXPECT_EQ(expected.username_value, actual.username_value);
185 EXPECT_EQ(expected.password_element, actual.password_element); 187 EXPECT_EQ(expected.password_element, actual.password_element);
186 EXPECT_EQ(expected.submit_element, actual.submit_element); 188 EXPECT_EQ(expected.submit_element, actual.submit_element);
187 EXPECT_EQ(expected.signon_realm, actual.signon_realm); 189 EXPECT_EQ(expected.signon_realm, actual.signon_realm);
188 EXPECT_EQ(expected.ssl_valid, actual.ssl_valid); 190 EXPECT_EQ(expected.ssl_valid, actual.ssl_valid);
189 EXPECT_EQ(expected.preferred, actual.preferred); 191 EXPECT_EQ(expected.preferred, actual.preferred);
190 // We don't check the date created. It varies. 192 // We don't check the date created. It varies.
191 EXPECT_EQ(expected.blacklisted_by_user, actual.blacklisted_by_user); 193 EXPECT_EQ(expected.blacklisted_by_user, actual.blacklisted_by_user);
192 EXPECT_EQ(expected.type, actual.type); 194 EXPECT_EQ(expected.type, actual.type);
193 EXPECT_EQ(expected.times_used, actual.times_used); 195 EXPECT_EQ(expected.times_used, actual.times_used);
194 EXPECT_EQ(expected.scheme, actual.scheme); 196 EXPECT_EQ(expected.scheme, actual.scheme);
197 EXPECT_EQ(expected.date_synced, actual.date_synced);
195 } 198 }
196 199
197 void NativeBackendKWalletTestBase::CheckPasswordChanges( 200 void NativeBackendKWalletTestBase::CheckPasswordChanges(
198 const PasswordStoreChangeList& expected, 201 const PasswordStoreChangeList& expected,
199 const PasswordStoreChangeList& actual) { 202 const PasswordStoreChangeList& actual) {
200 ASSERT_EQ(expected.size(), actual.size()); 203 ASSERT_EQ(expected.size(), actual.size());
201 for (size_t i = 0; i < expected.size(); ++i) { 204 for (size_t i = 0; i < expected.size(); ++i) {
202 EXPECT_EQ(expected[i].type(), actual[i].type()); 205 EXPECT_EQ(expected[i].type(), actual[i].type());
203 CheckPasswordForm(expected[i].form(), actual[i].form()); 206 CheckPasswordForm(expected[i].form(), actual[i].form());
204 } 207 }
(...skipping 582 matching lines...) Expand 10 before | Expand all | Expand 10 after
787 ExpectationArray expected; 790 ExpectationArray expected;
788 expected.push_back(make_pair(std::string(form_google_.signon_realm), forms)); 791 expected.push_back(make_pair(std::string(form_google_.signon_realm), forms));
789 CheckPasswordForms("Chrome Form Data (42)", expected); 792 CheckPasswordForms("Chrome Form Data (42)", expected);
790 } 793 }
791 794
792 // TODO(mdm): add more basic tests here at some point. 795 // TODO(mdm): add more basic tests here at some point.
793 // (For example tests for storing >1 password per realm pickle.) 796 // (For example tests for storing >1 password per realm pickle.)
794 797
795 class NativeBackendKWalletPickleTest : public NativeBackendKWalletTestBase { 798 class NativeBackendKWalletPickleTest : public NativeBackendKWalletTestBase {
796 protected: 799 protected:
800 void CreateVersion2Pickle(const PasswordForm& form, Pickle* pickle);
797 void CreateVersion1Pickle(const PasswordForm& form, Pickle* pickle); 801 void CreateVersion1Pickle(const PasswordForm& form, Pickle* pickle);
798 void CreateVersion0Pickle(bool size_32, 802 void CreateVersion0Pickle(bool size_32,
799 const PasswordForm& form, 803 const PasswordForm& form,
800 Pickle* pickle); 804 Pickle* pickle);
805 void CheckVersion2Pickle();
801 void CheckVersion1Pickle(); 806 void CheckVersion1Pickle();
802 void CheckVersion0Pickle(bool size_32, PasswordForm::Scheme scheme); 807 void CheckVersion0Pickle(bool size_32, PasswordForm::Scheme scheme);
803 808
804 private: 809 private:
805 void CreatePickle(bool size_32, const PasswordForm& form, Pickle* pickle); 810 void CreatePickle(bool size_32, const PasswordForm& form, Pickle* pickle);
806 }; 811 };
807 812
813 void NativeBackendKWalletPickleTest::CreateVersion2Pickle(
814 const PasswordForm& form, Pickle* pickle) {
815 pickle->WriteInt(2);
816 CreatePickle(false, form, pickle);
817 pickle->WriteInt(form.type);
818 pickle->WriteInt(form.times_used);
819 autofill::SerializeFormData(form.form_data, pickle);
820 }
821
808 void NativeBackendKWalletPickleTest::CreateVersion1Pickle( 822 void NativeBackendKWalletPickleTest::CreateVersion1Pickle(
809 const PasswordForm& form, Pickle* pickle) { 823 const PasswordForm& form, Pickle* pickle) {
810 pickle->WriteInt(1); 824 pickle->WriteInt(1);
811 CreatePickle(false, form, pickle); 825 CreatePickle(false, form, pickle);
812 } 826 }
813 827
814 void NativeBackendKWalletPickleTest::CreateVersion0Pickle( 828 void NativeBackendKWalletPickleTest::CreateVersion0Pickle(
815 bool size_32, const PasswordForm& form, Pickle* pickle) { 829 bool size_32, const PasswordForm& form, Pickle* pickle) {
816 pickle->WriteInt(0); 830 pickle->WriteInt(0);
817 CreatePickle(size_32, form, pickle); 831 CreatePickle(size_32, form, pickle);
(...skipping 12 matching lines...) Expand all
830 pickle->WriteString16(form.username_value); 844 pickle->WriteString16(form.username_value);
831 pickle->WriteString16(form.password_element); 845 pickle->WriteString16(form.password_element);
832 pickle->WriteString16(form.password_value); 846 pickle->WriteString16(form.password_value);
833 pickle->WriteString16(form.submit_element); 847 pickle->WriteString16(form.submit_element);
834 pickle->WriteBool(form.ssl_valid); 848 pickle->WriteBool(form.ssl_valid);
835 pickle->WriteBool(form.preferred); 849 pickle->WriteBool(form.preferred);
836 pickle->WriteBool(form.blacklisted_by_user); 850 pickle->WriteBool(form.blacklisted_by_user);
837 pickle->WriteInt64(form.date_created.ToTimeT()); 851 pickle->WriteInt64(form.date_created.ToTimeT());
838 } 852 }
839 853
840 void NativeBackendKWalletPickleTest::CheckVersion0Pickle( 854 void NativeBackendKWalletPickleTest::CheckVersion2Pickle() {
841 bool size_32, PasswordForm::Scheme scheme) {
842 Pickle pickle; 855 Pickle pickle;
843 PasswordForm form = old_form_google_; 856 PasswordForm form = form_google_;
844 form.scheme = scheme; 857 form.date_synced = base::Time();
845 CreateVersion0Pickle(size_32, form, &pickle); 858 CreateVersion2Pickle(form, &pickle);
859
846 std::vector<PasswordForm*> form_list; 860 std::vector<PasswordForm*> form_list;
847 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, 861 NativeBackendKWalletStub::DeserializeValue(form.signon_realm,
848 pickle, &form_list); 862 pickle, &form_list);
863
864 // This will match |old_form_google_| because not all the fields present in
865 // |form_google_| will be deserialized.
849 EXPECT_EQ(1u, form_list.size()); 866 EXPECT_EQ(1u, form_list.size());
850 if (form_list.size() > 0) 867 if (form_list.size() > 0)
851 CheckPasswordForm(form, *form_list[0]); 868 CheckPasswordForm(form, *form_list[0]);
852 STLDeleteElements(&form_list); 869 STLDeleteElements(&form_list);
853 } 870 }
854 871
855 // Make sure that we can still read version 1 pickles. 872 // Make sure that we can still read version 1 pickles.
856 void NativeBackendKWalletPickleTest::CheckVersion1Pickle() { 873 void NativeBackendKWalletPickleTest::CheckVersion1Pickle() {
857 Pickle pickle; 874 Pickle pickle;
858 PasswordForm form = form_google_; 875 PasswordForm form = form_google_;
859 CreateVersion1Pickle(form, &pickle); 876 CreateVersion1Pickle(form, &pickle);
860 877
861 std::vector<PasswordForm*> form_list; 878 std::vector<PasswordForm*> form_list;
862 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, 879 NativeBackendKWalletStub::DeserializeValue(form.signon_realm,
863 pickle, &form_list); 880 pickle, &form_list);
864 881
865 // This will match |old_form_google_| because not all the fields present in 882 // This will match |old_form_google_| because not all the fields present in
866 // |form_google_| will be deserialized. 883 // |form_google_| will be deserialized.
867 EXPECT_EQ(1u, form_list.size()); 884 EXPECT_EQ(1u, form_list.size());
868 if (form_list.size() > 0) 885 if (form_list.size() > 0)
869 CheckPasswordForm(old_form_google_, *form_list[0]); 886 CheckPasswordForm(old_form_google_, *form_list[0]);
870 STLDeleteElements(&form_list); 887 STLDeleteElements(&form_list);
871 } 888 }
872 889
890 void NativeBackendKWalletPickleTest::CheckVersion0Pickle(
891 bool size_32, PasswordForm::Scheme scheme) {
892 Pickle pickle;
893 PasswordForm form = old_form_google_;
894 form.scheme = scheme;
895 CreateVersion0Pickle(size_32, form, &pickle);
896 std::vector<PasswordForm*> form_list;
897 NativeBackendKWalletStub::DeserializeValue(form.signon_realm,
898 pickle, &form_list);
899 EXPECT_EQ(1u, form_list.size());
900 if (form_list.size() > 0)
901 CheckPasswordForm(form, *form_list[0]);
902 STLDeleteElements(&form_list);
903 }
904
873 // We try both SCHEME_HTML and SCHEME_BASIC since the scheme is stored right 905 // We try both SCHEME_HTML and SCHEME_BASIC since the scheme is stored right
874 // after the size in the pickle, so it's what gets read as part of the count 906 // after the size in the pickle, so it's what gets read as part of the count
875 // when reading 32-bit pickles on 64-bit systems. SCHEME_HTML is 0 (so we'll 907 // when reading 32-bit pickles on 64-bit systems. SCHEME_HTML is 0 (so we'll
876 // detect errors later) while SCHEME_BASIC is 1 (so we'll detect it then). We 908 // detect errors later) while SCHEME_BASIC is 1 (so we'll detect it then). We
877 // try both 32-bit and 64-bit pickles since only one will be the "other" size 909 // try both 32-bit and 64-bit pickles since only one will be the "other" size
878 // for whatever architecture we're running on, but we want to make sure we can 910 // for whatever architecture we're running on, but we want to make sure we can
879 // read all combinations in any event. 911 // read all combinations in any event.
880 912
881 TEST_F(NativeBackendKWalletPickleTest, ReadsOld32BitHTMLPickles) { 913 TEST_F(NativeBackendKWalletPickleTest, ReadsOld32BitHTMLPickles) {
882 CheckVersion0Pickle(true, PasswordForm::SCHEME_HTML); 914 CheckVersion0Pickle(true, PasswordForm::SCHEME_HTML);
883 } 915 }
884 916
885 TEST_F(NativeBackendKWalletPickleTest, ReadsOld32BitHTTPPickles) { 917 TEST_F(NativeBackendKWalletPickleTest, ReadsOld32BitHTTPPickles) {
886 CheckVersion0Pickle(true, PasswordForm::SCHEME_BASIC); 918 CheckVersion0Pickle(true, PasswordForm::SCHEME_BASIC);
887 } 919 }
888 920
889 TEST_F(NativeBackendKWalletPickleTest, ReadsOld64BitHTMLPickles) { 921 TEST_F(NativeBackendKWalletPickleTest, ReadsOld64BitHTMLPickles) {
890 CheckVersion0Pickle(false, PasswordForm::SCHEME_HTML); 922 CheckVersion0Pickle(false, PasswordForm::SCHEME_HTML);
891 } 923 }
892 924
893 TEST_F(NativeBackendKWalletPickleTest, ReadsOld64BitHTTPPickles) { 925 TEST_F(NativeBackendKWalletPickleTest, ReadsOld64BitHTTPPickles) {
894 CheckVersion0Pickle(false, PasswordForm::SCHEME_BASIC); 926 CheckVersion0Pickle(false, PasswordForm::SCHEME_BASIC);
895 } 927 }
896 928
897 TEST_F(NativeBackendKWalletPickleTest, CheckVersion1Pickle) { 929 TEST_F(NativeBackendKWalletPickleTest, CheckVersion1Pickle) {
898 CheckVersion1Pickle(); 930 CheckVersion1Pickle();
899 } 931 }
932
933 TEST_F(NativeBackendKWalletPickleTest, CheckVersion2Pickle) {
934 CheckVersion2Pickle();
935 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698