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

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

Issue 459103005: Introduce new PasswordForm attributes for Credential Management API. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Mike's comment Created 6 years, 4 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 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 form_google_.date_synced = base::Time::Now();
158 form_google_.display_name = UTF8ToUTF16("Joe Schmoe");
159 form_google_.avatar_url = GURL("http://www.google.com/avatar");
160 form_google_.federation_url = GURL("http://www.google.com/federation_url");
161 form_google_.is_zero_click = true;
158 162
159 form_isc_.origin = GURL("http://www.isc.org/"); 163 form_isc_.origin = GURL("http://www.isc.org/");
160 form_isc_.action = GURL("http://www.isc.org/auth"); 164 form_isc_.action = GURL("http://www.isc.org/auth");
161 form_isc_.username_element = UTF8ToUTF16("id"); 165 form_isc_.username_element = UTF8ToUTF16("id");
162 form_isc_.username_value = UTF8ToUTF16("janedoe"); 166 form_isc_.username_value = UTF8ToUTF16("janedoe");
163 form_isc_.password_element = UTF8ToUTF16("passwd"); 167 form_isc_.password_element = UTF8ToUTF16("passwd");
164 form_isc_.password_value = UTF8ToUTF16("ihazabukkit"); 168 form_isc_.password_value = UTF8ToUTF16("ihazabukkit");
165 form_isc_.submit_element = UTF8ToUTF16("login"); 169 form_isc_.submit_element = UTF8ToUTF16("login");
166 form_isc_.signon_realm = "ISC"; 170 form_isc_.signon_realm = "ISC";
167 form_isc_.date_synced = base::Time::Now(); 171 form_isc_.date_synced = base::Time::Now();
(...skipping 25 matching lines...) Expand all
193 EXPECT_EQ(expected.submit_element, actual.submit_element); 197 EXPECT_EQ(expected.submit_element, actual.submit_element);
194 EXPECT_EQ(expected.signon_realm, actual.signon_realm); 198 EXPECT_EQ(expected.signon_realm, actual.signon_realm);
195 EXPECT_EQ(expected.ssl_valid, actual.ssl_valid); 199 EXPECT_EQ(expected.ssl_valid, actual.ssl_valid);
196 EXPECT_EQ(expected.preferred, actual.preferred); 200 EXPECT_EQ(expected.preferred, actual.preferred);
197 // We don't check the date created. It varies. 201 // We don't check the date created. It varies.
198 EXPECT_EQ(expected.blacklisted_by_user, actual.blacklisted_by_user); 202 EXPECT_EQ(expected.blacklisted_by_user, actual.blacklisted_by_user);
199 EXPECT_EQ(expected.type, actual.type); 203 EXPECT_EQ(expected.type, actual.type);
200 EXPECT_EQ(expected.times_used, actual.times_used); 204 EXPECT_EQ(expected.times_used, actual.times_used);
201 EXPECT_EQ(expected.scheme, actual.scheme); 205 EXPECT_EQ(expected.scheme, actual.scheme);
202 EXPECT_EQ(expected.date_synced, actual.date_synced); 206 EXPECT_EQ(expected.date_synced, actual.date_synced);
207 EXPECT_EQ(expected.display_name, actual.display_name);
208 EXPECT_EQ(expected.avatar_url, actual.avatar_url);
209 EXPECT_EQ(expected.federation_url, actual.federation_url);
210 EXPECT_EQ(expected.is_zero_click, actual.is_zero_click);
203 } 211 }
204 212
205 // static 213 // static
206 void NativeBackendKWalletTestBase::CheckPasswordChanges( 214 void NativeBackendKWalletTestBase::CheckPasswordChanges(
207 const PasswordStoreChangeList& expected, 215 const PasswordStoreChangeList& expected,
208 const PasswordStoreChangeList& actual) { 216 const PasswordStoreChangeList& actual) {
209 ASSERT_EQ(expected.size(), actual.size()); 217 ASSERT_EQ(expected.size(), actual.size());
210 for (size_t i = 0; i < expected.size(); ++i) { 218 for (size_t i = 0; i < expected.size(); ++i) {
211 EXPECT_EQ(expected[i].type(), actual[i].type()); 219 EXPECT_EQ(expected[i].type(), actual[i].type());
212 CheckPasswordForm(expected[i].form(), actual[i].form()); 220 CheckPasswordForm(expected[i].form(), actual[i].form());
(...skipping 684 matching lines...) Expand 10 before | Expand all | Expand 10 after
897 905
898 TEST_F(NativeBackendKWalletTest, RemoveLoginsSyncedBetween) { 906 TEST_F(NativeBackendKWalletTest, RemoveLoginsSyncedBetween) {
899 TestRemoveLoginsBetween(SYNCED); 907 TestRemoveLoginsBetween(SYNCED);
900 } 908 }
901 909
902 // TODO(mdm): add more basic tests here at some point. 910 // TODO(mdm): add more basic tests here at some point.
903 // (For example tests for storing >1 password per realm pickle.) 911 // (For example tests for storing >1 password per realm pickle.)
904 912
905 class NativeBackendKWalletPickleTest : public NativeBackendKWalletTestBase { 913 class NativeBackendKWalletPickleTest : public NativeBackendKWalletTestBase {
906 protected: 914 protected:
915 void CreateVersion3Pickle(const PasswordForm& form, Pickle* pickle);
907 void CreateVersion2Pickle(const PasswordForm& form, Pickle* pickle); 916 void CreateVersion2Pickle(const PasswordForm& form, Pickle* pickle);
908 void CreateVersion1Pickle(const PasswordForm& form, Pickle* pickle); 917 void CreateVersion1Pickle(const PasswordForm& form, Pickle* pickle);
909 void CreateVersion0Pickle(bool size_32, 918 void CreateVersion0Pickle(bool size_32,
910 const PasswordForm& form, 919 const PasswordForm& form,
911 Pickle* pickle); 920 Pickle* pickle);
921 void CheckVersion3Pickle();
912 void CheckVersion2Pickle(); 922 void CheckVersion2Pickle();
913 void CheckVersion1Pickle(); 923 void CheckVersion1Pickle();
914 void CheckVersion0Pickle(bool size_32, PasswordForm::Scheme scheme); 924 void CheckVersion0Pickle(bool size_32, PasswordForm::Scheme scheme);
915 925
916 private: 926 private:
917 void CreatePickle(bool size_32, const PasswordForm& form, Pickle* pickle); 927 void CreatePickle(bool size_32, const PasswordForm& form, Pickle* pickle);
918 }; 928 };
919 929
930 void NativeBackendKWalletPickleTest::CreateVersion3Pickle(
931 const PasswordForm& form, Pickle* pickle) {
932 pickle->WriteInt(3);
933 CreatePickle(false, form, pickle);
934 pickle->WriteInt(form.type);
935 pickle->WriteInt(form.times_used);
936 autofill::SerializeFormData(form.form_data, pickle);
937 pickle->WriteInt64(form.date_synced.ToInternalValue());
938 }
939
920 void NativeBackendKWalletPickleTest::CreateVersion2Pickle( 940 void NativeBackendKWalletPickleTest::CreateVersion2Pickle(
921 const PasswordForm& form, Pickle* pickle) { 941 const PasswordForm& form, Pickle* pickle) {
922 pickle->WriteInt(2); 942 pickle->WriteInt(2);
923 CreatePickle(false, form, pickle); 943 CreatePickle(false, form, pickle);
924 pickle->WriteInt(form.type); 944 pickle->WriteInt(form.type);
925 pickle->WriteInt(form.times_used); 945 pickle->WriteInt(form.times_used);
926 autofill::SerializeFormData(form.form_data, pickle); 946 autofill::SerializeFormData(form.form_data, pickle);
927 } 947 }
928 948
929 void NativeBackendKWalletPickleTest::CreateVersion1Pickle( 949 void NativeBackendKWalletPickleTest::CreateVersion1Pickle(
(...skipping 21 matching lines...) Expand all
951 pickle->WriteString16(form.username_value); 971 pickle->WriteString16(form.username_value);
952 pickle->WriteString16(form.password_element); 972 pickle->WriteString16(form.password_element);
953 pickle->WriteString16(form.password_value); 973 pickle->WriteString16(form.password_value);
954 pickle->WriteString16(form.submit_element); 974 pickle->WriteString16(form.submit_element);
955 pickle->WriteBool(form.ssl_valid); 975 pickle->WriteBool(form.ssl_valid);
956 pickle->WriteBool(form.preferred); 976 pickle->WriteBool(form.preferred);
957 pickle->WriteBool(form.blacklisted_by_user); 977 pickle->WriteBool(form.blacklisted_by_user);
958 pickle->WriteInt64(form.date_created.ToTimeT()); 978 pickle->WriteInt64(form.date_created.ToTimeT());
959 } 979 }
960 980
981 void NativeBackendKWalletPickleTest::CheckVersion3Pickle() {
982 Pickle pickle;
983 PasswordForm form = form_google_;
984 // Remove the fields which were not present in version #3.
985 form.display_name.clear();
986 form.avatar_url = GURL();
987 form.federation_url = GURL();
988 form.is_zero_click = false;
989 CreateVersion3Pickle(form, &pickle);
990
991 ScopedVector<PasswordForm> form_list;
992 NativeBackendKWalletStub::DeserializeValue(form.signon_realm,
993 pickle, &form_list.get());
994
995 EXPECT_EQ(1u, form_list.size());
996 if (form_list.size() > 0)
997 CheckPasswordForm(form, *form_list[0]);
998 }
999
961 void NativeBackendKWalletPickleTest::CheckVersion2Pickle() { 1000 void NativeBackendKWalletPickleTest::CheckVersion2Pickle() {
962 Pickle pickle; 1001 Pickle pickle;
963 PasswordForm form = form_google_; 1002 PasswordForm form = old_form_google_;
964 form.date_synced = base::Time(); 1003 form.times_used = form_google_.times_used;
1004 form.type = form_google_.type;
1005 form.form_data = form_google_.form_data;
965 CreateVersion2Pickle(form, &pickle); 1006 CreateVersion2Pickle(form, &pickle);
966 1007
967 std::vector<PasswordForm*> form_list; 1008 ScopedVector<PasswordForm> form_list;
968 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, 1009 NativeBackendKWalletStub::DeserializeValue(form.signon_realm,
969 pickle, &form_list); 1010 pickle, &form_list.get());
970 1011
971 // This will match |old_form_google_| because not all the fields present in
972 // |form_google_| will be deserialized.
973 EXPECT_EQ(1u, form_list.size()); 1012 EXPECT_EQ(1u, form_list.size());
974 if (form_list.size() > 0) 1013 if (form_list.size() > 0)
975 CheckPasswordForm(form, *form_list[0]); 1014 CheckPasswordForm(form, *form_list[0]);
976 STLDeleteElements(&form_list);
977 } 1015 }
978 1016
979 // Make sure that we can still read version 1 pickles. 1017 // Make sure that we can still read version 1 pickles.
980 void NativeBackendKWalletPickleTest::CheckVersion1Pickle() { 1018 void NativeBackendKWalletPickleTest::CheckVersion1Pickle() {
981 Pickle pickle; 1019 Pickle pickle;
982 PasswordForm form = form_google_; 1020 PasswordForm form = form_google_;
983 CreateVersion1Pickle(form, &pickle); 1021 CreateVersion1Pickle(form, &pickle);
984 1022
985 std::vector<PasswordForm*> form_list; 1023 std::vector<PasswordForm*> form_list;
986 NativeBackendKWalletStub::DeserializeValue(form.signon_realm, 1024 NativeBackendKWalletStub::DeserializeValue(form.signon_realm,
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
1033 CheckVersion0Pickle(false, PasswordForm::SCHEME_BASIC); 1071 CheckVersion0Pickle(false, PasswordForm::SCHEME_BASIC);
1034 } 1072 }
1035 1073
1036 TEST_F(NativeBackendKWalletPickleTest, CheckVersion1Pickle) { 1074 TEST_F(NativeBackendKWalletPickleTest, CheckVersion1Pickle) {
1037 CheckVersion1Pickle(); 1075 CheckVersion1Pickle();
1038 } 1076 }
1039 1077
1040 TEST_F(NativeBackendKWalletPickleTest, CheckVersion2Pickle) { 1078 TEST_F(NativeBackendKWalletPickleTest, CheckVersion2Pickle) {
1041 CheckVersion2Pickle(); 1079 CheckVersion2Pickle();
1042 } 1080 }
1081
1082 TEST_F(NativeBackendKWalletPickleTest, CheckVersion3Pickle) {
1083 CheckVersion3Pickle();
1084 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698