| 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 |