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

Side by Side Diff: components/autofill/core/browser/webdata/autofill_table_unittest.cc

Issue 2403773002: Remove stl_util's STLDeleteContainerPointers from autofill. (Closed)
Patch Set: rebase Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698