OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 <stddef.h> | 5 #include <stddef.h> |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <set> | 8 #include <set> |
9 #include <string> | 9 #include <string> |
10 #include <tuple> | 10 #include <tuple> |
(...skipping 1370 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1381 "INSERT INTO credit_cards (guid, origin, date_modified) " | 1381 "INSERT INTO credit_cards (guid, origin, date_modified) " |
1382 "VALUES('00000000-0000-0000-0000-000000000003', '', 17);" | 1382 "VALUES('00000000-0000-0000-0000-000000000003', '', 17);" |
1383 "INSERT INTO credit_cards (guid, origin, date_modified) " | 1383 "INSERT INTO credit_cards (guid, origin, date_modified) " |
1384 "VALUES('00000000-0000-0000-0000-000000000004', " | 1384 "VALUES('00000000-0000-0000-0000-000000000004', " |
1385 " 'https://www.example.com/', 27);" | 1385 " 'https://www.example.com/', 27);" |
1386 "INSERT INTO credit_cards (guid, origin, date_modified) " | 1386 "INSERT INTO credit_cards (guid, origin, date_modified) " |
1387 "VALUES('00000000-0000-0000-0000-000000000005', 'Chrome settings', " | 1387 "VALUES('00000000-0000-0000-0000-000000000005', 'Chrome settings', " |
1388 " 37);")); | 1388 " 37);")); |
1389 | 1389 |
1390 // Remove all origin URLs set in the bounded time range [21,27). | 1390 // Remove all origin URLs set in the bounded time range [21,27). |
1391 ScopedVector<AutofillProfile> profiles; | 1391 std::vector<std::unique_ptr<AutofillProfile>> profiles; |
1392 table_->RemoveOriginURLsModifiedBetween( | 1392 table_->RemoveOriginURLsModifiedBetween( |
1393 Time::FromTimeT(21), Time::FromTimeT(27), &profiles); | 1393 Time::FromTimeT(21), Time::FromTimeT(27), &profiles); |
1394 ASSERT_EQ(1UL, profiles.size()); | 1394 ASSERT_EQ(1UL, profiles.size()); |
1395 EXPECT_EQ("00000000-0000-0000-0000-000000000001", profiles[0]->guid()); | 1395 EXPECT_EQ("00000000-0000-0000-0000-000000000001", profiles[0]->guid()); |
1396 sql::Statement s_autofill_profiles_bounded( | 1396 sql::Statement s_autofill_profiles_bounded( |
1397 db_->GetSQLConnection()->GetUniqueStatement( | 1397 db_->GetSQLConnection()->GetUniqueStatement( |
1398 "SELECT date_modified, origin FROM autofill_profiles")); | 1398 "SELECT date_modified, origin FROM autofill_profiles")); |
1399 ASSERT_TRUE(s_autofill_profiles_bounded.is_valid()); | 1399 ASSERT_TRUE(s_autofill_profiles_bounded.is_valid()); |
1400 ASSERT_TRUE(s_autofill_profiles_bounded.Step()); | 1400 ASSERT_TRUE(s_autofill_profiles_bounded.Step()); |
1401 EXPECT_EQ(11, s_autofill_profiles_bounded.ColumnInt64(0)); | 1401 EXPECT_EQ(11, s_autofill_profiles_bounded.ColumnInt64(0)); |
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1579 CreditCard(CreditCard::MASKED_SERVER_CARD, "b456")); | 1579 CreditCard(CreditCard::MASKED_SERVER_CARD, "b456")); |
1580 inputs[1].SetRawInfo(CREDIT_CARD_NAME_FULL, ASCIIToUTF16("Rick Roman")); | 1580 inputs[1].SetRawInfo(CREDIT_CARD_NAME_FULL, ASCIIToUTF16("Rick Roman")); |
1581 inputs[1].SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("12")); | 1581 inputs[1].SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("12")); |
1582 inputs[1].SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("1997")); | 1582 inputs[1].SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("1997")); |
1583 inputs[1].SetRawInfo(CREDIT_CARD_NUMBER, ASCIIToUTF16("1111")); | 1583 inputs[1].SetRawInfo(CREDIT_CARD_NUMBER, ASCIIToUTF16("1111")); |
1584 inputs[1].SetTypeForMaskedCard(kVisaCard); | 1584 inputs[1].SetTypeForMaskedCard(kVisaCard); |
1585 inputs[1].SetServerStatus(CreditCard::EXPIRED); | 1585 inputs[1].SetServerStatus(CreditCard::EXPIRED); |
1586 | 1586 |
1587 test::SetServerCreditCards(table_.get(), inputs); | 1587 test::SetServerCreditCards(table_.get(), inputs); |
1588 | 1588 |
1589 std::vector<CreditCard*> outputs; | 1589 std::vector<std::unique_ptr<CreditCard>> outputs; |
1590 ASSERT_TRUE(table_->GetServerCreditCards(&outputs)); | 1590 ASSERT_TRUE(table_->GetServerCreditCards(&outputs)); |
1591 ASSERT_EQ(inputs.size(), outputs.size()); | 1591 ASSERT_EQ(inputs.size(), outputs.size()); |
1592 | 1592 |
1593 // Ordering isn't guaranteed, so fix the ordering if it's backwards. | 1593 // Ordering isn't guaranteed, so fix the ordering if it's backwards. |
1594 if (outputs[1]->server_id() == inputs[0].server_id()) | 1594 if (outputs[1]->server_id() == inputs[0].server_id()) |
1595 std::swap(outputs[0], outputs[1]); | 1595 std::swap(outputs[0], outputs[1]); |
1596 | 1596 |
1597 // GUIDs for server cards are dynamically generated so will be different | 1597 // GUIDs for server cards are dynamically generated so will be different |
1598 // after reading from the DB. Check they're valid, but otherwise don't count | 1598 // after reading from the DB. Check they're valid, but otherwise don't count |
1599 // them in the comparison. | 1599 // them in the comparison. |
1600 inputs[0].set_guid(std::string()); | 1600 inputs[0].set_guid(std::string()); |
1601 inputs[1].set_guid(std::string()); | 1601 inputs[1].set_guid(std::string()); |
1602 outputs[0]->set_guid(std::string()); | 1602 outputs[0]->set_guid(std::string()); |
1603 outputs[1]->set_guid(std::string()); | 1603 outputs[1]->set_guid(std::string()); |
1604 | 1604 |
1605 EXPECT_EQ(inputs[0], *outputs[0]); | 1605 EXPECT_EQ(inputs[0], *outputs[0]); |
1606 EXPECT_EQ(inputs[1], *outputs[1]); | 1606 EXPECT_EQ(inputs[1], *outputs[1]); |
1607 | 1607 |
1608 EXPECT_EQ(CreditCard::OK, outputs[0]->GetServerStatus()); | 1608 EXPECT_EQ(CreditCard::OK, outputs[0]->GetServerStatus()); |
1609 EXPECT_EQ(CreditCard::EXPIRED, outputs[1]->GetServerStatus()); | 1609 EXPECT_EQ(CreditCard::EXPIRED, outputs[1]->GetServerStatus()); |
1610 | |
1611 base::STLDeleteContainerPointers(outputs.begin(), outputs.end()); | |
1612 } | 1610 } |
1613 | 1611 |
1614 TEST_F(AutofillTableTest, MaskUnmaskServerCards) { | 1612 TEST_F(AutofillTableTest, MaskUnmaskServerCards) { |
1615 base::string16 masked_number(ASCIIToUTF16("1111")); | 1613 base::string16 masked_number(ASCIIToUTF16("1111")); |
1616 std::vector<CreditCard> inputs; | 1614 std::vector<CreditCard> inputs; |
1617 inputs.push_back(CreditCard(CreditCard::MASKED_SERVER_CARD, "a123")); | 1615 inputs.push_back(CreditCard(CreditCard::MASKED_SERVER_CARD, "a123")); |
1618 inputs[0].SetRawInfo(CREDIT_CARD_NAME_FULL, ASCIIToUTF16("Jay Johnson")); | 1616 inputs[0].SetRawInfo(CREDIT_CARD_NAME_FULL, ASCIIToUTF16("Jay Johnson")); |
1619 inputs[0].SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("1")); | 1617 inputs[0].SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("1")); |
1620 inputs[0].SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("2020")); | 1618 inputs[0].SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("2020")); |
1621 inputs[0].SetRawInfo(CREDIT_CARD_NUMBER, masked_number); | 1619 inputs[0].SetRawInfo(CREDIT_CARD_NUMBER, masked_number); |
1622 inputs[0].SetTypeForMaskedCard(kVisaCard); | 1620 inputs[0].SetTypeForMaskedCard(kVisaCard); |
1623 test::SetServerCreditCards(table_.get(), inputs); | 1621 test::SetServerCreditCards(table_.get(), inputs); |
1624 | 1622 |
1625 // Unmask the number. The full number should be available. | 1623 // Unmask the number. The full number should be available. |
1626 base::string16 full_number(ASCIIToUTF16("4111111111111111")); | 1624 base::string16 full_number(ASCIIToUTF16("4111111111111111")); |
1627 ASSERT_TRUE(table_->UnmaskServerCreditCard(inputs[0], | 1625 ASSERT_TRUE(table_->UnmaskServerCreditCard(inputs[0], |
1628 full_number)); | 1626 full_number)); |
1629 | 1627 |
1630 std::vector<CreditCard*> outputs; | 1628 std::vector<std::unique_ptr<CreditCard>> outputs; |
1631 table_->GetServerCreditCards(&outputs); | 1629 table_->GetServerCreditCards(&outputs); |
1632 ASSERT_EQ(1u, outputs.size()); | 1630 ASSERT_EQ(1u, outputs.size()); |
1633 EXPECT_TRUE(CreditCard::FULL_SERVER_CARD == outputs[0]->record_type()); | 1631 EXPECT_TRUE(CreditCard::FULL_SERVER_CARD == outputs[0]->record_type()); |
1634 EXPECT_EQ(full_number, outputs[0]->GetRawInfo(CREDIT_CARD_NUMBER)); | 1632 EXPECT_EQ(full_number, outputs[0]->GetRawInfo(CREDIT_CARD_NUMBER)); |
1635 | 1633 |
1636 base::STLDeleteContainerPointers(outputs.begin(), outputs.end()); | |
1637 outputs.clear(); | 1634 outputs.clear(); |
1638 | 1635 |
1639 // Re-mask the number, we should only get the last 4 digits out. | 1636 // Re-mask the number, we should only get the last 4 digits out. |
1640 ASSERT_TRUE(table_->MaskServerCreditCard(inputs[0].server_id())); | 1637 ASSERT_TRUE(table_->MaskServerCreditCard(inputs[0].server_id())); |
1641 table_->GetServerCreditCards(&outputs); | 1638 table_->GetServerCreditCards(&outputs); |
1642 ASSERT_EQ(1u, outputs.size()); | 1639 ASSERT_EQ(1u, outputs.size()); |
1643 EXPECT_TRUE(CreditCard::MASKED_SERVER_CARD == outputs[0]->record_type()); | 1640 EXPECT_TRUE(CreditCard::MASKED_SERVER_CARD == outputs[0]->record_type()); |
1644 EXPECT_EQ(masked_number, outputs[0]->GetRawInfo(CREDIT_CARD_NUMBER)); | 1641 EXPECT_EQ(masked_number, outputs[0]->GetRawInfo(CREDIT_CARD_NUMBER)); |
1645 | 1642 |
1646 base::STLDeleteContainerPointers(outputs.begin(), outputs.end()); | |
1647 outputs.clear(); | 1643 outputs.clear(); |
1648 } | 1644 } |
1649 | 1645 |
1650 // Calling SetServerCreditCards should replace all existing cards, but unmasked | 1646 // Calling SetServerCreditCards should replace all existing cards, but unmasked |
1651 // cards should not be re-masked. | 1647 // cards should not be re-masked. |
1652 TEST_F(AutofillTableTest, SetServerCardModify) { | 1648 TEST_F(AutofillTableTest, SetServerCardModify) { |
1653 // Add a masked card. | 1649 // Add a masked card. |
1654 CreditCard masked_card(CreditCard::MASKED_SERVER_CARD, "a123"); | 1650 CreditCard masked_card(CreditCard::MASKED_SERVER_CARD, "a123"); |
1655 masked_card.SetRawInfo(CREDIT_CARD_NAME_FULL, | 1651 masked_card.SetRawInfo(CREDIT_CARD_NAME_FULL, |
1656 ASCIIToUTF16("Paul F. Tompkins")); | 1652 ASCIIToUTF16("Paul F. Tompkins")); |
1657 masked_card.SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("1")); | 1653 masked_card.SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("1")); |
1658 masked_card.SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("2020")); | 1654 masked_card.SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("2020")); |
1659 masked_card.SetRawInfo(CREDIT_CARD_NUMBER, ASCIIToUTF16("1111")); | 1655 masked_card.SetRawInfo(CREDIT_CARD_NUMBER, ASCIIToUTF16("1111")); |
1660 masked_card.SetTypeForMaskedCard(kVisaCard); | 1656 masked_card.SetTypeForMaskedCard(kVisaCard); |
1661 | 1657 |
1662 std::vector<CreditCard> inputs; | 1658 std::vector<CreditCard> inputs; |
1663 inputs.push_back(masked_card); | 1659 inputs.push_back(masked_card); |
1664 test::SetServerCreditCards(table_.get(), inputs); | 1660 test::SetServerCreditCards(table_.get(), inputs); |
1665 | 1661 |
1666 // Now unmask it. | 1662 // Now unmask it. |
1667 base::string16 full_number = ASCIIToUTF16("4111111111111111"); | 1663 base::string16 full_number = ASCIIToUTF16("4111111111111111"); |
1668 table_->UnmaskServerCreditCard(masked_card, full_number); | 1664 table_->UnmaskServerCreditCard(masked_card, full_number); |
1669 | 1665 |
1670 // The card should now be unmasked. | 1666 // The card should now be unmasked. |
1671 std::vector<CreditCard*> outputs; | 1667 std::vector<std::unique_ptr<CreditCard>> outputs; |
1672 table_->GetServerCreditCards(&outputs); | 1668 table_->GetServerCreditCards(&outputs); |
1673 ASSERT_EQ(1u, outputs.size()); | 1669 ASSERT_EQ(1u, outputs.size()); |
1674 EXPECT_TRUE(outputs[0]->record_type() == CreditCard::FULL_SERVER_CARD); | 1670 EXPECT_TRUE(outputs[0]->record_type() == CreditCard::FULL_SERVER_CARD); |
1675 EXPECT_EQ(full_number, outputs[0]->GetRawInfo(CREDIT_CARD_NUMBER)); | 1671 EXPECT_EQ(full_number, outputs[0]->GetRawInfo(CREDIT_CARD_NUMBER)); |
1676 | 1672 |
1677 base::STLDeleteContainerPointers(outputs.begin(), outputs.end()); | |
1678 outputs.clear(); | 1673 outputs.clear(); |
1679 | 1674 |
1680 // Call set again with the masked number. | 1675 // Call set again with the masked number. |
1681 inputs[0] = masked_card; | 1676 inputs[0] = masked_card; |
1682 test::SetServerCreditCards(table_.get(), inputs); | 1677 test::SetServerCreditCards(table_.get(), inputs); |
1683 | 1678 |
1684 // The card should stay unmasked. | 1679 // The card should stay unmasked. |
1685 table_->GetServerCreditCards(&outputs); | 1680 table_->GetServerCreditCards(&outputs); |
1686 ASSERT_EQ(1u, outputs.size()); | 1681 ASSERT_EQ(1u, outputs.size()); |
1687 EXPECT_TRUE(outputs[0]->record_type() == CreditCard::FULL_SERVER_CARD); | 1682 EXPECT_TRUE(outputs[0]->record_type() == CreditCard::FULL_SERVER_CARD); |
1688 EXPECT_EQ(full_number, outputs[0]->GetRawInfo(CREDIT_CARD_NUMBER)); | 1683 EXPECT_EQ(full_number, outputs[0]->GetRawInfo(CREDIT_CARD_NUMBER)); |
1689 | 1684 |
1690 base::STLDeleteContainerPointers(outputs.begin(), outputs.end()); | |
1691 outputs.clear(); | 1685 outputs.clear(); |
1692 | 1686 |
1693 // Set inputs that do not include our old card. | 1687 // Set inputs that do not include our old card. |
1694 CreditCard random_card(CreditCard::MASKED_SERVER_CARD, "b456"); | 1688 CreditCard random_card(CreditCard::MASKED_SERVER_CARD, "b456"); |
1695 random_card.SetRawInfo(CREDIT_CARD_NAME_FULL, ASCIIToUTF16("Rick Roman")); | 1689 random_card.SetRawInfo(CREDIT_CARD_NAME_FULL, ASCIIToUTF16("Rick Roman")); |
1696 random_card.SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("12")); | 1690 random_card.SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("12")); |
1697 random_card.SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("1997")); | 1691 random_card.SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("1997")); |
1698 random_card.SetRawInfo(CREDIT_CARD_NUMBER, ASCIIToUTF16("2222")); | 1692 random_card.SetRawInfo(CREDIT_CARD_NUMBER, ASCIIToUTF16("2222")); |
1699 random_card.SetTypeForMaskedCard(kVisaCard); | 1693 random_card.SetTypeForMaskedCard(kVisaCard); |
1700 inputs[0] = random_card; | 1694 inputs[0] = random_card; |
1701 test::SetServerCreditCards(table_.get(), inputs); | 1695 test::SetServerCreditCards(table_.get(), inputs); |
1702 | 1696 |
1703 // We should have only the new card, the other one should have been deleted. | 1697 // We should have only the new card, the other one should have been deleted. |
1704 table_->GetServerCreditCards(&outputs); | 1698 table_->GetServerCreditCards(&outputs); |
1705 ASSERT_EQ(1u, outputs.size()); | 1699 ASSERT_EQ(1u, outputs.size()); |
1706 EXPECT_TRUE(outputs[0]->record_type() == CreditCard::MASKED_SERVER_CARD); | 1700 EXPECT_TRUE(outputs[0]->record_type() == CreditCard::MASKED_SERVER_CARD); |
1707 EXPECT_EQ(random_card.server_id(), outputs[0]->server_id()); | 1701 EXPECT_EQ(random_card.server_id(), outputs[0]->server_id()); |
1708 EXPECT_EQ(ASCIIToUTF16("2222"), outputs[0]->GetRawInfo(CREDIT_CARD_NUMBER)); | 1702 EXPECT_EQ(ASCIIToUTF16("2222"), outputs[0]->GetRawInfo(CREDIT_CARD_NUMBER)); |
1709 | 1703 |
1710 base::STLDeleteContainerPointers(outputs.begin(), outputs.end()); | |
1711 outputs.clear(); | 1704 outputs.clear(); |
1712 | 1705 |
1713 // Putting back the original card masked should make it masked (this tests | 1706 // Putting back the original card masked should make it masked (this tests |
1714 // that the unmasked data was really deleted). | 1707 // that the unmasked data was really deleted). |
1715 inputs[0] = masked_card; | 1708 inputs[0] = masked_card; |
1716 test::SetServerCreditCards(table_.get(), inputs); | 1709 test::SetServerCreditCards(table_.get(), inputs); |
1717 table_->GetServerCreditCards(&outputs); | 1710 table_->GetServerCreditCards(&outputs); |
1718 ASSERT_EQ(1u, outputs.size()); | 1711 ASSERT_EQ(1u, outputs.size()); |
1719 EXPECT_TRUE(outputs[0]->record_type() == CreditCard::MASKED_SERVER_CARD); | 1712 EXPECT_TRUE(outputs[0]->record_type() == CreditCard::MASKED_SERVER_CARD); |
1720 EXPECT_EQ(masked_card.server_id(), outputs[0]->server_id()); | 1713 EXPECT_EQ(masked_card.server_id(), outputs[0]->server_id()); |
1721 EXPECT_EQ(ASCIIToUTF16("1111"), outputs[0]->GetRawInfo(CREDIT_CARD_NUMBER)); | 1714 EXPECT_EQ(ASCIIToUTF16("1111"), outputs[0]->GetRawInfo(CREDIT_CARD_NUMBER)); |
1722 | 1715 |
1723 base::STLDeleteContainerPointers(outputs.begin(), outputs.end()); | |
1724 outputs.clear(); | 1716 outputs.clear(); |
1725 } | 1717 } |
1726 | 1718 |
1727 TEST_F(AutofillTableTest, SetServerCardUpdateUsageStats) { | 1719 TEST_F(AutofillTableTest, SetServerCardUpdateUsageStats) { |
1728 // Add a masked card. | 1720 // Add a masked card. |
1729 CreditCard masked_card(CreditCard::MASKED_SERVER_CARD, "a123"); | 1721 CreditCard masked_card(CreditCard::MASKED_SERVER_CARD, "a123"); |
1730 masked_card.SetRawInfo(CREDIT_CARD_NAME_FULL, | 1722 masked_card.SetRawInfo(CREDIT_CARD_NAME_FULL, |
1731 ASCIIToUTF16("Paul F. Tompkins")); | 1723 ASCIIToUTF16("Paul F. Tompkins")); |
1732 masked_card.SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("1")); | 1724 masked_card.SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("1")); |
1733 masked_card.SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("2020")); | 1725 masked_card.SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("2020")); |
1734 masked_card.SetRawInfo(CREDIT_CARD_NUMBER, ASCIIToUTF16("1111")); | 1726 masked_card.SetRawInfo(CREDIT_CARD_NUMBER, ASCIIToUTF16("1111")); |
1735 masked_card.SetTypeForMaskedCard(kVisaCard); | 1727 masked_card.SetTypeForMaskedCard(kVisaCard); |
1736 | 1728 |
1737 std::vector<CreditCard> inputs; | 1729 std::vector<CreditCard> inputs; |
1738 inputs.push_back(masked_card); | 1730 inputs.push_back(masked_card); |
1739 test::SetServerCreditCards(table_.get(), inputs); | 1731 test::SetServerCreditCards(table_.get(), inputs); |
1740 | 1732 |
1741 ScopedVector<CreditCard> outputs; | 1733 std::vector<std::unique_ptr<CreditCard>> outputs; |
1742 table_->GetServerCreditCards(&outputs.get()); | 1734 table_->GetServerCreditCards(&outputs); |
1743 ASSERT_EQ(1u, outputs.size()); | 1735 ASSERT_EQ(1u, outputs.size()); |
1744 EXPECT_EQ(masked_card.server_id(), outputs[0]->server_id()); | 1736 EXPECT_EQ(masked_card.server_id(), outputs[0]->server_id()); |
1745 EXPECT_EQ(1U, outputs[0]->use_count()); | 1737 EXPECT_EQ(1U, outputs[0]->use_count()); |
1746 EXPECT_NE(base::Time(), outputs[0]->use_date()); | 1738 EXPECT_NE(base::Time(), outputs[0]->use_date()); |
1747 // We don't track modification date for server cards. It should always be | 1739 // We don't track modification date for server cards. It should always be |
1748 // base::Time(). | 1740 // base::Time(). |
1749 EXPECT_EQ(base::Time(), outputs[0]->modification_date()); | 1741 EXPECT_EQ(base::Time(), outputs[0]->modification_date()); |
1750 outputs.clear(); | 1742 outputs.clear(); |
1751 | 1743 |
1752 // Update the usage stats; make sure they're reflected in GetServerProfiles. | 1744 // Update the usage stats; make sure they're reflected in GetServerProfiles. |
1753 inputs.back().set_use_count(4U); | 1745 inputs.back().set_use_count(4U); |
1754 inputs.back().set_use_date(base::Time()); | 1746 inputs.back().set_use_date(base::Time()); |
1755 table_->UpdateServerCardUsageStats(inputs.back()); | 1747 table_->UpdateServerCardUsageStats(inputs.back()); |
1756 table_->GetServerCreditCards(&outputs.get()); | 1748 table_->GetServerCreditCards(&outputs); |
1757 ASSERT_EQ(1u, outputs.size()); | 1749 ASSERT_EQ(1u, outputs.size()); |
1758 EXPECT_EQ(masked_card.server_id(), outputs[0]->server_id()); | 1750 EXPECT_EQ(masked_card.server_id(), outputs[0]->server_id()); |
1759 EXPECT_EQ(4U, outputs[0]->use_count()); | 1751 EXPECT_EQ(4U, outputs[0]->use_count()); |
1760 EXPECT_EQ(base::Time(), outputs[0]->use_date()); | 1752 EXPECT_EQ(base::Time(), outputs[0]->use_date()); |
1761 EXPECT_EQ(base::Time(), outputs[0]->modification_date()); | 1753 EXPECT_EQ(base::Time(), outputs[0]->modification_date()); |
1762 outputs.clear(); | 1754 outputs.clear(); |
1763 | 1755 |
1764 // Setting the cards again shouldn't delete the usage stats. | 1756 // Setting the cards again shouldn't delete the usage stats. |
1765 table_->SetServerCreditCards(inputs); | 1757 table_->SetServerCreditCards(inputs); |
1766 table_->GetServerCreditCards(&outputs.get()); | 1758 table_->GetServerCreditCards(&outputs); |
1767 ASSERT_EQ(1u, outputs.size()); | 1759 ASSERT_EQ(1u, outputs.size()); |
1768 EXPECT_EQ(masked_card.server_id(), outputs[0]->server_id()); | 1760 EXPECT_EQ(masked_card.server_id(), outputs[0]->server_id()); |
1769 EXPECT_EQ(4U, outputs[0]->use_count()); | 1761 EXPECT_EQ(4U, outputs[0]->use_count()); |
1770 EXPECT_EQ(base::Time(), outputs[0]->use_date()); | 1762 EXPECT_EQ(base::Time(), outputs[0]->use_date()); |
1771 EXPECT_EQ(base::Time(), outputs[0]->modification_date()); | 1763 EXPECT_EQ(base::Time(), outputs[0]->modification_date()); |
1772 outputs.clear(); | 1764 outputs.clear(); |
1773 | 1765 |
1774 // Set a card list where the card is missing --- this should clear metadata. | 1766 // Set a card list where the card is missing --- this should clear metadata. |
1775 CreditCard masked_card2(CreditCard::MASKED_SERVER_CARD, "b456"); | 1767 CreditCard masked_card2(CreditCard::MASKED_SERVER_CARD, "b456"); |
1776 inputs.back() = masked_card2; | 1768 inputs.back() = masked_card2; |
1777 table_->SetServerCreditCards(inputs); | 1769 table_->SetServerCreditCards(inputs); |
1778 | 1770 |
1779 // Back to the original card list. | 1771 // Back to the original card list. |
1780 inputs.back() = masked_card; | 1772 inputs.back() = masked_card; |
1781 table_->SetServerCreditCards(inputs); | 1773 table_->SetServerCreditCards(inputs); |
1782 table_->GetServerCreditCards(&outputs.get()); | 1774 table_->GetServerCreditCards(&outputs); |
1783 ASSERT_EQ(1u, outputs.size()); | 1775 ASSERT_EQ(1u, outputs.size()); |
1784 EXPECT_EQ(masked_card.server_id(), outputs[0]->server_id()); | 1776 EXPECT_EQ(masked_card.server_id(), outputs[0]->server_id()); |
1785 EXPECT_EQ(1U, outputs[0]->use_count()); | 1777 EXPECT_EQ(1U, outputs[0]->use_count()); |
1786 EXPECT_NE(base::Time(), outputs[0]->use_date()); | 1778 EXPECT_NE(base::Time(), outputs[0]->use_date()); |
1787 EXPECT_EQ(base::Time(), outputs[0]->modification_date()); | 1779 EXPECT_EQ(base::Time(), outputs[0]->modification_date()); |
1788 outputs.clear(); | 1780 outputs.clear(); |
1789 } | 1781 } |
1790 | 1782 |
1791 TEST_F(AutofillTableTest, UpdateServerCardBillingAddress) { | 1783 TEST_F(AutofillTableTest, UpdateServerCardBillingAddress) { |
1792 // Add a masked card. | 1784 // Add a masked card. |
1793 CreditCard masked_card(CreditCard::MASKED_SERVER_CARD, "a123"); | 1785 CreditCard masked_card(CreditCard::MASKED_SERVER_CARD, "a123"); |
1794 masked_card.SetRawInfo(CREDIT_CARD_NAME_FULL, | 1786 masked_card.SetRawInfo(CREDIT_CARD_NAME_FULL, |
1795 ASCIIToUTF16("Paul F. Tompkins")); | 1787 ASCIIToUTF16("Paul F. Tompkins")); |
1796 masked_card.SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("1")); | 1788 masked_card.SetRawInfo(CREDIT_CARD_EXP_MONTH, ASCIIToUTF16("1")); |
1797 masked_card.SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("2020")); | 1789 masked_card.SetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, ASCIIToUTF16("2020")); |
1798 masked_card.SetRawInfo(CREDIT_CARD_NUMBER, ASCIIToUTF16("1111")); | 1790 masked_card.SetRawInfo(CREDIT_CARD_NUMBER, ASCIIToUTF16("1111")); |
1799 masked_card.set_billing_address_id("billing-address-id-1"); | 1791 masked_card.set_billing_address_id("billing-address-id-1"); |
1800 masked_card.SetTypeForMaskedCard(kVisaCard); | 1792 masked_card.SetTypeForMaskedCard(kVisaCard); |
1801 test::SetServerCreditCards(table_.get(), | 1793 test::SetServerCreditCards(table_.get(), |
1802 std::vector<CreditCard>(1, masked_card)); | 1794 std::vector<CreditCard>(1, masked_card)); |
1803 ScopedVector<CreditCard> outputs; | 1795 std::vector<std::unique_ptr<CreditCard>> outputs; |
1804 table_->GetServerCreditCards(&outputs.get()); | 1796 table_->GetServerCreditCards(&outputs); |
1805 ASSERT_EQ(1u, outputs.size()); | 1797 ASSERT_EQ(1u, outputs.size()); |
1806 | 1798 |
1807 EXPECT_EQ("billing-address-id-1", outputs[0]->billing_address_id()); | 1799 EXPECT_EQ("billing-address-id-1", outputs[0]->billing_address_id()); |
1808 | 1800 |
1809 masked_card.set_billing_address_id("billing-address-id-2"); | 1801 masked_card.set_billing_address_id("billing-address-id-2"); |
1810 table_->UpdateServerCardBillingAddress(masked_card); | 1802 table_->UpdateServerCardBillingAddress(masked_card); |
1811 outputs.clear(); | 1803 outputs.clear(); |
1812 table_->GetServerCreditCards(&outputs.get()); | 1804 table_->GetServerCreditCards(&outputs); |
1813 ASSERT_EQ(1u, outputs.size()); | 1805 ASSERT_EQ(1u, outputs.size()); |
1814 | 1806 |
1815 EXPECT_EQ("billing-address-id-2", outputs[0]->billing_address_id()); | 1807 EXPECT_EQ("billing-address-id-2", outputs[0]->billing_address_id()); |
1816 } | 1808 } |
1817 | 1809 |
1818 TEST_F(AutofillTableTest, SetServerProfile) { | 1810 TEST_F(AutofillTableTest, SetServerProfile) { |
1819 AutofillProfile one(AutofillProfile::SERVER_PROFILE, "a123"); | 1811 AutofillProfile one(AutofillProfile::SERVER_PROFILE, "a123"); |
1820 std::vector<AutofillProfile> inputs; | 1812 std::vector<AutofillProfile> inputs; |
1821 inputs.push_back(one); | 1813 inputs.push_back(one); |
1822 table_->SetServerProfiles(inputs); | 1814 table_->SetServerProfiles(inputs); |
1823 | 1815 |
1824 std::vector<AutofillProfile*> outputs; | 1816 std::vector<std::unique_ptr<AutofillProfile>> outputs; |
1825 table_->GetServerProfiles(&outputs); | 1817 table_->GetServerProfiles(&outputs); |
1826 ASSERT_EQ(1u, outputs.size()); | 1818 ASSERT_EQ(1u, outputs.size()); |
1827 EXPECT_EQ(one.server_id(), outputs[0]->server_id()); | 1819 EXPECT_EQ(one.server_id(), outputs[0]->server_id()); |
1828 | 1820 |
1829 base::STLDeleteContainerPointers(outputs.begin(), outputs.end()); | |
1830 outputs.clear(); | 1821 outputs.clear(); |
1831 | 1822 |
1832 // Set a different profile. | 1823 // Set a different profile. |
1833 AutofillProfile two(AutofillProfile::SERVER_PROFILE, "b456"); | 1824 AutofillProfile two(AutofillProfile::SERVER_PROFILE, "b456"); |
1834 inputs[0] = two; | 1825 inputs[0] = two; |
1835 table_->SetServerProfiles(inputs); | 1826 table_->SetServerProfiles(inputs); |
1836 | 1827 |
1837 // The original one should have been replaced. | 1828 // The original one should have been replaced. |
1838 table_->GetServerProfiles(&outputs); | 1829 table_->GetServerProfiles(&outputs); |
1839 ASSERT_EQ(1u, outputs.size()); | 1830 ASSERT_EQ(1u, outputs.size()); |
1840 EXPECT_EQ(two.server_id(), outputs[0]->server_id()); | 1831 EXPECT_EQ(two.server_id(), outputs[0]->server_id()); |
1841 | 1832 |
1842 base::STLDeleteContainerPointers(outputs.begin(), outputs.end()); | |
1843 outputs.clear(); | 1833 outputs.clear(); |
1844 } | 1834 } |
1845 | 1835 |
1846 TEST_F(AutofillTableTest, SetServerProfileUpdateUsageStats) { | 1836 TEST_F(AutofillTableTest, SetServerProfileUpdateUsageStats) { |
1847 AutofillProfile one(AutofillProfile::SERVER_PROFILE, "a123"); | 1837 AutofillProfile one(AutofillProfile::SERVER_PROFILE, "a123"); |
1848 std::vector<AutofillProfile> inputs; | 1838 std::vector<AutofillProfile> inputs; |
1849 inputs.push_back(one); | 1839 inputs.push_back(one); |
1850 table_->SetServerProfiles(inputs); | 1840 table_->SetServerProfiles(inputs); |
1851 | 1841 |
1852 ScopedVector<AutofillProfile> outputs; | 1842 std::vector<std::unique_ptr<AutofillProfile>> outputs; |
1853 table_->GetServerProfiles(&outputs.get()); | 1843 table_->GetServerProfiles(&outputs); |
1854 ASSERT_EQ(1u, outputs.size()); | 1844 ASSERT_EQ(1u, outputs.size()); |
1855 EXPECT_EQ(one.server_id(), outputs[0]->server_id()); | 1845 EXPECT_EQ(one.server_id(), outputs[0]->server_id()); |
1856 EXPECT_EQ(0U, outputs[0]->use_count()); | 1846 EXPECT_EQ(0U, outputs[0]->use_count()); |
1857 EXPECT_EQ(base::Time(), outputs[0]->use_date()); | 1847 EXPECT_EQ(base::Time(), outputs[0]->use_date()); |
1858 // We don't track modification date for server profiles. It should always be | 1848 // We don't track modification date for server profiles. It should always be |
1859 // base::Time(). | 1849 // base::Time(). |
1860 EXPECT_EQ(base::Time(), outputs[0]->modification_date()); | 1850 EXPECT_EQ(base::Time(), outputs[0]->modification_date()); |
1861 outputs.clear(); | 1851 outputs.clear(); |
1862 | 1852 |
1863 // Update the usage stats; make sure they're reflected in GetServerProfiles. | 1853 // Update the usage stats; make sure they're reflected in GetServerProfiles. |
1864 inputs.back().set_use_count(4U); | 1854 inputs.back().set_use_count(4U); |
1865 inputs.back().set_use_date(base::Time::Now()); | 1855 inputs.back().set_use_date(base::Time::Now()); |
1866 table_->UpdateServerAddressUsageStats(inputs.back()); | 1856 table_->UpdateServerAddressUsageStats(inputs.back()); |
1867 table_->GetServerProfiles(&outputs.get()); | 1857 table_->GetServerProfiles(&outputs); |
1868 ASSERT_EQ(1u, outputs.size()); | 1858 ASSERT_EQ(1u, outputs.size()); |
1869 EXPECT_EQ(one.server_id(), outputs[0]->server_id()); | 1859 EXPECT_EQ(one.server_id(), outputs[0]->server_id()); |
1870 EXPECT_EQ(4U, outputs[0]->use_count()); | 1860 EXPECT_EQ(4U, outputs[0]->use_count()); |
1871 EXPECT_NE(base::Time(), outputs[0]->use_date()); | 1861 EXPECT_NE(base::Time(), outputs[0]->use_date()); |
1872 EXPECT_EQ(base::Time(), outputs[0]->modification_date()); | 1862 EXPECT_EQ(base::Time(), outputs[0]->modification_date()); |
1873 outputs.clear(); | 1863 outputs.clear(); |
1874 | 1864 |
1875 // Setting the profiles again shouldn't delete the usage stats. | 1865 // Setting the profiles again shouldn't delete the usage stats. |
1876 table_->SetServerProfiles(inputs); | 1866 table_->SetServerProfiles(inputs); |
1877 table_->GetServerProfiles(&outputs.get()); | 1867 table_->GetServerProfiles(&outputs); |
1878 ASSERT_EQ(1u, outputs.size()); | 1868 ASSERT_EQ(1u, outputs.size()); |
1879 EXPECT_EQ(one.server_id(), outputs[0]->server_id()); | 1869 EXPECT_EQ(one.server_id(), outputs[0]->server_id()); |
1880 EXPECT_EQ(4U, outputs[0]->use_count()); | 1870 EXPECT_EQ(4U, outputs[0]->use_count()); |
1881 EXPECT_NE(base::Time(), outputs[0]->use_date()); | 1871 EXPECT_NE(base::Time(), outputs[0]->use_date()); |
1882 EXPECT_EQ(base::Time(), outputs[0]->modification_date()); | 1872 EXPECT_EQ(base::Time(), outputs[0]->modification_date()); |
1883 outputs.clear(); | 1873 outputs.clear(); |
1884 | 1874 |
1885 // Set a null profile list --- this should clear metadata. | 1875 // Set a null profile list --- this should clear metadata. |
1886 table_->SetServerProfiles(std::vector<AutofillProfile>()); | 1876 table_->SetServerProfiles(std::vector<AutofillProfile>()); |
1887 // Reset the old profile list and see the metadata is reset. | 1877 // Reset the old profile list and see the metadata is reset. |
1888 table_->SetServerProfiles(inputs); | 1878 table_->SetServerProfiles(inputs); |
1889 table_->GetServerProfiles(&outputs.get()); | 1879 table_->GetServerProfiles(&outputs); |
1890 ASSERT_EQ(1u, outputs.size()); | 1880 ASSERT_EQ(1u, outputs.size()); |
1891 EXPECT_EQ(one.server_id(), outputs[0]->server_id()); | 1881 EXPECT_EQ(one.server_id(), outputs[0]->server_id()); |
1892 EXPECT_EQ(0U, outputs[0]->use_count()); | 1882 EXPECT_EQ(0U, outputs[0]->use_count()); |
1893 EXPECT_EQ(base::Time(), outputs[0]->use_date()); | 1883 EXPECT_EQ(base::Time(), outputs[0]->use_date()); |
1894 EXPECT_EQ(base::Time(), outputs[0]->modification_date()); | 1884 EXPECT_EQ(base::Time(), outputs[0]->modification_date()); |
1895 outputs.clear(); | 1885 outputs.clear(); |
1896 } | 1886 } |
1897 | 1887 |
1898 // Tests that deleting time ranges re-masks server credit cards that were | 1888 // Tests that deleting time ranges re-masks server credit cards that were |
1899 // unmasked in that time. | 1889 // unmasked in that time. |
(...skipping 22 matching lines...) Expand all Loading... |
1922 | 1912 |
1923 // Delete data in a range a year in the future. | 1913 // Delete data in a range a year in the future. |
1924 std::vector<std::string> profile_guids; | 1914 std::vector<std::string> profile_guids; |
1925 std::vector<std::string> credit_card_guids; | 1915 std::vector<std::string> credit_card_guids; |
1926 ASSERT_TRUE(table_->RemoveAutofillDataModifiedBetween( | 1916 ASSERT_TRUE(table_->RemoveAutofillDataModifiedBetween( |
1927 unmasked_time + base::TimeDelta::FromDays(365), | 1917 unmasked_time + base::TimeDelta::FromDays(365), |
1928 unmasked_time + base::TimeDelta::FromDays(530), | 1918 unmasked_time + base::TimeDelta::FromDays(530), |
1929 &profile_guids, &credit_card_guids)); | 1919 &profile_guids, &credit_card_guids)); |
1930 | 1920 |
1931 // This should not affect the unmasked card (should be unmasked). | 1921 // This should not affect the unmasked card (should be unmasked). |
1932 ScopedVector<CreditCard> outputs; | 1922 std::vector<std::unique_ptr<CreditCard>> outputs; |
1933 ASSERT_TRUE(table_->GetServerCreditCards(&outputs.get())); | 1923 ASSERT_TRUE(table_->GetServerCreditCards(&outputs)); |
1934 ASSERT_EQ(1u, outputs.size()); | 1924 ASSERT_EQ(1u, outputs.size()); |
1935 EXPECT_EQ(CreditCard::FULL_SERVER_CARD, outputs[0]->record_type()); | 1925 EXPECT_EQ(CreditCard::FULL_SERVER_CARD, outputs[0]->record_type()); |
1936 EXPECT_EQ(full_number, outputs[0]->GetRawInfo(CREDIT_CARD_NUMBER)); | 1926 EXPECT_EQ(full_number, outputs[0]->GetRawInfo(CREDIT_CARD_NUMBER)); |
1937 outputs.clear(); | 1927 outputs.clear(); |
1938 | 1928 |
1939 // Delete data in the range of the last 24 hours. | 1929 // Delete data in the range of the last 24 hours. |
1940 // Fudge |now| to make sure it's strictly greater than the |now| that | 1930 // Fudge |now| to make sure it's strictly greater than the |now| that |
1941 // the database uses. | 1931 // the database uses. |
1942 base::Time now = base::Time::Now() + base::TimeDelta::FromSeconds(1); | 1932 base::Time now = base::Time::Now() + base::TimeDelta::FromSeconds(1); |
1943 ASSERT_TRUE(table_->RemoveAutofillDataModifiedBetween( | 1933 ASSERT_TRUE(table_->RemoveAutofillDataModifiedBetween( |
1944 now - base::TimeDelta::FromDays(1), now, | 1934 now - base::TimeDelta::FromDays(1), now, |
1945 &profile_guids, &credit_card_guids)); | 1935 &profile_guids, &credit_card_guids)); |
1946 | 1936 |
1947 // This should re-mask. | 1937 // This should re-mask. |
1948 ASSERT_TRUE(table_->GetServerCreditCards(&outputs.get())); | 1938 ASSERT_TRUE(table_->GetServerCreditCards(&outputs)); |
1949 ASSERT_EQ(1u, outputs.size()); | 1939 ASSERT_EQ(1u, outputs.size()); |
1950 EXPECT_EQ(CreditCard::MASKED_SERVER_CARD, outputs[0]->record_type()); | 1940 EXPECT_EQ(CreditCard::MASKED_SERVER_CARD, outputs[0]->record_type()); |
1951 EXPECT_EQ(masked_number, outputs[0]->GetRawInfo(CREDIT_CARD_NUMBER)); | 1941 EXPECT_EQ(masked_number, outputs[0]->GetRawInfo(CREDIT_CARD_NUMBER)); |
1952 outputs.clear(); | 1942 outputs.clear(); |
1953 | 1943 |
1954 // Unmask again, the card should be back. | 1944 // Unmask again, the card should be back. |
1955 table_->UnmaskServerCreditCard(masked_card, full_number); | 1945 table_->UnmaskServerCreditCard(masked_card, full_number); |
1956 ASSERT_TRUE(table_->GetServerCreditCards(&outputs.get())); | 1946 ASSERT_TRUE(table_->GetServerCreditCards(&outputs)); |
1957 ASSERT_EQ(1u, outputs.size()); | 1947 ASSERT_EQ(1u, outputs.size()); |
1958 EXPECT_EQ(CreditCard::FULL_SERVER_CARD, outputs[0]->record_type()); | 1948 EXPECT_EQ(CreditCard::FULL_SERVER_CARD, outputs[0]->record_type()); |
1959 EXPECT_EQ(full_number, outputs[0]->GetRawInfo(CREDIT_CARD_NUMBER)); | 1949 EXPECT_EQ(full_number, outputs[0]->GetRawInfo(CREDIT_CARD_NUMBER)); |
1960 outputs.clear(); | 1950 outputs.clear(); |
1961 | 1951 |
1962 // Delete all data. | 1952 // Delete all data. |
1963 ASSERT_TRUE(table_->RemoveAutofillDataModifiedBetween( | 1953 ASSERT_TRUE(table_->RemoveAutofillDataModifiedBetween( |
1964 base::Time(), base::Time::Max(), &profile_guids, &credit_card_guids)); | 1954 base::Time(), base::Time::Max(), &profile_guids, &credit_card_guids)); |
1965 | 1955 |
1966 // Should be masked again. | 1956 // Should be masked again. |
1967 ASSERT_TRUE(table_->GetServerCreditCards(&outputs.get())); | 1957 ASSERT_TRUE(table_->GetServerCreditCards(&outputs)); |
1968 ASSERT_EQ(1u, outputs.size()); | 1958 ASSERT_EQ(1u, outputs.size()); |
1969 EXPECT_EQ(CreditCard::MASKED_SERVER_CARD, outputs[0]->record_type()); | 1959 EXPECT_EQ(CreditCard::MASKED_SERVER_CARD, outputs[0]->record_type()); |
1970 EXPECT_EQ(masked_number, outputs[0]->GetRawInfo(CREDIT_CARD_NUMBER)); | 1960 EXPECT_EQ(masked_number, outputs[0]->GetRawInfo(CREDIT_CARD_NUMBER)); |
1971 outputs.clear(); | 1961 outputs.clear(); |
1972 } | 1962 } |
1973 | 1963 |
1974 TEST_F(AutofillTableTest, GetFormValuesForElementName_SubstringMatchEnabled) { | 1964 TEST_F(AutofillTableTest, GetFormValuesForElementName_SubstringMatchEnabled) { |
1975 // Token matching is currently behind a flag. | 1965 // Token matching is currently behind a flag. |
1976 base::CommandLine::ForCurrentProcess()->AppendSwitch( | 1966 base::CommandLine::ForCurrentProcess()->AppendSwitch( |
1977 switches::kEnableSuggestionsWithSubstringMatch); | 1967 switches::kEnableSuggestionsWithSubstringMatch); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2021 for (size_t j = 0; j < kTestCases[i].expected_suggestion_count; ++j) { | 2011 for (size_t j = 0; j < kTestCases[i].expected_suggestion_count; ++j) { |
2022 EXPECT_EQ(ASCIIToUTF16(kTestCases[i].expected_suggestion[j]), v[j]); | 2012 EXPECT_EQ(ASCIIToUTF16(kTestCases[i].expected_suggestion[j]), v[j]); |
2023 } | 2013 } |
2024 | 2014 |
2025 changes.clear(); | 2015 changes.clear(); |
2026 table_->RemoveFormElementsAddedBetween(t1, Time(), &changes); | 2016 table_->RemoveFormElementsAddedBetween(t1, Time(), &changes); |
2027 } | 2017 } |
2028 } | 2018 } |
2029 | 2019 |
2030 } // namespace autofill | 2020 } // namespace autofill |
OLD | NEW |