| Index: chrome/android/javatests/src/org/chromium/chrome/browser/autofill/PersonalDataManagerTest.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/PersonalDataManagerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/PersonalDataManagerTest.java
|
| index 8ddc33dda917a49e76562999a2b197e673d6b552..ec1b080b03b571a0a865198e15fbea123f9560ad 100644
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/PersonalDataManagerTest.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/PersonalDataManagerTest.java
|
| @@ -42,7 +42,7 @@
|
| "94102", "",
|
| "US", "4158889999", "john@acme.inc", "");
|
| String profileOneGUID = mHelper.setProfile(profile);
|
| - assertEquals(1, mHelper.getNumberOfProfiles());
|
| + assertEquals(1, mHelper.getNumberOfProfilesForSettings());
|
|
|
| AutofillProfile profile2 = new AutofillProfile(
|
| "" /* guid */, "http://www.example.com" /* origin */,
|
| @@ -51,12 +51,13 @@
|
| "94102", "",
|
| "US", "4158889999", "john@acme.inc", "");
|
| String profileTwoGUID = mHelper.setProfile(profile2);
|
| - assertEquals(2, mHelper.getNumberOfProfiles());
|
| + assertEquals(2, mHelper.getNumberOfProfilesForSettings());
|
|
|
| profile.setGUID(profileOneGUID);
|
| profile.setCountryCode("CA");
|
| mHelper.setProfile(profile);
|
| - assertEquals("Should still have only two profiles", 2, mHelper.getNumberOfProfiles());
|
| + assertEquals(
|
| + "Should still have only two profiles", 2, mHelper.getNumberOfProfilesForSettings());
|
|
|
| AutofillProfile storedProfile = mHelper.getProfile(profileOneGUID);
|
| assertEquals(profileOneGUID, storedProfile.getGUID());
|
| @@ -77,7 +78,7 @@
|
| "US", "4158889999", "john@acme.inc", "fr");
|
| assertEquals("fr", profile.getLanguageCode());
|
| String profileOneGUID = mHelper.setProfile(profile);
|
| - assertEquals(1, mHelper.getNumberOfProfiles());
|
| + assertEquals(1, mHelper.getNumberOfProfilesForSettings());
|
|
|
| AutofillProfile storedProfile = mHelper.getProfile(profileOneGUID);
|
| assertEquals(profileOneGUID, storedProfile.getGUID());
|
| @@ -106,10 +107,10 @@
|
| "94102", "",
|
| "US", "4158889999", "john@acme.inc", "");
|
| String profileOneGUID = mHelper.setProfile(profile);
|
| - assertEquals(1, mHelper.getNumberOfProfiles());
|
| + assertEquals(1, mHelper.getNumberOfProfilesForSettings());
|
|
|
| mHelper.deleteProfile(profileOneGUID);
|
| - assertEquals(0, mHelper.getNumberOfProfiles());
|
| + assertEquals(0, mHelper.getNumberOfProfilesForSettings());
|
| }
|
|
|
| @SmallTest
|
| @@ -119,19 +120,20 @@
|
| "" /* guid */, "https://www.example.com" /* origin */,
|
| "Visa", "1234123412341234", "", "5", "2020");
|
| String cardOneGUID = mHelper.setCreditCard(card);
|
| - assertEquals(1, mHelper.getNumberOfCreditCards());
|
| + assertEquals(1, mHelper.getNumberOfCreditCardsForSettings());
|
|
|
| CreditCard card2 = new CreditCard(
|
| "" /* guid */, "http://www.example.com" /* origin */,
|
| "American Express", "1234123412341234", "", "8", "2020");
|
| String cardTwoGUID = mHelper.setCreditCard(card2);
|
| - assertEquals(2, mHelper.getNumberOfCreditCards());
|
| + assertEquals(2, mHelper.getNumberOfCreditCardsForSettings());
|
|
|
| card.setGUID(cardOneGUID);
|
| card.setMonth("10");
|
| card.setNumber("4012888888881881");
|
| mHelper.setCreditCard(card);
|
| - assertEquals("Should still have only two cards", 2, mHelper.getNumberOfCreditCards());
|
| + assertEquals(
|
| + "Should still have only two cards", 2, mHelper.getNumberOfCreditCardsForSettings());
|
|
|
| CreditCard storedCard = mHelper.getCreditCard(cardOneGUID);
|
| assertEquals(cardOneGUID, storedCard.getGUID());
|
| @@ -150,10 +152,10 @@
|
| "" /* guid */, "Chrome settings" /* origin */,
|
| "Visa", "1234123412341234", "", "5", "2020");
|
| String cardOneGUID = mHelper.setCreditCard(card);
|
| - assertEquals(1, mHelper.getNumberOfCreditCards());
|
| + assertEquals(1, mHelper.getNumberOfCreditCardsForSettings());
|
|
|
| mHelper.deleteCreditCard(cardOneGUID);
|
| - assertEquals(0, mHelper.getNumberOfCreditCards());
|
| + assertEquals(0, mHelper.getNumberOfCreditCardsForSettings());
|
| }
|
|
|
| @SmallTest
|
| @@ -177,7 +179,7 @@
|
| "CA", "514-670-4321", "greg@ucme.inc", "");
|
| String profileGuid2 = mHelper.setProfile(profile2);
|
|
|
| - assertEquals(2, mHelper.getNumberOfProfiles());
|
| + assertEquals(2, mHelper.getNumberOfProfilesForSettings());
|
|
|
| AutofillProfile storedProfile1 = mHelper.getProfile(profileGuid1);
|
| assertEquals("CA", storedProfile1.getCountryCode());
|
| @@ -203,7 +205,7 @@
|
| "98709", "CEDEX 98703",
|
| "French Polynesia", "44.71.53", "john@acme.inc", "");
|
| String profileGuid1 = mHelper.setProfile(profile);
|
| - assertEquals(1, mHelper.getNumberOfProfiles());
|
| + assertEquals(1, mHelper.getNumberOfProfilesForSettings());
|
| AutofillProfile storedProfile1 = mHelper.getProfile(profileGuid1);
|
| assertEquals("PF", storedProfile1.getCountryCode());
|
| assertEquals("Monsieur Jean DELHOURME", storedProfile1.getFullName());
|
| @@ -218,7 +220,7 @@
|
|
|
| profile.setStreetAddress(streetAddress2);
|
| String profileGuid2 = mHelper.setProfile(profile);
|
| - assertEquals(2, mHelper.getNumberOfProfiles());
|
| + assertEquals(2, mHelper.getNumberOfProfilesForSettings());
|
| AutofillProfile storedProfile2 = mHelper.getProfile(profileGuid2);
|
| assertEquals(streetAddress2, storedProfile2.getStreetAddress());
|
| }
|
| @@ -265,7 +267,7 @@
|
| expectedLabels.add("1500 Second Ave, 90068");
|
| expectedLabels.add("Fort Worth, Texas");
|
|
|
| - List<AutofillProfile> profiles = mHelper.getProfiles();
|
| + List<AutofillProfile> profiles = mHelper.getProfilesForSettings();
|
| assertEquals(expectedLabels.size(), profiles.size());
|
| for (int i = 0; i < profiles.size(); ++i) {
|
| String label = profiles.get(i).getLabel();
|
| @@ -274,4 +276,98 @@
|
| expectedLabels.remove(idx);
|
| }
|
| }
|
| +
|
| + @SmallTest
|
| + @Feature({"Autofill"})
|
| + public void testProfilesFrecency() throws InterruptedException, ExecutionException {
|
| + // Create 3 profiles.
|
| + AutofillProfile profile1 =
|
| + new AutofillProfile("" /* guid */, "https://www.example.com" /* origin */,
|
| + "John Major", "Acme Inc.", "123 Main", "California", "Los Angeles", "",
|
| + "90210", "", "US", "555 123-4567", "jm@example.com", "");
|
| + AutofillProfile profile2 =
|
| + new AutofillProfile("" /* guid */, "https://www.example.com" /* origin */,
|
| + "John Major", "Acme Inc.", "123 Main", "California", "Los Angeles", "",
|
| + "90210", "", "US", "555 123-4567", "jm-work@example.com", "");
|
| + AutofillProfile profile3 =
|
| + new AutofillProfile("" /* guid */, "https://www.example.com" /* origin */,
|
| + "Jasper Lundgren", "", "1500 Second Ave", "California", "Hollywood", "",
|
| + "90068", "", "US", "555 123-9876", "jasperl@example.com", "");
|
| +
|
| + String guid1 = mHelper.setProfile(profile1);
|
| + String guid2 = mHelper.setProfile(profile2);
|
| + String guid3 = mHelper.setProfile(profile3);
|
| +
|
| + // The first profile has a lower use count than the two other profiles. It also has an older
|
| + // use date that the second profile and the same use date as the third. It should be last.
|
| + mHelper.setProfileUseStatsForTesting(guid1, 3, 5000);
|
| + // The second profile has the same use count as the third but a more recent use date. It
|
| + // also has a bigger use count that the first profile. It should be first.
|
| + mHelper.setProfileUseStatsForTesting(guid2, 6, 5001);
|
| + // The third profile has the same use count as the second but an older use date. It also has
|
| + // a bigger use count that the first profile. It should be second.
|
| + mHelper.setProfileUseStatsForTesting(guid3, 6, 5000);
|
| +
|
| + List<AutofillProfile> profiles = mHelper.getProfilesToSuggest();
|
| + assertEquals(3, profiles.size());
|
| + assertTrue("Profile2 should be ranked first", guid2.equals(profiles.get(0).getGUID()));
|
| + assertTrue("Profile3 should be ranked second", guid3.equals(profiles.get(1).getGUID()));
|
| + assertTrue("Profile1 should be ranked third", guid1.equals(profiles.get(2).getGUID()));
|
| + }
|
| +
|
| + @SmallTest
|
| + @Feature({"Autofill"})
|
| + public void testCreditCardsFrecency() throws InterruptedException, ExecutionException {
|
| + // Create 3 credit cards.
|
| + CreditCard card1 = new CreditCard("" /* guid */, "https://www.example.com" /* origin */,
|
| + "Visa", "1234123412341234", "", "5", "2020");
|
| +
|
| + CreditCard card2 = new CreditCard("" /* guid */, "http://www.example.com" /* origin */,
|
| + "American Express", "1234123412341234", "", "8", "2020");
|
| +
|
| + CreditCard card3 = new CreditCard("" /* guid */, "http://www.example.com" /* origin */,
|
| + "Master Card", "1234123412341234", "", "11", "2020");
|
| +
|
| + String guid1 = mHelper.setCreditCard(card1);
|
| + String guid2 = mHelper.setCreditCard(card2);
|
| + String guid3 = mHelper.setCreditCard(card3);
|
| +
|
| + // The first card has a lower use count than the two other cards. It also has an older
|
| + // use date that the second card and the same use date as the third. It should be last.
|
| + mHelper.setCreditCardUseStatsForTesting(guid1, 3, 5000);
|
| + // The second card has the same use count as the third but a more recent use date. It also
|
| + // has a bigger use count that the first card. It should be first.
|
| + mHelper.setCreditCardUseStatsForTesting(guid2, 6, 5001);
|
| + // The third card has the same use count as the second but an older use date. It also has a
|
| + // bigger use count that the first card. It should be second.
|
| + mHelper.setCreditCardUseStatsForTesting(guid3, 6, 5000);
|
| +
|
| + List<CreditCard> cards = mHelper.getCreditCardsToSuggest();
|
| + assertEquals(3, cards.size());
|
| + assertTrue("Card2 should be ranked first", guid2.equals(cards.get(0).getGUID()));
|
| + assertTrue("Card3 should be ranked second", guid3.equals(cards.get(1).getGUID()));
|
| + assertTrue("Card1 should be ranked third", guid1.equals(cards.get(2).getGUID()));
|
| + }
|
| +
|
| + @SmallTest
|
| + @Feature({"Autofill"})
|
| + public void testCreditCardsDeduping() throws InterruptedException, ExecutionException {
|
| + // Create a local card and an identical server card.
|
| + CreditCard card1 = new CreditCard("" /* guid */, "https://www.example.com" /* origin */,
|
| + true /* isLocal */, false /* isCached */, "John Doe", "1234123412341234", "", "5",
|
| + "2020", "Visa", 0 /* issuerIconDrawableId */);
|
| +
|
| + CreditCard card2 = new CreditCard("" /* guid */, "https://www.example.com" /* origin */,
|
| + false /* isLocal */, false /* isCached */, "John Doe", "1234123412341234", "", "5",
|
| + "2020", "Visa", 0 /* issuerIconDrawableId */);
|
| +
|
| + mHelper.setCreditCard(card1);
|
| + mHelper.addServerCreditCard(card2);
|
| +
|
| + // Only one card should be suggested to the user since the two are identical.
|
| + assertEquals(1, mHelper.getNumberOfCreditCardsToSuggest());
|
| +
|
| + // Both cards should be seen in the settings even if they are identical.
|
| + assertEquals(2, mHelper.getNumberOfCreditCardsForSettings());
|
| + }
|
| }
|
|
|