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

Side by Side Diff: chrome/browser/webdata/web_database_unittest.cc

Issue 6673079: Reduce boxing and unboxing of AutofillFieldType (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 9 years, 9 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 <list> 5 #include <list>
6 #include <map> 6 #include <map>
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 AutofillProfile* profile, 98 AutofillProfile* profile,
99 string16* label, 99 string16* label,
100 int* unique_id, 100 int* unique_id,
101 int64* date_modified) { 101 int64* date_modified) {
102 DCHECK(profile); 102 DCHECK(profile);
103 DCHECK(label); 103 DCHECK(label);
104 DCHECK(unique_id); 104 DCHECK(unique_id);
105 DCHECK(date_modified); 105 DCHECK(date_modified);
106 *label = s.ColumnString16(0); 106 *label = s.ColumnString16(0);
107 *unique_id = s.ColumnInt(1); 107 *unique_id = s.ColumnInt(1);
108 profile->SetInfo(AutofillType(NAME_FIRST), s.ColumnString16(2)); 108 profile->SetInfo(NAME_FIRST, s.ColumnString16(2));
109 profile->SetInfo(AutofillType(NAME_MIDDLE), s.ColumnString16(3)); 109 profile->SetInfo(NAME_MIDDLE, s.ColumnString16(3));
110 profile->SetInfo(AutofillType(NAME_LAST),s.ColumnString16(4)); 110 profile->SetInfo(NAME_LAST,s.ColumnString16(4));
111 profile->SetInfo(AutofillType(EMAIL_ADDRESS), s.ColumnString16(5)); 111 profile->SetInfo(EMAIL_ADDRESS, s.ColumnString16(5));
112 profile->SetInfo(AutofillType(COMPANY_NAME), s.ColumnString16(6)); 112 profile->SetInfo(COMPANY_NAME, s.ColumnString16(6));
113 profile->SetInfo(AutofillType(ADDRESS_HOME_LINE1), s.ColumnString16(7)); 113 profile->SetInfo(ADDRESS_HOME_LINE1, s.ColumnString16(7));
114 profile->SetInfo(AutofillType(ADDRESS_HOME_LINE2), s.ColumnString16(8)); 114 profile->SetInfo(ADDRESS_HOME_LINE2, s.ColumnString16(8));
115 profile->SetInfo(AutofillType(ADDRESS_HOME_CITY), s.ColumnString16(9)); 115 profile->SetInfo(ADDRESS_HOME_CITY, s.ColumnString16(9));
116 profile->SetInfo(AutofillType(ADDRESS_HOME_STATE), s.ColumnString16(10)); 116 profile->SetInfo(ADDRESS_HOME_STATE, s.ColumnString16(10));
117 profile->SetInfo(AutofillType(ADDRESS_HOME_ZIP), s.ColumnString16(11)); 117 profile->SetInfo(ADDRESS_HOME_ZIP, s.ColumnString16(11));
118 profile->SetInfo(AutofillType(ADDRESS_HOME_COUNTRY), s.ColumnString16(12)); 118 profile->SetInfo(ADDRESS_HOME_COUNTRY, s.ColumnString16(12));
119 profile->SetInfo(AutofillType(PHONE_HOME_WHOLE_NUMBER), s.ColumnString16(13)); 119 profile->SetInfo(PHONE_HOME_WHOLE_NUMBER, s.ColumnString16(13));
120 profile->SetInfo(AutofillType(PHONE_FAX_WHOLE_NUMBER), s.ColumnString16(14)); 120 profile->SetInfo(PHONE_FAX_WHOLE_NUMBER, s.ColumnString16(14));
121 *date_modified = s.ColumnInt64(15); 121 *date_modified = s.ColumnInt64(15);
122 profile->set_guid(s.ColumnString(16)); 122 profile->set_guid(s.ColumnString(16));
123 EXPECT_TRUE(guid::IsValidGUID(profile->guid())); 123 EXPECT_TRUE(guid::IsValidGUID(profile->guid()));
124 } 124 }
125 125
126 void AutofillProfile32FromStatement(const sql::Statement& s, 126 void AutofillProfile32FromStatement(const sql::Statement& s,
127 AutofillProfile* profile, 127 AutofillProfile* profile,
128 string16* label, 128 string16* label,
129 int64* date_modified) { 129 int64* date_modified) {
130 DCHECK(profile); 130 DCHECK(profile);
131 DCHECK(label); 131 DCHECK(label);
132 DCHECK(date_modified); 132 DCHECK(date_modified);
133 profile->set_guid(s.ColumnString(0)); 133 profile->set_guid(s.ColumnString(0));
134 EXPECT_TRUE(guid::IsValidGUID(profile->guid())); 134 EXPECT_TRUE(guid::IsValidGUID(profile->guid()));
135 *label = s.ColumnString16(1); 135 *label = s.ColumnString16(1);
136 profile->SetInfo(AutofillType(NAME_FIRST), s.ColumnString16(2)); 136 profile->SetInfo(NAME_FIRST, s.ColumnString16(2));
137 profile->SetInfo(AutofillType(NAME_MIDDLE), s.ColumnString16(3)); 137 profile->SetInfo(NAME_MIDDLE, s.ColumnString16(3));
138 profile->SetInfo(AutofillType(NAME_LAST),s.ColumnString16(4)); 138 profile->SetInfo(NAME_LAST,s.ColumnString16(4));
139 profile->SetInfo(AutofillType(EMAIL_ADDRESS), s.ColumnString16(5)); 139 profile->SetInfo(EMAIL_ADDRESS, s.ColumnString16(5));
140 profile->SetInfo(AutofillType(COMPANY_NAME), s.ColumnString16(6)); 140 profile->SetInfo(COMPANY_NAME, s.ColumnString16(6));
141 profile->SetInfo(AutofillType(ADDRESS_HOME_LINE1), s.ColumnString16(7)); 141 profile->SetInfo(ADDRESS_HOME_LINE1, s.ColumnString16(7));
142 profile->SetInfo(AutofillType(ADDRESS_HOME_LINE2), s.ColumnString16(8)); 142 profile->SetInfo(ADDRESS_HOME_LINE2, s.ColumnString16(8));
143 profile->SetInfo(AutofillType(ADDRESS_HOME_CITY), s.ColumnString16(9)); 143 profile->SetInfo(ADDRESS_HOME_CITY, s.ColumnString16(9));
144 profile->SetInfo(AutofillType(ADDRESS_HOME_STATE), s.ColumnString16(10)); 144 profile->SetInfo(ADDRESS_HOME_STATE, s.ColumnString16(10));
145 profile->SetInfo(AutofillType(ADDRESS_HOME_ZIP), s.ColumnString16(11)); 145 profile->SetInfo(ADDRESS_HOME_ZIP, s.ColumnString16(11));
146 profile->SetInfo(AutofillType(ADDRESS_HOME_COUNTRY), s.ColumnString16(12)); 146 profile->SetInfo(ADDRESS_HOME_COUNTRY, s.ColumnString16(12));
147 profile->SetInfo(AutofillType(PHONE_HOME_WHOLE_NUMBER), s.ColumnString16(13)); 147 profile->SetInfo(PHONE_HOME_WHOLE_NUMBER, s.ColumnString16(13));
148 profile->SetInfo(AutofillType(PHONE_FAX_WHOLE_NUMBER), s.ColumnString16(14)); 148 profile->SetInfo(PHONE_FAX_WHOLE_NUMBER, s.ColumnString16(14));
149 *date_modified = s.ColumnInt64(15); 149 *date_modified = s.ColumnInt64(15);
150 } 150 }
151 151
152 void AutofillProfile33FromStatement(const sql::Statement& s, 152 void AutofillProfile33FromStatement(const sql::Statement& s,
153 AutofillProfile* profile, 153 AutofillProfile* profile,
154 int64* date_modified) { 154 int64* date_modified) {
155 DCHECK(profile); 155 DCHECK(profile);
156 DCHECK(date_modified); 156 DCHECK(date_modified);
157 profile->set_guid(s.ColumnString(0)); 157 profile->set_guid(s.ColumnString(0));
158 EXPECT_TRUE(guid::IsValidGUID(profile->guid())); 158 EXPECT_TRUE(guid::IsValidGUID(profile->guid()));
159 profile->SetInfo(AutofillType(COMPANY_NAME), s.ColumnString16(1)); 159 profile->SetInfo(COMPANY_NAME, s.ColumnString16(1));
160 profile->SetInfo(AutofillType(ADDRESS_HOME_LINE1), s.ColumnString16(2)); 160 profile->SetInfo(ADDRESS_HOME_LINE1, s.ColumnString16(2));
161 profile->SetInfo(AutofillType(ADDRESS_HOME_LINE2), s.ColumnString16(3)); 161 profile->SetInfo(ADDRESS_HOME_LINE2, s.ColumnString16(3));
162 profile->SetInfo(AutofillType(ADDRESS_HOME_CITY), s.ColumnString16(4)); 162 profile->SetInfo(ADDRESS_HOME_CITY, s.ColumnString16(4));
163 profile->SetInfo(AutofillType(ADDRESS_HOME_STATE), s.ColumnString16(5)); 163 profile->SetInfo(ADDRESS_HOME_STATE, s.ColumnString16(5));
164 profile->SetInfo(AutofillType(ADDRESS_HOME_ZIP), s.ColumnString16(6)); 164 profile->SetInfo(ADDRESS_HOME_ZIP, s.ColumnString16(6));
165 profile->SetInfo(AutofillType(ADDRESS_HOME_COUNTRY), s.ColumnString16(7)); 165 profile->SetInfo(ADDRESS_HOME_COUNTRY, s.ColumnString16(7));
166 *date_modified = s.ColumnInt64(8); 166 *date_modified = s.ColumnInt64(8);
167 } 167 }
168 168
169 void CreditCard31FromStatement(const sql::Statement& s, 169 void CreditCard31FromStatement(const sql::Statement& s,
170 CreditCard* credit_card, 170 CreditCard* credit_card,
171 string16* label, 171 string16* label,
172 int* unique_id, 172 int* unique_id,
173 std::string* encrypted_number, 173 std::string* encrypted_number,
174 int64* date_modified) { 174 int64* date_modified) {
175 DCHECK(credit_card); 175 DCHECK(credit_card);
176 DCHECK(label); 176 DCHECK(label);
177 DCHECK(unique_id); 177 DCHECK(unique_id);
178 DCHECK(encrypted_number); 178 DCHECK(encrypted_number);
179 DCHECK(date_modified); 179 DCHECK(date_modified);
180 *label = s.ColumnString16(0); 180 *label = s.ColumnString16(0);
181 *unique_id = s.ColumnInt(1); 181 *unique_id = s.ColumnInt(1);
182 credit_card->SetInfo(AutofillType(CREDIT_CARD_NAME), s.ColumnString16(2)); 182 credit_card->SetInfo(CREDIT_CARD_NAME, s.ColumnString16(2));
183 credit_card->SetInfo(AutofillType(CREDIT_CARD_TYPE), s.ColumnString16(3)); 183 credit_card->SetInfo(CREDIT_CARD_TYPE, s.ColumnString16(3));
184 credit_card->SetInfo(AutofillType(CREDIT_CARD_EXP_MONTH), 184 credit_card->SetInfo(CREDIT_CARD_EXP_MONTH,
185 s.ColumnString16(5)); 185 s.ColumnString16(5));
186 credit_card->SetInfo(AutofillType(CREDIT_CARD_EXP_4_DIGIT_YEAR), 186 credit_card->SetInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR,
187 s.ColumnString16(6)); 187 s.ColumnString16(6));
188 int encrypted_number_len = s.ColumnByteLength(10); 188 int encrypted_number_len = s.ColumnByteLength(10);
189 if (encrypted_number_len) { 189 if (encrypted_number_len) {
190 encrypted_number->resize(encrypted_number_len); 190 encrypted_number->resize(encrypted_number_len);
191 memcpy(&(*encrypted_number)[0], s.ColumnBlob(10), encrypted_number_len); 191 memcpy(&(*encrypted_number)[0], s.ColumnBlob(10), encrypted_number_len);
192 } 192 }
193 *date_modified = s.ColumnInt64(12); 193 *date_modified = s.ColumnInt64(12);
194 credit_card->set_guid(s.ColumnString(13)); 194 credit_card->set_guid(s.ColumnString(13));
195 EXPECT_TRUE(guid::IsValidGUID(credit_card->guid())); 195 EXPECT_TRUE(guid::IsValidGUID(credit_card->guid()));
196 } 196 }
197 197
198 void CreditCard32FromStatement(const sql::Statement& s, 198 void CreditCard32FromStatement(const sql::Statement& s,
199 CreditCard* credit_card, 199 CreditCard* credit_card,
200 std::string* encrypted_number, 200 std::string* encrypted_number,
201 int64* date_modified) { 201 int64* date_modified) {
202 DCHECK(credit_card); 202 DCHECK(credit_card);
203 DCHECK(encrypted_number); 203 DCHECK(encrypted_number);
204 DCHECK(date_modified); 204 DCHECK(date_modified);
205 credit_card->set_guid(s.ColumnString(0)); 205 credit_card->set_guid(s.ColumnString(0));
206 EXPECT_TRUE(guid::IsValidGUID(credit_card->guid())); 206 EXPECT_TRUE(guid::IsValidGUID(credit_card->guid()));
207 credit_card->SetInfo(AutofillType(CREDIT_CARD_NAME), s.ColumnString16(1)); 207 credit_card->SetInfo(CREDIT_CARD_NAME, s.ColumnString16(1));
208 credit_card->SetInfo(AutofillType(CREDIT_CARD_EXP_MONTH), 208 credit_card->SetInfo(CREDIT_CARD_EXP_MONTH,
209 s.ColumnString16(2)); 209 s.ColumnString16(2));
210 credit_card->SetInfo(AutofillType(CREDIT_CARD_EXP_4_DIGIT_YEAR), 210 credit_card->SetInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR,
211 s.ColumnString16(3)); 211 s.ColumnString16(3));
212 int encrypted_number_len = s.ColumnByteLength(4); 212 int encrypted_number_len = s.ColumnByteLength(4);
213 if (encrypted_number_len) { 213 if (encrypted_number_len) {
214 encrypted_number->resize(encrypted_number_len); 214 encrypted_number->resize(encrypted_number_len);
215 memcpy(&(*encrypted_number)[0], s.ColumnBlob(4), encrypted_number_len); 215 memcpy(&(*encrypted_number)[0], s.ColumnBlob(4), encrypted_number_len);
216 } 216 }
217 *date_modified = s.ColumnInt64(5); 217 *date_modified = s.ColumnInt64(5);
218 } 218 }
219 219
220 } // namespace 220 } // namespace
(...skipping 1180 matching lines...) Expand 10 before | Expand all | Expand 10 after
1401 EXPECT_EQ(out_map.find(service)->second, "ham"); 1401 EXPECT_EQ(out_map.find(service)->second, "ham");
1402 } 1402 }
1403 1403
1404 TEST_F(WebDatabaseTest, AutofillProfile) { 1404 TEST_F(WebDatabaseTest, AutofillProfile) {
1405 WebDatabase db; 1405 WebDatabase db;
1406 1406
1407 ASSERT_EQ(sql::INIT_OK, db.Init(file_)); 1407 ASSERT_EQ(sql::INIT_OK, db.Init(file_));
1408 1408
1409 // Add a 'Home' profile. 1409 // Add a 'Home' profile.
1410 AutofillProfile home_profile; 1410 AutofillProfile home_profile;
1411 home_profile.SetInfo(AutofillType(NAME_FIRST), ASCIIToUTF16("John")); 1411 home_profile.SetInfo(NAME_FIRST, ASCIIToUTF16("John"));
1412 home_profile.SetInfo(AutofillType(NAME_MIDDLE), ASCIIToUTF16("Q.")); 1412 home_profile.SetInfo(NAME_MIDDLE, ASCIIToUTF16("Q."));
1413 home_profile.SetInfo(AutofillType(NAME_LAST), ASCIIToUTF16("Smith")); 1413 home_profile.SetInfo(NAME_LAST, ASCIIToUTF16("Smith"));
1414 home_profile.SetInfo(AutofillType(EMAIL_ADDRESS), 1414 home_profile.SetInfo(EMAIL_ADDRESS,
1415 ASCIIToUTF16("js@smith.xyz")); 1415 ASCIIToUTF16("js@smith.xyz"));
1416 home_profile.SetInfo(AutofillType(COMPANY_NAME), ASCIIToUTF16("Google")); 1416 home_profile.SetInfo(COMPANY_NAME, ASCIIToUTF16("Google"));
1417 home_profile.SetInfo(AutofillType(ADDRESS_HOME_LINE1), 1417 home_profile.SetInfo(ADDRESS_HOME_LINE1,
1418 ASCIIToUTF16("1234 Apple Way")); 1418 ASCIIToUTF16("1234 Apple Way"));
1419 home_profile.SetInfo(AutofillType(ADDRESS_HOME_LINE2), 1419 home_profile.SetInfo(ADDRESS_HOME_LINE2,
1420 ASCIIToUTF16("unit 5")); 1420 ASCIIToUTF16("unit 5"));
1421 home_profile.SetInfo(AutofillType(ADDRESS_HOME_CITY), 1421 home_profile.SetInfo(ADDRESS_HOME_CITY,
1422 ASCIIToUTF16("Los Angeles")); 1422 ASCIIToUTF16("Los Angeles"));
1423 home_profile.SetInfo(AutofillType(ADDRESS_HOME_STATE), ASCIIToUTF16("CA")); 1423 home_profile.SetInfo(ADDRESS_HOME_STATE, ASCIIToUTF16("CA"));
1424 home_profile.SetInfo(AutofillType(ADDRESS_HOME_ZIP), ASCIIToUTF16("90025")); 1424 home_profile.SetInfo(ADDRESS_HOME_ZIP, ASCIIToUTF16("90025"));
1425 home_profile.SetInfo(AutofillType(ADDRESS_HOME_COUNTRY), ASCIIToUTF16("US")); 1425 home_profile.SetInfo(ADDRESS_HOME_COUNTRY, ASCIIToUTF16("US"));
1426 home_profile.SetInfo(AutofillType(PHONE_HOME_WHOLE_NUMBER), 1426 home_profile.SetInfo(PHONE_HOME_WHOLE_NUMBER,
1427 ASCIIToUTF16("18181234567")); 1427 ASCIIToUTF16("18181234567"));
1428 home_profile.SetInfo(AutofillType(PHONE_FAX_WHOLE_NUMBER), 1428 home_profile.SetInfo(PHONE_FAX_WHOLE_NUMBER,
1429 ASCIIToUTF16("1915243678")); 1429 ASCIIToUTF16("1915243678"));
1430 1430
1431 Time pre_creation_time = Time::Now(); 1431 Time pre_creation_time = Time::Now();
1432 EXPECT_TRUE(db.AddAutofillProfile(home_profile)); 1432 EXPECT_TRUE(db.AddAutofillProfile(home_profile));
1433 Time post_creation_time = Time::Now(); 1433 Time post_creation_time = Time::Now();
1434 1434
1435 // Get the 'Home' profile. 1435 // Get the 'Home' profile.
1436 AutofillProfile* db_profile; 1436 AutofillProfile* db_profile;
1437 ASSERT_TRUE(db.GetAutofillProfile(home_profile.guid(), &db_profile)); 1437 ASSERT_TRUE(db.GetAutofillProfile(home_profile.guid(), &db_profile));
1438 EXPECT_EQ(home_profile, *db_profile); 1438 EXPECT_EQ(home_profile, *db_profile);
1439 sql::Statement s_home(db.db_.GetUniqueStatement( 1439 sql::Statement s_home(db.db_.GetUniqueStatement(
1440 "SELECT date_modified " 1440 "SELECT date_modified "
1441 "FROM autofill_profiles WHERE guid=?")); 1441 "FROM autofill_profiles WHERE guid=?"));
1442 s_home.BindString(0, home_profile.guid()); 1442 s_home.BindString(0, home_profile.guid());
1443 ASSERT_TRUE(s_home); 1443 ASSERT_TRUE(s_home);
1444 ASSERT_TRUE(s_home.Step()); 1444 ASSERT_TRUE(s_home.Step());
1445 EXPECT_GE(s_home.ColumnInt64(0), pre_creation_time.ToTimeT()); 1445 EXPECT_GE(s_home.ColumnInt64(0), pre_creation_time.ToTimeT());
1446 EXPECT_LE(s_home.ColumnInt64(0), post_creation_time.ToTimeT()); 1446 EXPECT_LE(s_home.ColumnInt64(0), post_creation_time.ToTimeT());
1447 EXPECT_FALSE(s_home.Step()); 1447 EXPECT_FALSE(s_home.Step());
1448 delete db_profile; 1448 delete db_profile;
1449 1449
1450 // Add a 'Billing' profile. 1450 // Add a 'Billing' profile.
1451 AutofillProfile billing_profile = home_profile; 1451 AutofillProfile billing_profile = home_profile;
1452 billing_profile.set_guid(guid::GenerateGUID()); 1452 billing_profile.set_guid(guid::GenerateGUID());
1453 billing_profile.SetInfo(AutofillType(ADDRESS_HOME_LINE1), 1453 billing_profile.SetInfo(ADDRESS_HOME_LINE1,
1454 ASCIIToUTF16("5678 Bottom Street")); 1454 ASCIIToUTF16("5678 Bottom Street"));
1455 billing_profile.SetInfo(AutofillType(ADDRESS_HOME_LINE2), 1455 billing_profile.SetInfo(ADDRESS_HOME_LINE2,
1456 ASCIIToUTF16("suite 3")); 1456 ASCIIToUTF16("suite 3"));
1457 1457
1458 pre_creation_time = Time::Now(); 1458 pre_creation_time = Time::Now();
1459 EXPECT_TRUE(db.AddAutofillProfile(billing_profile)); 1459 EXPECT_TRUE(db.AddAutofillProfile(billing_profile));
1460 post_creation_time = Time::Now(); 1460 post_creation_time = Time::Now();
1461 1461
1462 // Get the 'Billing' profile. 1462 // Get the 'Billing' profile.
1463 ASSERT_TRUE(db.GetAutofillProfile(billing_profile.guid(), &db_profile)); 1463 ASSERT_TRUE(db.GetAutofillProfile(billing_profile.guid(), &db_profile));
1464 EXPECT_EQ(billing_profile, *db_profile); 1464 EXPECT_EQ(billing_profile, *db_profile);
1465 sql::Statement s_billing(db.db_.GetUniqueStatement( 1465 sql::Statement s_billing(db.db_.GetUniqueStatement(
1466 "SELECT date_modified FROM autofill_profiles WHERE guid=?")); 1466 "SELECT date_modified FROM autofill_profiles WHERE guid=?"));
1467 s_billing.BindString(0, billing_profile.guid()); 1467 s_billing.BindString(0, billing_profile.guid());
1468 ASSERT_TRUE(s_billing); 1468 ASSERT_TRUE(s_billing);
1469 ASSERT_TRUE(s_billing.Step()); 1469 ASSERT_TRUE(s_billing.Step());
1470 EXPECT_GE(s_billing.ColumnInt64(0), pre_creation_time.ToTimeT()); 1470 EXPECT_GE(s_billing.ColumnInt64(0), pre_creation_time.ToTimeT());
1471 EXPECT_LE(s_billing.ColumnInt64(0), post_creation_time.ToTimeT()); 1471 EXPECT_LE(s_billing.ColumnInt64(0), post_creation_time.ToTimeT());
1472 EXPECT_FALSE(s_billing.Step()); 1472 EXPECT_FALSE(s_billing.Step());
1473 delete db_profile; 1473 delete db_profile;
1474 1474
1475 // Update the 'Billing' profile, name only. 1475 // Update the 'Billing' profile, name only.
1476 billing_profile.SetInfo(AutofillType(NAME_FIRST), ASCIIToUTF16("Jane")); 1476 billing_profile.SetInfo(NAME_FIRST, ASCIIToUTF16("Jane"));
1477 Time pre_modification_time = Time::Now(); 1477 Time pre_modification_time = Time::Now();
1478 EXPECT_TRUE(db.UpdateAutofillProfile(billing_profile)); 1478 EXPECT_TRUE(db.UpdateAutofillProfile(billing_profile));
1479 Time post_modification_time = Time::Now(); 1479 Time post_modification_time = Time::Now();
1480 ASSERT_TRUE(db.GetAutofillProfile(billing_profile.guid(), &db_profile)); 1480 ASSERT_TRUE(db.GetAutofillProfile(billing_profile.guid(), &db_profile));
1481 EXPECT_EQ(billing_profile, *db_profile); 1481 EXPECT_EQ(billing_profile, *db_profile);
1482 sql::Statement s_billing_updated(db.db_.GetUniqueStatement( 1482 sql::Statement s_billing_updated(db.db_.GetUniqueStatement(
1483 "SELECT date_modified FROM autofill_profiles WHERE guid=?")); 1483 "SELECT date_modified FROM autofill_profiles WHERE guid=?"));
1484 s_billing_updated.BindString(0, billing_profile.guid()); 1484 s_billing_updated.BindString(0, billing_profile.guid());
1485 ASSERT_TRUE(s_billing_updated); 1485 ASSERT_TRUE(s_billing_updated);
1486 ASSERT_TRUE(s_billing_updated.Step()); 1486 ASSERT_TRUE(s_billing_updated.Step());
1487 EXPECT_GE(s_billing_updated.ColumnInt64(0), 1487 EXPECT_GE(s_billing_updated.ColumnInt64(0),
1488 pre_modification_time.ToTimeT()); 1488 pre_modification_time.ToTimeT());
1489 EXPECT_LE(s_billing_updated.ColumnInt64(0), 1489 EXPECT_LE(s_billing_updated.ColumnInt64(0),
1490 post_modification_time.ToTimeT()); 1490 post_modification_time.ToTimeT());
1491 EXPECT_FALSE(s_billing_updated.Step()); 1491 EXPECT_FALSE(s_billing_updated.Step());
1492 delete db_profile; 1492 delete db_profile;
1493 1493
1494 // Update the 'Billing' profile. 1494 // Update the 'Billing' profile.
1495 billing_profile.SetInfo(AutofillType(NAME_FIRST), ASCIIToUTF16("Janice")); 1495 billing_profile.SetInfo(NAME_FIRST, ASCIIToUTF16("Janice"));
1496 billing_profile.SetInfo(AutofillType(NAME_MIDDLE), ASCIIToUTF16("C.")); 1496 billing_profile.SetInfo(NAME_MIDDLE, ASCIIToUTF16("C."));
1497 billing_profile.SetInfo(AutofillType(NAME_FIRST), ASCIIToUTF16("Joplin")); 1497 billing_profile.SetInfo(NAME_FIRST, ASCIIToUTF16("Joplin"));
1498 billing_profile.SetInfo(AutofillType(EMAIL_ADDRESS), 1498 billing_profile.SetInfo(EMAIL_ADDRESS,
1499 ASCIIToUTF16("jane@singer.com")); 1499 ASCIIToUTF16("jane@singer.com"));
1500 billing_profile.SetInfo(AutofillType(COMPANY_NAME), ASCIIToUTF16("Indy")); 1500 billing_profile.SetInfo(COMPANY_NAME, ASCIIToUTF16("Indy"));
1501 billing_profile.SetInfo(AutofillType(ADDRESS_HOME_LINE1), 1501 billing_profile.SetInfo(ADDRESS_HOME_LINE1,
1502 ASCIIToUTF16("Open Road")); 1502 ASCIIToUTF16("Open Road"));
1503 billing_profile.SetInfo(AutofillType(ADDRESS_HOME_LINE2), 1503 billing_profile.SetInfo(ADDRESS_HOME_LINE2,
1504 ASCIIToUTF16("Route 66")); 1504 ASCIIToUTF16("Route 66"));
1505 billing_profile.SetInfo(AutofillType(ADDRESS_HOME_CITY), 1505 billing_profile.SetInfo(ADDRESS_HOME_CITY,
1506 ASCIIToUTF16("NFA")); 1506 ASCIIToUTF16("NFA"));
1507 billing_profile.SetInfo(AutofillType(ADDRESS_HOME_STATE), ASCIIToUTF16("NY")); 1507 billing_profile.SetInfo(ADDRESS_HOME_STATE, ASCIIToUTF16("NY"));
1508 billing_profile.SetInfo(AutofillType(ADDRESS_HOME_ZIP), 1508 billing_profile.SetInfo(ADDRESS_HOME_ZIP,
1509 ASCIIToUTF16("10011")); 1509 ASCIIToUTF16("10011"));
1510 billing_profile.SetInfo(AutofillType(ADDRESS_HOME_COUNTRY), 1510 billing_profile.SetInfo(ADDRESS_HOME_COUNTRY,
1511 ASCIIToUTF16("United States")); 1511 ASCIIToUTF16("United States"));
1512 billing_profile.SetInfo(AutofillType(PHONE_HOME_WHOLE_NUMBER), 1512 billing_profile.SetInfo(PHONE_HOME_WHOLE_NUMBER,
1513 ASCIIToUTF16("18181230000")); 1513 ASCIIToUTF16("18181230000"));
1514 billing_profile.SetInfo(AutofillType(PHONE_FAX_WHOLE_NUMBER), 1514 billing_profile.SetInfo(PHONE_FAX_WHOLE_NUMBER,
1515 ASCIIToUTF16("1915240000")); 1515 ASCIIToUTF16("1915240000"));
1516 Time pre_modification_time_2 = Time::Now(); 1516 Time pre_modification_time_2 = Time::Now();
1517 EXPECT_TRUE(db.UpdateAutofillProfile(billing_profile)); 1517 EXPECT_TRUE(db.UpdateAutofillProfile(billing_profile));
1518 Time post_modification_time_2 = Time::Now(); 1518 Time post_modification_time_2 = Time::Now();
1519 ASSERT_TRUE(db.GetAutofillProfile(billing_profile.guid(), &db_profile)); 1519 ASSERT_TRUE(db.GetAutofillProfile(billing_profile.guid(), &db_profile));
1520 EXPECT_EQ(billing_profile, *db_profile); 1520 EXPECT_EQ(billing_profile, *db_profile);
1521 sql::Statement s_billing_updated_2(db.db_.GetUniqueStatement( 1521 sql::Statement s_billing_updated_2(db.db_.GetUniqueStatement(
1522 "SELECT date_modified FROM autofill_profiles WHERE guid=?")); 1522 "SELECT date_modified FROM autofill_profiles WHERE guid=?"));
1523 s_billing_updated_2.BindString(0, billing_profile.guid()); 1523 s_billing_updated_2.BindString(0, billing_profile.guid());
1524 ASSERT_TRUE(s_billing_updated_2); 1524 ASSERT_TRUE(s_billing_updated_2);
(...skipping 10 matching lines...) Expand all
1535 EXPECT_FALSE(db.GetAutofillProfile(billing_profile.guid(), &db_profile)); 1535 EXPECT_FALSE(db.GetAutofillProfile(billing_profile.guid(), &db_profile));
1536 } 1536 }
1537 1537
1538 TEST_F(WebDatabaseTest, CreditCard) { 1538 TEST_F(WebDatabaseTest, CreditCard) {
1539 WebDatabase db; 1539 WebDatabase db;
1540 1540
1541 ASSERT_EQ(sql::INIT_OK, db.Init(file_)); 1541 ASSERT_EQ(sql::INIT_OK, db.Init(file_));
1542 1542
1543 // Add a 'Work' credit card. 1543 // Add a 'Work' credit card.
1544 CreditCard work_creditcard; 1544 CreditCard work_creditcard;
1545 work_creditcard.SetInfo(AutofillType(CREDIT_CARD_NAME), 1545 work_creditcard.SetInfo(CREDIT_CARD_NAME,
1546 ASCIIToUTF16("Jack Torrance")); 1546 ASCIIToUTF16("Jack Torrance"));
1547 work_creditcard.SetInfo(AutofillType(CREDIT_CARD_NUMBER), 1547 work_creditcard.SetInfo(CREDIT_CARD_NUMBER,
1548 ASCIIToUTF16("1234567890123456")); 1548 ASCIIToUTF16("1234567890123456"));
1549 work_creditcard.SetInfo(AutofillType(CREDIT_CARD_EXP_MONTH), 1549 work_creditcard.SetInfo(CREDIT_CARD_EXP_MONTH,
1550 ASCIIToUTF16("04")); 1550 ASCIIToUTF16("04"));
1551 work_creditcard.SetInfo(AutofillType(CREDIT_CARD_EXP_4_DIGIT_YEAR), 1551 work_creditcard.SetInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR,
1552 ASCIIToUTF16("2013")); 1552 ASCIIToUTF16("2013"));
1553 1553
1554 Time pre_creation_time = Time::Now(); 1554 Time pre_creation_time = Time::Now();
1555 EXPECT_TRUE(db.AddCreditCard(work_creditcard)); 1555 EXPECT_TRUE(db.AddCreditCard(work_creditcard));
1556 Time post_creation_time = Time::Now(); 1556 Time post_creation_time = Time::Now();
1557 1557
1558 // Get the 'Work' credit card. 1558 // Get the 'Work' credit card.
1559 CreditCard* db_creditcard; 1559 CreditCard* db_creditcard;
1560 ASSERT_TRUE(db.GetCreditCard(work_creditcard.guid(), &db_creditcard)); 1560 ASSERT_TRUE(db.GetCreditCard(work_creditcard.guid(), &db_creditcard));
1561 EXPECT_EQ(work_creditcard, *db_creditcard); 1561 EXPECT_EQ(work_creditcard, *db_creditcard);
1562 sql::Statement s_work(db.db_.GetUniqueStatement( 1562 sql::Statement s_work(db.db_.GetUniqueStatement(
1563 "SELECT guid, name_on_card, expiration_month, expiration_year, " 1563 "SELECT guid, name_on_card, expiration_month, expiration_year, "
1564 "card_number_encrypted, date_modified " 1564 "card_number_encrypted, date_modified "
1565 "FROM credit_cards WHERE guid=?")); 1565 "FROM credit_cards WHERE guid=?"));
1566 s_work.BindString(0, work_creditcard.guid()); 1566 s_work.BindString(0, work_creditcard.guid());
1567 ASSERT_TRUE(s_work); 1567 ASSERT_TRUE(s_work);
1568 ASSERT_TRUE(s_work.Step()); 1568 ASSERT_TRUE(s_work.Step());
1569 EXPECT_GE(s_work.ColumnInt64(5), pre_creation_time.ToTimeT()); 1569 EXPECT_GE(s_work.ColumnInt64(5), pre_creation_time.ToTimeT());
1570 EXPECT_LE(s_work.ColumnInt64(5), post_creation_time.ToTimeT()); 1570 EXPECT_LE(s_work.ColumnInt64(5), post_creation_time.ToTimeT());
1571 EXPECT_FALSE(s_work.Step()); 1571 EXPECT_FALSE(s_work.Step());
1572 delete db_creditcard; 1572 delete db_creditcard;
1573 1573
1574 // Add a 'Target' credit card. 1574 // Add a 'Target' credit card.
1575 CreditCard target_creditcard; 1575 CreditCard target_creditcard;
1576 target_creditcard.SetInfo(AutofillType(CREDIT_CARD_NAME), 1576 target_creditcard.SetInfo(CREDIT_CARD_NAME,
1577 ASCIIToUTF16("Jack Torrance")); 1577 ASCIIToUTF16("Jack Torrance"));
1578 target_creditcard.SetInfo(AutofillType(CREDIT_CARD_NUMBER), 1578 target_creditcard.SetInfo(CREDIT_CARD_NUMBER,
1579 ASCIIToUTF16("1111222233334444")); 1579 ASCIIToUTF16("1111222233334444"));
1580 target_creditcard.SetInfo(AutofillType(CREDIT_CARD_EXP_MONTH), 1580 target_creditcard.SetInfo(CREDIT_CARD_EXP_MONTH,
1581 ASCIIToUTF16("06")); 1581 ASCIIToUTF16("06"));
1582 target_creditcard.SetInfo(AutofillType(CREDIT_CARD_EXP_4_DIGIT_YEAR), 1582 target_creditcard.SetInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR,
1583 ASCIIToUTF16("2012")); 1583 ASCIIToUTF16("2012"));
1584 1584
1585 pre_creation_time = Time::Now(); 1585 pre_creation_time = Time::Now();
1586 EXPECT_TRUE(db.AddCreditCard(target_creditcard)); 1586 EXPECT_TRUE(db.AddCreditCard(target_creditcard));
1587 post_creation_time = Time::Now(); 1587 post_creation_time = Time::Now();
1588 ASSERT_TRUE(db.GetCreditCard(target_creditcard.guid(), &db_creditcard)); 1588 ASSERT_TRUE(db.GetCreditCard(target_creditcard.guid(), &db_creditcard));
1589 EXPECT_EQ(target_creditcard, *db_creditcard); 1589 EXPECT_EQ(target_creditcard, *db_creditcard);
1590 sql::Statement s_target(db.db_.GetUniqueStatement( 1590 sql::Statement s_target(db.db_.GetUniqueStatement(
1591 "SELECT guid, name_on_card, expiration_month, expiration_year, " 1591 "SELECT guid, name_on_card, expiration_month, expiration_year, "
1592 "card_number_encrypted, date_modified " 1592 "card_number_encrypted, date_modified "
1593 "FROM credit_cards WHERE guid=?")); 1593 "FROM credit_cards WHERE guid=?"));
1594 s_target.BindString(0, target_creditcard.guid()); 1594 s_target.BindString(0, target_creditcard.guid());
1595 ASSERT_TRUE(s_target); 1595 ASSERT_TRUE(s_target);
1596 ASSERT_TRUE(s_target.Step()); 1596 ASSERT_TRUE(s_target.Step());
1597 EXPECT_GE(s_target.ColumnInt64(5), pre_creation_time.ToTimeT()); 1597 EXPECT_GE(s_target.ColumnInt64(5), pre_creation_time.ToTimeT());
1598 EXPECT_LE(s_target.ColumnInt64(5), post_creation_time.ToTimeT()); 1598 EXPECT_LE(s_target.ColumnInt64(5), post_creation_time.ToTimeT());
1599 EXPECT_FALSE(s_target.Step()); 1599 EXPECT_FALSE(s_target.Step());
1600 delete db_creditcard; 1600 delete db_creditcard;
1601 1601
1602 // Update the 'Target' credit card. 1602 // Update the 'Target' credit card.
1603 target_creditcard.SetInfo(AutofillType(CREDIT_CARD_NAME), 1603 target_creditcard.SetInfo(CREDIT_CARD_NAME,
1604 ASCIIToUTF16("Charles Grady")); 1604 ASCIIToUTF16("Charles Grady"));
1605 Time pre_modification_time = Time::Now(); 1605 Time pre_modification_time = Time::Now();
1606 EXPECT_TRUE(db.UpdateCreditCard(target_creditcard)); 1606 EXPECT_TRUE(db.UpdateCreditCard(target_creditcard));
1607 Time post_modification_time = Time::Now(); 1607 Time post_modification_time = Time::Now();
1608 ASSERT_TRUE(db.GetCreditCard(target_creditcard.guid(), &db_creditcard)); 1608 ASSERT_TRUE(db.GetCreditCard(target_creditcard.guid(), &db_creditcard));
1609 EXPECT_EQ(target_creditcard, *db_creditcard); 1609 EXPECT_EQ(target_creditcard, *db_creditcard);
1610 sql::Statement s_target_updated(db.db_.GetUniqueStatement( 1610 sql::Statement s_target_updated(db.db_.GetUniqueStatement(
1611 "SELECT guid, name_on_card, expiration_month, expiration_year, " 1611 "SELECT guid, name_on_card, expiration_month, expiration_year, "
1612 "card_number_encrypted, date_modified " 1612 "card_number_encrypted, date_modified "
1613 "FROM credit_cards WHERE guid=?")); 1613 "FROM credit_cards WHERE guid=?"));
1614 s_target_updated.BindString(0, target_creditcard.guid()); 1614 s_target_updated.BindString(0, target_creditcard.guid());
1615 ASSERT_TRUE(s_target_updated); 1615 ASSERT_TRUE(s_target_updated);
1616 ASSERT_TRUE(s_target_updated.Step()); 1616 ASSERT_TRUE(s_target_updated.Step());
1617 EXPECT_GE(s_target_updated.ColumnInt64(5), pre_modification_time.ToTimeT()); 1617 EXPECT_GE(s_target_updated.ColumnInt64(5), pre_modification_time.ToTimeT());
1618 EXPECT_LE(s_target_updated.ColumnInt64(5), post_modification_time.ToTimeT()); 1618 EXPECT_LE(s_target_updated.ColumnInt64(5), post_modification_time.ToTimeT());
1619 EXPECT_FALSE(s_target_updated.Step()); 1619 EXPECT_FALSE(s_target_updated.Step());
1620 delete db_creditcard; 1620 delete db_creditcard;
1621 1621
1622 // Remove the 'Target' credit card. 1622 // Remove the 'Target' credit card.
1623 EXPECT_TRUE(db.RemoveCreditCard(target_creditcard.guid())); 1623 EXPECT_TRUE(db.RemoveCreditCard(target_creditcard.guid()));
1624 EXPECT_FALSE(db.GetCreditCard(target_creditcard.guid(), &db_creditcard)); 1624 EXPECT_FALSE(db.GetCreditCard(target_creditcard.guid(), &db_creditcard));
1625 } 1625 }
1626 1626
1627 TEST_F(WebDatabaseTest, UpdateAutofillProfile) { 1627 TEST_F(WebDatabaseTest, UpdateAutofillProfile) {
1628 WebDatabase db; 1628 WebDatabase db;
1629 ASSERT_EQ(sql::INIT_OK, db.Init(file_)); 1629 ASSERT_EQ(sql::INIT_OK, db.Init(file_));
1630 1630
1631 // Add a profile to the db. 1631 // Add a profile to the db.
1632 AutofillProfile profile; 1632 AutofillProfile profile;
1633 profile.SetInfo(AutofillType(NAME_FIRST), ASCIIToUTF16("John")); 1633 profile.SetInfo(NAME_FIRST, ASCIIToUTF16("John"));
1634 profile.SetInfo(AutofillType(NAME_MIDDLE), ASCIIToUTF16("Q.")); 1634 profile.SetInfo(NAME_MIDDLE, ASCIIToUTF16("Q."));
1635 profile.SetInfo(AutofillType(NAME_LAST), ASCIIToUTF16("Smith")); 1635 profile.SetInfo(NAME_LAST, ASCIIToUTF16("Smith"));
1636 profile.SetInfo(AutofillType(EMAIL_ADDRESS), ASCIIToUTF16("js@example.com")); 1636 profile.SetInfo(EMAIL_ADDRESS, ASCIIToUTF16("js@example.com"));
1637 profile.SetInfo(AutofillType(COMPANY_NAME), ASCIIToUTF16("Google")); 1637 profile.SetInfo(COMPANY_NAME, ASCIIToUTF16("Google"));
1638 profile.SetInfo(AutofillType(ADDRESS_HOME_LINE1), 1638 profile.SetInfo(ADDRESS_HOME_LINE1,
1639 ASCIIToUTF16("1234 Apple Way")); 1639 ASCIIToUTF16("1234 Apple Way"));
1640 profile.SetInfo(AutofillType(ADDRESS_HOME_LINE2), ASCIIToUTF16("unit 5")); 1640 profile.SetInfo(ADDRESS_HOME_LINE2, ASCIIToUTF16("unit 5"));
1641 profile.SetInfo(AutofillType(ADDRESS_HOME_CITY), ASCIIToUTF16("Los Angeles")); 1641 profile.SetInfo(ADDRESS_HOME_CITY, ASCIIToUTF16("Los Angeles"));
1642 profile.SetInfo(AutofillType(ADDRESS_HOME_STATE), ASCIIToUTF16("CA")); 1642 profile.SetInfo(ADDRESS_HOME_STATE, ASCIIToUTF16("CA"));
1643 profile.SetInfo(AutofillType(ADDRESS_HOME_ZIP), ASCIIToUTF16("90025")); 1643 profile.SetInfo(ADDRESS_HOME_ZIP, ASCIIToUTF16("90025"));
1644 profile.SetInfo(AutofillType(ADDRESS_HOME_COUNTRY), ASCIIToUTF16("US")); 1644 profile.SetInfo(ADDRESS_HOME_COUNTRY, ASCIIToUTF16("US"));
1645 profile.SetInfo(AutofillType(PHONE_HOME_WHOLE_NUMBER), 1645 profile.SetInfo(PHONE_HOME_WHOLE_NUMBER,
1646 ASCIIToUTF16("18181234567")); 1646 ASCIIToUTF16("18181234567"));
1647 profile.SetInfo(AutofillType(PHONE_FAX_WHOLE_NUMBER), 1647 profile.SetInfo(PHONE_FAX_WHOLE_NUMBER,
1648 ASCIIToUTF16("1915243678")); 1648 ASCIIToUTF16("1915243678"));
1649 db.AddAutofillProfile(profile); 1649 db.AddAutofillProfile(profile);
1650 1650
1651 // Set a mocked value for the profile's creation time. 1651 // Set a mocked value for the profile's creation time.
1652 const time_t mock_creation_date = Time::Now().ToTimeT() - 13; 1652 const time_t mock_creation_date = Time::Now().ToTimeT() - 13;
1653 sql::Statement s_mock_creation_date(db.db_.GetUniqueStatement( 1653 sql::Statement s_mock_creation_date(db.db_.GetUniqueStatement(
1654 "UPDATE autofill_profiles SET date_modified = ?")); 1654 "UPDATE autofill_profiles SET date_modified = ?"));
1655 ASSERT_TRUE(s_mock_creation_date); 1655 ASSERT_TRUE(s_mock_creation_date);
1656 s_mock_creation_date.BindInt64(0, mock_creation_date); 1656 s_mock_creation_date.BindInt64(0, mock_creation_date);
1657 ASSERT_TRUE(s_mock_creation_date.Run()); 1657 ASSERT_TRUE(s_mock_creation_date.Run());
1658 1658
1659 // Get the profile. 1659 // Get the profile.
1660 AutofillProfile* tmp_profile; 1660 AutofillProfile* tmp_profile;
1661 ASSERT_TRUE(db.GetAutofillProfile(profile.guid(), &tmp_profile)); 1661 ASSERT_TRUE(db.GetAutofillProfile(profile.guid(), &tmp_profile));
1662 scoped_ptr<AutofillProfile> db_profile(tmp_profile); 1662 scoped_ptr<AutofillProfile> db_profile(tmp_profile);
1663 EXPECT_EQ(profile, *db_profile); 1663 EXPECT_EQ(profile, *db_profile);
1664 sql::Statement s_original(db.db_.GetUniqueStatement( 1664 sql::Statement s_original(db.db_.GetUniqueStatement(
1665 "SELECT date_modified FROM autofill_profiles")); 1665 "SELECT date_modified FROM autofill_profiles"));
1666 ASSERT_TRUE(s_original); 1666 ASSERT_TRUE(s_original);
1667 ASSERT_TRUE(s_original.Step()); 1667 ASSERT_TRUE(s_original.Step());
1668 EXPECT_EQ(mock_creation_date, s_original.ColumnInt64(0)); 1668 EXPECT_EQ(mock_creation_date, s_original.ColumnInt64(0));
1669 EXPECT_FALSE(s_original.Step()); 1669 EXPECT_FALSE(s_original.Step());
1670 1670
1671 // Now, update the profile and save the update to the database. 1671 // Now, update the profile and save the update to the database.
1672 // The modification date should change to reflect the update. 1672 // The modification date should change to reflect the update.
1673 profile.SetInfo(AutofillType(EMAIL_ADDRESS), ASCIIToUTF16("js@smith.xyz")); 1673 profile.SetInfo(EMAIL_ADDRESS, ASCIIToUTF16("js@smith.xyz"));
1674 db.UpdateAutofillProfile(profile); 1674 db.UpdateAutofillProfile(profile);
1675 1675
1676 // Get the profile. 1676 // Get the profile.
1677 ASSERT_TRUE(db.GetAutofillProfile(profile.guid(), &tmp_profile)); 1677 ASSERT_TRUE(db.GetAutofillProfile(profile.guid(), &tmp_profile));
1678 db_profile.reset(tmp_profile); 1678 db_profile.reset(tmp_profile);
1679 EXPECT_EQ(profile, *db_profile); 1679 EXPECT_EQ(profile, *db_profile);
1680 sql::Statement s_updated(db.db_.GetUniqueStatement( 1680 sql::Statement s_updated(db.db_.GetUniqueStatement(
1681 "SELECT date_modified FROM autofill_profiles")); 1681 "SELECT date_modified FROM autofill_profiles"));
1682 ASSERT_TRUE(s_updated); 1682 ASSERT_TRUE(s_updated);
1683 ASSERT_TRUE(s_updated.Step()); 1683 ASSERT_TRUE(s_updated.Step());
(...skipping 23 matching lines...) Expand all
1707 EXPECT_EQ(mock_modification_date, s_unchanged.ColumnInt64(0)); 1707 EXPECT_EQ(mock_modification_date, s_unchanged.ColumnInt64(0));
1708 EXPECT_FALSE(s_unchanged.Step()); 1708 EXPECT_FALSE(s_unchanged.Step());
1709 } 1709 }
1710 1710
1711 TEST_F(WebDatabaseTest, UpdateCreditCard) { 1711 TEST_F(WebDatabaseTest, UpdateCreditCard) {
1712 WebDatabase db; 1712 WebDatabase db;
1713 ASSERT_EQ(sql::INIT_OK, db.Init(file_)); 1713 ASSERT_EQ(sql::INIT_OK, db.Init(file_));
1714 1714
1715 // Add a credit card to the db. 1715 // Add a credit card to the db.
1716 CreditCard credit_card; 1716 CreditCard credit_card;
1717 credit_card.SetInfo(AutofillType(CREDIT_CARD_NAME), 1717 credit_card.SetInfo(CREDIT_CARD_NAME,
1718 ASCIIToUTF16("Jack Torrance")); 1718 ASCIIToUTF16("Jack Torrance"));
1719 credit_card.SetInfo(AutofillType(CREDIT_CARD_NUMBER), 1719 credit_card.SetInfo(CREDIT_CARD_NUMBER,
1720 ASCIIToUTF16("1234567890123456")); 1720 ASCIIToUTF16("1234567890123456"));
1721 credit_card.SetInfo(AutofillType(CREDIT_CARD_EXP_MONTH), 1721 credit_card.SetInfo(CREDIT_CARD_EXP_MONTH,
1722 ASCIIToUTF16("04")); 1722 ASCIIToUTF16("04"));
1723 credit_card.SetInfo(AutofillType(CREDIT_CARD_EXP_4_DIGIT_YEAR), 1723 credit_card.SetInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR,
1724 ASCIIToUTF16("2013")); 1724 ASCIIToUTF16("2013"));
1725 db.AddCreditCard(credit_card); 1725 db.AddCreditCard(credit_card);
1726 1726
1727 // Set a mocked value for the credit card's creation time. 1727 // Set a mocked value for the credit card's creation time.
1728 const time_t mock_creation_date = Time::Now().ToTimeT() - 13; 1728 const time_t mock_creation_date = Time::Now().ToTimeT() - 13;
1729 sql::Statement s_mock_creation_date(db.db_.GetUniqueStatement( 1729 sql::Statement s_mock_creation_date(db.db_.GetUniqueStatement(
1730 "UPDATE credit_cards SET date_modified = ?")); 1730 "UPDATE credit_cards SET date_modified = ?"));
1731 ASSERT_TRUE(s_mock_creation_date); 1731 ASSERT_TRUE(s_mock_creation_date);
1732 s_mock_creation_date.BindInt64(0, mock_creation_date); 1732 s_mock_creation_date.BindInt64(0, mock_creation_date);
1733 ASSERT_TRUE(s_mock_creation_date.Run()); 1733 ASSERT_TRUE(s_mock_creation_date.Run());
1734 1734
1735 // Get the credit card. 1735 // Get the credit card.
1736 CreditCard* tmp_credit_card; 1736 CreditCard* tmp_credit_card;
1737 ASSERT_TRUE(db.GetCreditCard(credit_card.guid(), &tmp_credit_card)); 1737 ASSERT_TRUE(db.GetCreditCard(credit_card.guid(), &tmp_credit_card));
1738 scoped_ptr<CreditCard> db_credit_card(tmp_credit_card); 1738 scoped_ptr<CreditCard> db_credit_card(tmp_credit_card);
1739 EXPECT_EQ(credit_card, *db_credit_card); 1739 EXPECT_EQ(credit_card, *db_credit_card);
1740 sql::Statement s_original(db.db_.GetUniqueStatement( 1740 sql::Statement s_original(db.db_.GetUniqueStatement(
1741 "SELECT date_modified FROM credit_cards")); 1741 "SELECT date_modified FROM credit_cards"));
1742 ASSERT_TRUE(s_original); 1742 ASSERT_TRUE(s_original);
1743 ASSERT_TRUE(s_original.Step()); 1743 ASSERT_TRUE(s_original.Step());
1744 EXPECT_EQ(mock_creation_date, s_original.ColumnInt64(0)); 1744 EXPECT_EQ(mock_creation_date, s_original.ColumnInt64(0));
1745 EXPECT_FALSE(s_original.Step()); 1745 EXPECT_FALSE(s_original.Step());
1746 1746
1747 // Now, update the credit card and save the update to the database. 1747 // Now, update the credit card and save the update to the database.
1748 // The modification date should change to reflect the update. 1748 // The modification date should change to reflect the update.
1749 credit_card.SetInfo(AutofillType(CREDIT_CARD_EXP_MONTH), ASCIIToUTF16("01")); 1749 credit_card.SetInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("01"));
1750 db.UpdateCreditCard(credit_card); 1750 db.UpdateCreditCard(credit_card);
1751 1751
1752 // Get the credit card. 1752 // Get the credit card.
1753 ASSERT_TRUE(db.GetCreditCard(credit_card.guid(), &tmp_credit_card)); 1753 ASSERT_TRUE(db.GetCreditCard(credit_card.guid(), &tmp_credit_card));
1754 db_credit_card.reset(tmp_credit_card); 1754 db_credit_card.reset(tmp_credit_card);
1755 EXPECT_EQ(credit_card, *db_credit_card); 1755 EXPECT_EQ(credit_card, *db_credit_card);
1756 sql::Statement s_updated(db.db_.GetUniqueStatement( 1756 sql::Statement s_updated(db.db_.GetUniqueStatement(
1757 "SELECT date_modified FROM credit_cards")); 1757 "SELECT date_modified FROM credit_cards"));
1758 ASSERT_TRUE(s_updated); 1758 ASSERT_TRUE(s_updated);
1759 ASSERT_TRUE(s_updated.Step()); 1759 ASSERT_TRUE(s_updated.Step());
(...skipping 1021 matching lines...) Expand 10 before | Expand all | Expand 10 after
2781 "SELECT guid, company_name, address_line_1, address_line_2, " 2781 "SELECT guid, company_name, address_line_1, address_line_2, "
2782 "city, state, zipcode, country, date_modified " 2782 "city, state, zipcode, country, date_modified "
2783 "FROM autofill_profiles")); 2783 "FROM autofill_profiles"));
2784 ASSERT_TRUE(s1.Step()); 2784 ASSERT_TRUE(s1.Step());
2785 2785
2786 AutofillProfile profile_a; 2786 AutofillProfile profile_a;
2787 int64 profile_date_modified_a = 0; 2787 int64 profile_date_modified_a = 0;
2788 EXPECT_NO_FATAL_FAILURE(AutofillProfile33FromStatement( 2788 EXPECT_NO_FATAL_FAILURE(AutofillProfile33FromStatement(
2789 s1, &profile_a, &profile_date_modified_a)); 2789 s1, &profile_a, &profile_date_modified_a));
2790 EXPECT_EQ(profile.guid(), profile_a.guid()); 2790 EXPECT_EQ(profile.guid(), profile_a.guid());
2791 EXPECT_EQ(profile.GetFieldText(AutofillType(COMPANY_NAME)), 2791 EXPECT_EQ(profile.GetFieldText(COMPANY_NAME),
2792 profile_a.GetFieldText(AutofillType(COMPANY_NAME))); 2792 profile_a.GetFieldText(COMPANY_NAME));
2793 EXPECT_EQ(profile.GetFieldText(AutofillType(ADDRESS_HOME_LINE1)), 2793 EXPECT_EQ(profile.GetFieldText(ADDRESS_HOME_LINE1),
2794 profile_a.GetFieldText(AutofillType(ADDRESS_HOME_LINE1))); 2794 profile_a.GetFieldText(ADDRESS_HOME_LINE1));
2795 EXPECT_EQ(profile.GetFieldText(AutofillType(ADDRESS_HOME_LINE2)), 2795 EXPECT_EQ(profile.GetFieldText(ADDRESS_HOME_LINE2),
2796 profile_a.GetFieldText(AutofillType(ADDRESS_HOME_LINE2))); 2796 profile_a.GetFieldText(ADDRESS_HOME_LINE2));
2797 EXPECT_EQ(profile.GetFieldText(AutofillType(ADDRESS_HOME_CITY)), 2797 EXPECT_EQ(profile.GetFieldText(ADDRESS_HOME_CITY),
2798 profile_a.GetFieldText(AutofillType(ADDRESS_HOME_CITY))); 2798 profile_a.GetFieldText(ADDRESS_HOME_CITY));
2799 EXPECT_EQ(profile.GetFieldText(AutofillType(ADDRESS_HOME_STATE)), 2799 EXPECT_EQ(profile.GetFieldText(ADDRESS_HOME_STATE),
2800 profile_a.GetFieldText(AutofillType(ADDRESS_HOME_STATE))); 2800 profile_a.GetFieldText(ADDRESS_HOME_STATE));
2801 EXPECT_EQ(profile.GetFieldText(AutofillType(ADDRESS_HOME_ZIP)), 2801 EXPECT_EQ(profile.GetFieldText(ADDRESS_HOME_ZIP),
2802 profile_a.GetFieldText(AutofillType(ADDRESS_HOME_ZIP))); 2802 profile_a.GetFieldText(ADDRESS_HOME_ZIP));
2803 EXPECT_EQ(profile.GetFieldText(AutofillType(ADDRESS_HOME_COUNTRY)), 2803 EXPECT_EQ(profile.GetFieldText(ADDRESS_HOME_COUNTRY),
2804 profile_a.GetFieldText(AutofillType(ADDRESS_HOME_COUNTRY))); 2804 profile_a.GetFieldText(ADDRESS_HOME_COUNTRY));
2805 EXPECT_EQ(profile_date_modified, profile_date_modified_a); 2805 EXPECT_EQ(profile_date_modified, profile_date_modified_a);
2806 2806
2807 sql::Statement s2( 2807 sql::Statement s2(
2808 connection.GetUniqueStatement( 2808 connection.GetUniqueStatement(
2809 "SELECT guid, name_on_card, expiration_month, " 2809 "SELECT guid, name_on_card, expiration_month, "
2810 "expiration_year, card_number_encrypted, date_modified " 2810 "expiration_year, card_number_encrypted, date_modified "
2811 "FROM credit_cards")); 2811 "FROM credit_cards"));
2812 ASSERT_TRUE(s2.Step()); 2812 ASSERT_TRUE(s2.Step());
2813 2813
2814 CreditCard credit_card_a; 2814 CreditCard credit_card_a;
(...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after
3224 "SELECT country_code FROM autofill_profiles")); 3224 "SELECT country_code FROM autofill_profiles"));
3225 3225
3226 ASSERT_TRUE(s.Step()); 3226 ASSERT_TRUE(s.Step());
3227 std::string country_code = s.ColumnString(0); 3227 std::string country_code = s.ColumnString(0);
3228 EXPECT_EQ("GB", country_code); 3228 EXPECT_EQ("GB", country_code);
3229 3229
3230 // Should have only one. 3230 // Should have only one.
3231 ASSERT_FALSE(s.Step()); 3231 ASSERT_FALSE(s.Step());
3232 } 3232 }
3233 } 3233 }
OLDNEW
« no previous file with comments | « chrome/browser/webdata/web_database.cc ('k') | chrome/test/live_sync/live_autofill_sync_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698