Index: chrome/browser/autofill/autofill_profile_unittest.cc |
diff --git a/chrome/browser/autofill/autofill_profile_unittest.cc b/chrome/browser/autofill/autofill_profile_unittest.cc |
index 969a44a5c25bbd55158f93d8bfae1a1ed1c3fa83..6c3c7592fdd0711ae521dd6fc00c97d2658a73fc 100644 |
--- a/chrome/browser/autofill/autofill_profile_unittest.cc |
+++ b/chrome/browser/autofill/autofill_profile_unittest.cc |
@@ -3,6 +3,7 @@ |
// found in the LICENSE file. |
#include "base/basictypes.h" |
+#include "base/scoped_ptr.h" |
#include "base/string16.h" |
#include "chrome/browser/autofill/autofill_common_unittest.h" |
#include "chrome/browser/autofill/autofill_profile.h" |
@@ -20,164 +21,168 @@ TEST(AutoFillProfileTest, PreviewSummaryString) { |
// Case 0/empty: "" |
AutoFillProfile profile00(string16(), 0); |
- autofill_unittest::SetProfileInfo( |
- &profile00, |
- "Billing", |
- "", |
- "Mitchell", |
- "", |
- "johnwayne@me.xyz", |
- "Fox", |
- "", |
- "unit 5", |
- "Hollywood", "CA", |
- "91601", |
- "US", |
- "12345678910", |
- "01987654321"); |
+ autofill_unittest::SetProfileInfo(&profile00, "Billing", "", "Mitchell", "", |
+ "johnwayne@me.xyz", "Fox", "", "unit 5", "Hollywood", "CA", "91601", "US", |
+ "12345678910", "01987654321"); |
string16 summary00 = profile00.PreviewSummary(); |
EXPECT_EQ(string16(), summary00); |
// Case 1: "<address>" |
AutoFillProfile profile1(string16(), 0); |
- autofill_unittest::SetProfileInfo( |
- &profile1, |
- "Billing", |
- "", |
- "Mitchell", |
- "", |
- "johnwayne@me.xyz", |
- "Fox", |
- "123 Zoo St.", |
- "unit 5", |
- "Hollywood", "CA", |
- "91601", |
- "US", |
- "12345678910", |
- "01987654321"); |
+ autofill_unittest::SetProfileInfo(&profile1, "Billing", "", "Mitchell", "", |
+ "johnwayne@me.xyz", "Fox", "123 Zoo St.", "unit 5", "Hollywood", "CA", |
+ "91601", "US", "12345678910", "01987654321"); |
string16 summary1 = profile1.PreviewSummary(); |
EXPECT_EQ(string16(ASCIIToUTF16("123 Zoo St.")), summary1); |
// Case 2: "<lastname>" |
AutoFillProfile profile2(string16(), 0); |
- autofill_unittest::SetProfileInfo( |
- &profile2, |
- "Billing", |
- "", |
- "Mitchell", |
- "Morrison", |
- "johnwayne@me.xyz", |
- "Fox", |
- "", |
- "unit 5", |
- "Hollywood", "CA", |
- "91601", |
- "US", |
- "12345678910", |
- "01987654321"); |
+ autofill_unittest::SetProfileInfo(&profile2, "Billing", "", "Mitchell", |
+ "Morrison", "johnwayne@me.xyz", "Fox", "", "unit 5", "Hollywood", "CA", |
+ "91601", "US", "12345678910", "01987654321"); |
string16 summary2 = profile2.PreviewSummary(); |
EXPECT_EQ(string16(ASCIIToUTF16("Morrison")), summary2); |
// Case 3: "<lastname>, <address>" |
AutoFillProfile profile3(string16(), 0); |
- autofill_unittest::SetProfileInfo( |
- &profile3, |
- "Billing", |
- "", |
- "Mitchell", |
- "Morrison", |
- "johnwayne@me.xyz", |
- "Fox", |
- "123 Zoo St.", |
- "unit 5", |
- "Hollywood", "CA", |
- "91601", |
- "US", |
- "12345678910", |
- "01987654321"); |
+ autofill_unittest::SetProfileInfo(&profile3, "Billing", "", "Mitchell", |
+ "Morrison", "johnwayne@me.xyz", "Fox", "123 Zoo St.", "unit 5", |
+ "Hollywood", "CA", "91601", "US", "12345678910", "01987654321"); |
string16 summary3 = profile3.PreviewSummary(); |
EXPECT_EQ(string16(ASCIIToUTF16("Morrison, 123 Zoo St.")), summary3); |
// Case 4: "<firstname>" |
AutoFillProfile profile4(string16(), 0); |
- autofill_unittest::SetProfileInfo( |
- &profile4, |
- "Billing", |
- "Marion", |
- "Mitchell", |
- "", |
- "johnwayne@me.xyz", |
- "Fox", |
- "", |
- "unit 5", |
- "Hollywood", "CA", |
- "91601", |
- "US", |
- "12345678910", |
- "01987654321"); |
+ autofill_unittest::SetProfileInfo(&profile4, "Billing", "Marion", "Mitchell", |
+ "", "johnwayne@me.xyz", "Fox", "", "unit 5", "Hollywood", "CA", "91601", |
+ "US", "12345678910", "01987654321"); |
string16 summary4 = profile4.PreviewSummary(); |
EXPECT_EQ(string16(ASCIIToUTF16("Marion")), summary4); |
// Case 5: "<firstname>, <address>" |
AutoFillProfile profile5(string16(), 0); |
- autofill_unittest::SetProfileInfo( |
- &profile5, |
- "Billing", |
- "Marion", |
- "Mitchell", |
- "", |
- "johnwayne@me.xyz", |
- "Fox", |
- "123 Zoo St.", |
- "unit 5", |
- "Hollywood", "CA", |
- "91601", |
- "US", |
- "12345678910", |
- "01987654321"); |
+ autofill_unittest::SetProfileInfo(&profile5, "Billing", "Marion", "Mitchell", |
+ "", "johnwayne@me.xyz", "Fox", "123 Zoo St.", "unit 5", "Hollywood", "CA", |
+ "91601", "US", "12345678910", "01987654321"); |
string16 summary5 = profile5.PreviewSummary(); |
EXPECT_EQ(string16(ASCIIToUTF16("Marion, 123 Zoo St.")), summary5); |
// Case 6: "<firstname> <lastname>" |
AutoFillProfile profile6(string16(), 0); |
- autofill_unittest::SetProfileInfo( |
- &profile6, |
- "Billing", |
- "Marion", |
- "Mitchell", |
- "Morrison", |
- "johnwayne@me.xyz", |
- "Fox", |
- "", |
- "unit 5", |
- "Hollywood", "CA", |
- "91601", |
- "US", |
- "12345678910", |
- "01987654321"); |
+ autofill_unittest::SetProfileInfo(&profile6, "Billing", "Marion", "Mitchell", |
+ "Morrison", "johnwayne@me.xyz", "Fox", "", "unit 5", "Hollywood", "CA", |
+ "91601", "US", "12345678910", "01987654321"); |
string16 summary6 = profile6.PreviewSummary(); |
EXPECT_EQ(string16(ASCIIToUTF16("Marion Morrison")), summary6); |
// Case 7: "<firstname> <lastname>, <address>" |
AutoFillProfile profile7(string16(), 0); |
- autofill_unittest::SetProfileInfo( |
- &profile7, |
- "Billing", |
- "Marion", |
- "Mitchell", |
- "Morrison", |
- "johnwayne@me.xyz", |
- "Fox", |
- "123 Zoo St.", |
- "unit 5", |
- "Hollywood", "CA", |
- "91601", |
- "US", |
- "12345678910", |
- "01987654321"); |
+ autofill_unittest::SetProfileInfo(&profile7, "Billing", "Marion", "Mitchell", |
+ "Morrison", "johnwayne@me.xyz", "Fox", "123 Zoo St.", "unit 5", |
+ "Hollywood", "CA", "91601", "US", "12345678910", "01987654321"); |
string16 summary7 = profile7.PreviewSummary(); |
EXPECT_EQ(string16(ASCIIToUTF16("Marion Morrison, 123 Zoo St.")), summary7); |
} |
+TEST(AutoFillProfileTest, IsSubsetOf) { |
+ scoped_ptr<AutoFillProfile> a, b; |
+ |
+ // |a| is a subset of |b|. |
+ a.reset(new AutoFillProfile); |
+ b.reset(new AutoFillProfile); |
+ autofill_unittest::SetProfileInfo(a.get(), "label1", "Thomas", NULL, |
+ "Jefferson", "declaration_guy@gmail.com", NULL, NULL, NULL, NULL, NULL, |
+ NULL, NULL, NULL, NULL); |
+ autofill_unittest::SetProfileInfo(b.get(), "label2", "Thomas", NULL, |
+ "Jefferson", "declaration_guy@gmail.com", "United States Government", |
+ "Monticello", NULL, "Charlottesville", "Virginia", "22902", NULL, NULL, |
+ NULL); |
+ EXPECT_TRUE(a->IsSubsetOf(*b)); |
+ |
+ // |b| is not a subset of |a|. |
+ EXPECT_FALSE(b->IsSubsetOf(*a)); |
+ |
+ // |a| is a subset of |a|. |
+ EXPECT_TRUE(a->IsSubsetOf(*a)); |
+ |
+ // One field in |b| is different. |
+ a.reset(new AutoFillProfile); |
+ b.reset(new AutoFillProfile); |
+ autofill_unittest::SetProfileInfo(a.get(), "label1", "Thomas", NULL, |
+ "Jefferson", "declaration_guy@gmail.com", NULL, NULL, NULL, NULL, NULL, |
+ NULL, NULL, NULL, NULL); |
+ autofill_unittest::SetProfileInfo(a.get(), "label2", "Thomas", NULL, |
+ "Adams", "declaration_guy@gmail.com", NULL, NULL, NULL, NULL, NULL, |
+ NULL, NULL, NULL, NULL); |
+ EXPECT_FALSE(a->IsSubsetOf(*b)); |
+} |
+ |
+TEST(AutoFillProfileTest, IntersectionOfTypesHasEqualValues) { |
+ scoped_ptr<AutoFillProfile> a, b; |
+ |
+ // Intersection of types contains the fields NAME_FIRST, NAME_LAST, |
+ // EMAIL_ADDRESS. The values of these field types are equal between the two |
+ // profiles. |
+ a.reset(new AutoFillProfile); |
+ b.reset(new AutoFillProfile); |
+ autofill_unittest::SetProfileInfo(a.get(), "label1", "Thomas", NULL, |
+ "Jefferson", "declaration_guy@gmail.com", NULL, NULL, NULL, NULL, NULL, |
+ NULL, NULL, "12134759123", "19384284720"); |
+ autofill_unittest::SetProfileInfo(b.get(), "label2", "Thomas", NULL, |
+ "Jefferson", "declaration_guy@gmail.com", "United States Government", |
+ "Monticello", NULL, "Charlottesville", "Virginia", "22902", NULL, NULL, |
+ NULL); |
+ EXPECT_TRUE(a->IntersectionOfTypesHasEqualValues(*b)); |
+ |
+ // Intersection of types contains the fields NAME_FIRST, NAME_LAST, |
+ // EMAIL_ADDRESS. The value of EMAIL_ADDRESS differs between the two profiles. |
+ a.reset(new AutoFillProfile); |
+ b.reset(new AutoFillProfile); |
+ autofill_unittest::SetProfileInfo(a.get(), "label1", "Thomas", NULL, |
+ "Jefferson", "poser@yahoo.com", NULL, NULL, NULL, NULL, NULL, |
+ NULL, NULL, "12134759123", "19384284720"); |
+ autofill_unittest::SetProfileInfo(b.get(), "label2", "Thomas", NULL, |
+ "Jefferson", "declaration_guy@gmail.com", "United States Government", |
+ "Monticello", NULL, "Charlottesville", "Virginia", "22902", NULL, NULL, |
+ NULL); |
+ EXPECT_FALSE(a->IntersectionOfTypesHasEqualValues(*b)); |
+ |
+ // Intersection of types is empty. |
+ a.reset(new AutoFillProfile); |
+ b.reset(new AutoFillProfile); |
+ autofill_unittest::SetProfileInfo(a.get(), "label1", "Thomas", NULL, |
+ "Jefferson", "poser@yahoo.com", NULL, NULL, NULL, NULL, NULL, |
+ NULL, NULL, "12134759123", "19384284720"); |
+ autofill_unittest::SetProfileInfo(b.get(), "label2", NULL, NULL, NULL, NULL, |
+ "United States Government", "Monticello", NULL, "Charlottesville", |
+ "Virginia", "22902", NULL, NULL, NULL); |
+ EXPECT_FALSE(a->IntersectionOfTypesHasEqualValues(*b)); |
+} |
+ |
+TEST(AutoFillProfileTest, MergeWith) { |
+ scoped_ptr<AutoFillProfile> a, b; |
+ |
+ // Merge |b| into |a|. |
+ a.reset(new AutoFillProfile); |
+ b.reset(new AutoFillProfile); |
+ autofill_unittest::SetProfileInfo(a.get(), "label1", "Jimmy", NULL, |
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
+ NULL, NULL, "12134759123", "19384284720"); |
+ autofill_unittest::SetProfileInfo(b.get(), "label2", "James", NULL, |
+ "Madison", "constitutionalist@gmail.com", "United States Government", |
+ "Monticello", NULL, "Charlottesville", "Virginia", "22902", NULL, NULL, |
+ NULL); |
+ AutoFillProfile expected_b(*b); |
+ a->MergeWith(*b); |
+ |
+ AutoFillProfile expected_a; |
+ autofill_unittest::SetProfileInfo(&expected_a, "label1", "Jimmy", NULL, |
+ "Madison", "constitutionalist@gmail.com", "United States Government", |
+ "Monticello", NULL, "Charlottesville", "Virginia", "22902", NULL, |
+ "12134759123", "19384284720"); |
+ EXPECT_EQ(expected_a, *a); |
+ EXPECT_EQ(expected_b, *b); |
+} |
+ |
} // namespace |