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 "components/autofill/core/browser/form_structure.h" | 5 #include "components/autofill/core/browser/form_structure.h" |
6 | 6 |
7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
8 #include "base/strings/string_util.h" | 8 #include "base/strings/string_util.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "components/autofill/content/browser/autocheckout_page_meta_data.h" | 10 #include "components/autofill/content/browser/autocheckout_page_meta_data.h" |
(...skipping 1649 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1660 "signature=\"509334676\"/><field signature=\"509334676\"/><field " | 1660 "signature=\"509334676\"/><field signature=\"509334676\"/><field " |
1661 "signature=\"509334676\"/><field signature=\"509334676\"/></form>" | 1661 "signature=\"509334676\"/><field signature=\"509334676\"/></form>" |
1662 "</autofillquery>"; | 1662 "</autofillquery>"; |
1663 ASSERT_EQ(1U, encoded_signatures.size()); | 1663 ASSERT_EQ(1U, encoded_signatures.size()); |
1664 EXPECT_EQ(kSignature3, encoded_signatures[0]); | 1664 EXPECT_EQ(kSignature3, encoded_signatures[0]); |
1665 EXPECT_EQ(kResponse3, encoded_xml); | 1665 EXPECT_EQ(kResponse3, encoded_xml); |
1666 } | 1666 } |
1667 | 1667 |
1668 TEST(FormStructureTest, EncodeUploadRequest) { | 1668 TEST(FormStructureTest, EncodeUploadRequest) { |
1669 scoped_ptr<FormStructure> form_structure; | 1669 scoped_ptr<FormStructure> form_structure; |
1670 std::vector<FieldTypeSet> possible_field_types; | 1670 std::vector<ServerFieldTypeSet> possible_field_types; |
1671 FormData form; | 1671 FormData form; |
1672 form.method = ASCIIToUTF16("post"); | 1672 form.method = ASCIIToUTF16("post"); |
1673 form_structure.reset(new FormStructure(form, std::string())); | 1673 form_structure.reset(new FormStructure(form, std::string())); |
1674 form_structure->DetermineHeuristicTypes(TestAutofillMetrics()); | 1674 form_structure->DetermineHeuristicTypes(TestAutofillMetrics()); |
1675 | 1675 |
1676 FormFieldData field; | 1676 FormFieldData field; |
1677 field.form_control_type = "text"; | 1677 field.form_control_type = "text"; |
1678 | 1678 |
1679 field.label = ASCIIToUTF16("First Name"); | 1679 field.label = ASCIIToUTF16("First Name"); |
1680 field.name = ASCIIToUTF16("firstname"); | 1680 field.name = ASCIIToUTF16("firstname"); |
1681 form.fields.push_back(field); | 1681 form.fields.push_back(field); |
1682 possible_field_types.push_back(FieldTypeSet()); | 1682 possible_field_types.push_back(ServerFieldTypeSet()); |
1683 possible_field_types.back().insert(NAME_FIRST); | 1683 possible_field_types.back().insert(NAME_FIRST); |
1684 | 1684 |
1685 field.label = ASCIIToUTF16("Last Name"); | 1685 field.label = ASCIIToUTF16("Last Name"); |
1686 field.name = ASCIIToUTF16("lastname"); | 1686 field.name = ASCIIToUTF16("lastname"); |
1687 form.fields.push_back(field); | 1687 form.fields.push_back(field); |
1688 possible_field_types.push_back(FieldTypeSet()); | 1688 possible_field_types.push_back(ServerFieldTypeSet()); |
1689 possible_field_types.back().insert(NAME_LAST); | 1689 possible_field_types.back().insert(NAME_LAST); |
1690 | 1690 |
1691 field.label = ASCIIToUTF16("Email"); | 1691 field.label = ASCIIToUTF16("Email"); |
1692 field.name = ASCIIToUTF16("email"); | 1692 field.name = ASCIIToUTF16("email"); |
1693 field.form_control_type = "email"; | 1693 field.form_control_type = "email"; |
1694 form.fields.push_back(field); | 1694 form.fields.push_back(field); |
1695 possible_field_types.push_back(FieldTypeSet()); | 1695 possible_field_types.push_back(ServerFieldTypeSet()); |
1696 possible_field_types.back().insert(EMAIL_ADDRESS); | 1696 possible_field_types.back().insert(EMAIL_ADDRESS); |
1697 | 1697 |
1698 field.label = ASCIIToUTF16("Phone"); | 1698 field.label = ASCIIToUTF16("Phone"); |
1699 field.name = ASCIIToUTF16("phone"); | 1699 field.name = ASCIIToUTF16("phone"); |
1700 field.form_control_type = "number"; | 1700 field.form_control_type = "number"; |
1701 form.fields.push_back(field); | 1701 form.fields.push_back(field); |
1702 possible_field_types.push_back(FieldTypeSet()); | 1702 possible_field_types.push_back(ServerFieldTypeSet()); |
1703 possible_field_types.back().insert(PHONE_HOME_WHOLE_NUMBER); | 1703 possible_field_types.back().insert(PHONE_HOME_WHOLE_NUMBER); |
1704 | 1704 |
1705 field.label = ASCIIToUTF16("Country"); | 1705 field.label = ASCIIToUTF16("Country"); |
1706 field.name = ASCIIToUTF16("country"); | 1706 field.name = ASCIIToUTF16("country"); |
1707 field.form_control_type = "select-one"; | 1707 field.form_control_type = "select-one"; |
1708 form.fields.push_back(field); | 1708 form.fields.push_back(field); |
1709 possible_field_types.push_back(FieldTypeSet()); | 1709 possible_field_types.push_back(ServerFieldTypeSet()); |
1710 possible_field_types.back().insert(ADDRESS_HOME_COUNTRY); | 1710 possible_field_types.back().insert(ADDRESS_HOME_COUNTRY); |
1711 | 1711 |
1712 // Add checkable field. | 1712 // Add checkable field. |
1713 FormFieldData checkable_field; | 1713 FormFieldData checkable_field; |
1714 checkable_field.is_checkable = true; | 1714 checkable_field.is_checkable = true; |
1715 checkable_field.label = ASCIIToUTF16("Checkable1"); | 1715 checkable_field.label = ASCIIToUTF16("Checkable1"); |
1716 checkable_field.name = ASCIIToUTF16("Checkable1"); | 1716 checkable_field.name = ASCIIToUTF16("Checkable1"); |
1717 form.fields.push_back(checkable_field); | 1717 form.fields.push_back(checkable_field); |
1718 possible_field_types.push_back(FieldTypeSet()); | 1718 possible_field_types.push_back(ServerFieldTypeSet()); |
1719 possible_field_types.back().insert(ADDRESS_HOME_COUNTRY); | 1719 possible_field_types.back().insert(ADDRESS_HOME_COUNTRY); |
1720 | 1720 |
1721 form_structure.reset(new FormStructure(form, std::string())); | 1721 form_structure.reset(new FormStructure(form, std::string())); |
1722 | 1722 |
1723 ASSERT_EQ(form_structure->field_count(), possible_field_types.size()); | 1723 ASSERT_EQ(form_structure->field_count(), possible_field_types.size()); |
1724 for (size_t i = 0; i < form_structure->field_count(); ++i) | 1724 for (size_t i = 0; i < form_structure->field_count(); ++i) |
1725 form_structure->field(i)->set_possible_types(possible_field_types[i]); | 1725 form_structure->field(i)->set_possible_types(possible_field_types[i]); |
1726 | 1726 |
1727 FieldTypeSet available_field_types; | 1727 ServerFieldTypeSet available_field_types; |
1728 available_field_types.insert(NAME_FIRST); | 1728 available_field_types.insert(NAME_FIRST); |
1729 available_field_types.insert(NAME_LAST); | 1729 available_field_types.insert(NAME_LAST); |
1730 available_field_types.insert(ADDRESS_HOME_LINE1); | 1730 available_field_types.insert(ADDRESS_HOME_LINE1); |
1731 available_field_types.insert(ADDRESS_HOME_LINE2); | 1731 available_field_types.insert(ADDRESS_HOME_LINE2); |
1732 available_field_types.insert(ADDRESS_HOME_COUNTRY); | 1732 available_field_types.insert(ADDRESS_HOME_COUNTRY); |
1733 available_field_types.insert(ADDRESS_BILLING_LINE1); | 1733 available_field_types.insert(ADDRESS_BILLING_LINE1); |
1734 available_field_types.insert(ADDRESS_BILLING_LINE2); | 1734 available_field_types.insert(ADDRESS_BILLING_LINE2); |
1735 available_field_types.insert(EMAIL_ADDRESS); | 1735 available_field_types.insert(EMAIL_ADDRESS); |
1736 available_field_types.insert(PHONE_HOME_WHOLE_NUMBER); | 1736 available_field_types.insert(PHONE_HOME_WHOLE_NUMBER); |
1737 | 1737 |
(...skipping 24 matching lines...) Expand all Loading... |
1762 "<field signature=\"2799270304\" autofilltype=\"36\"/>" | 1762 "<field signature=\"2799270304\" autofilltype=\"36\"/>" |
1763 "</autofillupload>", | 1763 "</autofillupload>", |
1764 encoded_xml); | 1764 encoded_xml); |
1765 | 1765 |
1766 // Add 2 address fields - this should be still a valid form. | 1766 // Add 2 address fields - this should be still a valid form. |
1767 for (size_t i = 0; i < 2; ++i) { | 1767 for (size_t i = 0; i < 2; ++i) { |
1768 field.label = ASCIIToUTF16("Address"); | 1768 field.label = ASCIIToUTF16("Address"); |
1769 field.name = ASCIIToUTF16("address"); | 1769 field.name = ASCIIToUTF16("address"); |
1770 field.form_control_type = "text"; | 1770 field.form_control_type = "text"; |
1771 form.fields.push_back(field); | 1771 form.fields.push_back(field); |
1772 possible_field_types.push_back(FieldTypeSet()); | 1772 possible_field_types.push_back(ServerFieldTypeSet()); |
1773 possible_field_types.back().insert(ADDRESS_HOME_LINE1); | 1773 possible_field_types.back().insert(ADDRESS_HOME_LINE1); |
1774 possible_field_types.back().insert(ADDRESS_HOME_LINE2); | 1774 possible_field_types.back().insert(ADDRESS_HOME_LINE2); |
1775 possible_field_types.back().insert(ADDRESS_BILLING_LINE1); | 1775 possible_field_types.back().insert(ADDRESS_BILLING_LINE1); |
1776 possible_field_types.back().insert(ADDRESS_BILLING_LINE2); | 1776 possible_field_types.back().insert(ADDRESS_BILLING_LINE2); |
1777 } | 1777 } |
1778 | 1778 |
1779 form_structure.reset(new FormStructure(form, std::string())); | 1779 form_structure.reset(new FormStructure(form, std::string())); |
1780 ASSERT_EQ(form_structure->field_count(), possible_field_types.size()); | 1780 ASSERT_EQ(form_structure->field_count(), possible_field_types.size()); |
1781 for (size_t i = 0; i < form_structure->field_count(); ++i) | 1781 for (size_t i = 0; i < form_structure->field_count(); ++i) |
1782 form_structure->field(i)->set_possible_types(possible_field_types[i]); | 1782 form_structure->field(i)->set_possible_types(possible_field_types[i]); |
(...skipping 19 matching lines...) Expand all Loading... |
1802 "<field signature=\"509334676\" autofilltype=\"38\"/>" | 1802 "<field signature=\"509334676\" autofilltype=\"38\"/>" |
1803 "</autofillupload>", | 1803 "</autofillupload>", |
1804 encoded_xml); | 1804 encoded_xml); |
1805 | 1805 |
1806 // Add 50 address fields - now the form is invalid, as it has too many fields. | 1806 // Add 50 address fields - now the form is invalid, as it has too many fields. |
1807 for (size_t i = 0; i < 50; ++i) { | 1807 for (size_t i = 0; i < 50; ++i) { |
1808 field.label = ASCIIToUTF16("Address"); | 1808 field.label = ASCIIToUTF16("Address"); |
1809 field.name = ASCIIToUTF16("address"); | 1809 field.name = ASCIIToUTF16("address"); |
1810 field.form_control_type = "text"; | 1810 field.form_control_type = "text"; |
1811 form.fields.push_back(field); | 1811 form.fields.push_back(field); |
1812 possible_field_types.push_back(FieldTypeSet()); | 1812 possible_field_types.push_back(ServerFieldTypeSet()); |
1813 possible_field_types.back().insert(ADDRESS_HOME_LINE1); | 1813 possible_field_types.back().insert(ADDRESS_HOME_LINE1); |
1814 possible_field_types.back().insert(ADDRESS_HOME_LINE2); | 1814 possible_field_types.back().insert(ADDRESS_HOME_LINE2); |
1815 possible_field_types.back().insert(ADDRESS_BILLING_LINE1); | 1815 possible_field_types.back().insert(ADDRESS_BILLING_LINE1); |
1816 possible_field_types.back().insert(ADDRESS_BILLING_LINE2); | 1816 possible_field_types.back().insert(ADDRESS_BILLING_LINE2); |
1817 } | 1817 } |
1818 form_structure.reset(new FormStructure(form, std::string())); | 1818 form_structure.reset(new FormStructure(form, std::string())); |
1819 ASSERT_EQ(form_structure->field_count(), possible_field_types.size()); | 1819 ASSERT_EQ(form_structure->field_count(), possible_field_types.size()); |
1820 for (size_t i = 0; i < form_structure->field_count(); ++i) | 1820 for (size_t i = 0; i < form_structure->field_count(); ++i) |
1821 form_structure->field(i)->set_possible_types(possible_field_types[i]); | 1821 form_structure->field(i)->set_possible_types(possible_field_types[i]); |
1822 EXPECT_FALSE(form_structure->EncodeUploadRequest(available_field_types, false, | 1822 EXPECT_FALSE(form_structure->EncodeUploadRequest(available_field_types, false, |
1823 &encoded_xml)); | 1823 &encoded_xml)); |
1824 } | 1824 } |
1825 | 1825 |
1826 TEST(FormStructureTest, EncodeFieldAssignments) { | 1826 TEST(FormStructureTest, EncodeFieldAssignments) { |
1827 scoped_ptr<FormStructure> form_structure; | 1827 scoped_ptr<FormStructure> form_structure; |
1828 std::vector<FieldTypeSet> possible_field_types; | 1828 std::vector<ServerFieldTypeSet> possible_field_types; |
1829 FormData form; | 1829 FormData form; |
1830 form.method = ASCIIToUTF16("post"); | 1830 form.method = ASCIIToUTF16("post"); |
1831 form_structure.reset(new FormStructure(form, std::string())); | 1831 form_structure.reset(new FormStructure(form, std::string())); |
1832 form_structure->DetermineHeuristicTypes(TestAutofillMetrics()); | 1832 form_structure->DetermineHeuristicTypes(TestAutofillMetrics()); |
1833 | 1833 |
1834 FormFieldData field; | 1834 FormFieldData field; |
1835 field.form_control_type = "text"; | 1835 field.form_control_type = "text"; |
1836 | 1836 |
1837 field.label = ASCIIToUTF16("First Name"); | 1837 field.label = ASCIIToUTF16("First Name"); |
1838 field.name = ASCIIToUTF16("firstname"); | 1838 field.name = ASCIIToUTF16("firstname"); |
1839 form.fields.push_back(field); | 1839 form.fields.push_back(field); |
1840 possible_field_types.push_back(FieldTypeSet()); | 1840 possible_field_types.push_back(ServerFieldTypeSet()); |
1841 possible_field_types.back().insert(NAME_FIRST); | 1841 possible_field_types.back().insert(NAME_FIRST); |
1842 | 1842 |
1843 field.label = ASCIIToUTF16("Last Name"); | 1843 field.label = ASCIIToUTF16("Last Name"); |
1844 field.name = ASCIIToUTF16("lastname"); | 1844 field.name = ASCIIToUTF16("lastname"); |
1845 form.fields.push_back(field); | 1845 form.fields.push_back(field); |
1846 possible_field_types.push_back(FieldTypeSet()); | 1846 possible_field_types.push_back(ServerFieldTypeSet()); |
1847 possible_field_types.back().insert(NAME_LAST); | 1847 possible_field_types.back().insert(NAME_LAST); |
1848 | 1848 |
1849 field.label = ASCIIToUTF16("Email"); | 1849 field.label = ASCIIToUTF16("Email"); |
1850 field.name = ASCIIToUTF16("email"); | 1850 field.name = ASCIIToUTF16("email"); |
1851 field.form_control_type = "email"; | 1851 field.form_control_type = "email"; |
1852 form.fields.push_back(field); | 1852 form.fields.push_back(field); |
1853 possible_field_types.push_back(FieldTypeSet()); | 1853 possible_field_types.push_back(ServerFieldTypeSet()); |
1854 possible_field_types.back().insert(EMAIL_ADDRESS); | 1854 possible_field_types.back().insert(EMAIL_ADDRESS); |
1855 | 1855 |
1856 field.label = ASCIIToUTF16("Phone"); | 1856 field.label = ASCIIToUTF16("Phone"); |
1857 field.name = ASCIIToUTF16("phone"); | 1857 field.name = ASCIIToUTF16("phone"); |
1858 field.form_control_type = "number"; | 1858 field.form_control_type = "number"; |
1859 form.fields.push_back(field); | 1859 form.fields.push_back(field); |
1860 possible_field_types.push_back(FieldTypeSet()); | 1860 possible_field_types.push_back(ServerFieldTypeSet()); |
1861 possible_field_types.back().insert(PHONE_HOME_WHOLE_NUMBER); | 1861 possible_field_types.back().insert(PHONE_HOME_WHOLE_NUMBER); |
1862 | 1862 |
1863 field.label = ASCIIToUTF16("Country"); | 1863 field.label = ASCIIToUTF16("Country"); |
1864 field.name = ASCIIToUTF16("country"); | 1864 field.name = ASCIIToUTF16("country"); |
1865 field.form_control_type = "select-one"; | 1865 field.form_control_type = "select-one"; |
1866 form.fields.push_back(field); | 1866 form.fields.push_back(field); |
1867 possible_field_types.push_back(FieldTypeSet()); | 1867 possible_field_types.push_back(ServerFieldTypeSet()); |
1868 possible_field_types.back().insert(ADDRESS_HOME_COUNTRY); | 1868 possible_field_types.back().insert(ADDRESS_HOME_COUNTRY); |
1869 | 1869 |
1870 // Add checkable field. | 1870 // Add checkable field. |
1871 FormFieldData checkable_field; | 1871 FormFieldData checkable_field; |
1872 checkable_field.is_checkable = true; | 1872 checkable_field.is_checkable = true; |
1873 checkable_field.label = ASCIIToUTF16("Checkable1"); | 1873 checkable_field.label = ASCIIToUTF16("Checkable1"); |
1874 checkable_field.name = ASCIIToUTF16("Checkable1"); | 1874 checkable_field.name = ASCIIToUTF16("Checkable1"); |
1875 form.fields.push_back(checkable_field); | 1875 form.fields.push_back(checkable_field); |
1876 possible_field_types.push_back(FieldTypeSet()); | 1876 possible_field_types.push_back(ServerFieldTypeSet()); |
1877 possible_field_types.back().insert(ADDRESS_HOME_COUNTRY); | 1877 possible_field_types.back().insert(ADDRESS_HOME_COUNTRY); |
1878 | 1878 |
1879 form_structure.reset(new FormStructure(form, std::string())); | 1879 form_structure.reset(new FormStructure(form, std::string())); |
1880 | 1880 |
1881 ASSERT_EQ(form_structure->field_count(), possible_field_types.size()); | 1881 ASSERT_EQ(form_structure->field_count(), possible_field_types.size()); |
1882 for (size_t i = 0; i < form_structure->field_count(); ++i) | 1882 for (size_t i = 0; i < form_structure->field_count(); ++i) |
1883 form_structure->field(i)->set_possible_types(possible_field_types[i]); | 1883 form_structure->field(i)->set_possible_types(possible_field_types[i]); |
1884 | 1884 |
1885 FieldTypeSet available_field_types; | 1885 ServerFieldTypeSet available_field_types; |
1886 available_field_types.insert(NAME_FIRST); | 1886 available_field_types.insert(NAME_FIRST); |
1887 available_field_types.insert(NAME_LAST); | 1887 available_field_types.insert(NAME_LAST); |
1888 available_field_types.insert(ADDRESS_HOME_LINE1); | 1888 available_field_types.insert(ADDRESS_HOME_LINE1); |
1889 available_field_types.insert(ADDRESS_HOME_LINE2); | 1889 available_field_types.insert(ADDRESS_HOME_LINE2); |
1890 available_field_types.insert(ADDRESS_HOME_COUNTRY); | 1890 available_field_types.insert(ADDRESS_HOME_COUNTRY); |
1891 available_field_types.insert(ADDRESS_BILLING_LINE1); | 1891 available_field_types.insert(ADDRESS_BILLING_LINE1); |
1892 available_field_types.insert(ADDRESS_BILLING_LINE2); | 1892 available_field_types.insert(ADDRESS_BILLING_LINE2); |
1893 available_field_types.insert(EMAIL_ADDRESS); | 1893 available_field_types.insert(EMAIL_ADDRESS); |
1894 available_field_types.insert(PHONE_HOME_WHOLE_NUMBER); | 1894 available_field_types.insert(PHONE_HOME_WHOLE_NUMBER); |
1895 | 1895 |
(...skipping 11 matching lines...) Expand all Loading... |
1907 "<fields fieldid=\"3410250678\" fieldtype=\"36\" name=\"Checkable1\"/>" | 1907 "<fields fieldid=\"3410250678\" fieldtype=\"36\" name=\"Checkable1\"/>" |
1908 "</fieldassignments>", | 1908 "</fieldassignments>", |
1909 encoded_xml); | 1909 encoded_xml); |
1910 | 1910 |
1911 // Add 2 address fields - this should be still a valid form. | 1911 // Add 2 address fields - this should be still a valid form. |
1912 for (size_t i = 0; i < 2; ++i) { | 1912 for (size_t i = 0; i < 2; ++i) { |
1913 field.label = ASCIIToUTF16("Address"); | 1913 field.label = ASCIIToUTF16("Address"); |
1914 field.name = ASCIIToUTF16("address"); | 1914 field.name = ASCIIToUTF16("address"); |
1915 field.form_control_type = "text"; | 1915 field.form_control_type = "text"; |
1916 form.fields.push_back(field); | 1916 form.fields.push_back(field); |
1917 possible_field_types.push_back(FieldTypeSet()); | 1917 possible_field_types.push_back(ServerFieldTypeSet()); |
1918 possible_field_types.back().insert(ADDRESS_HOME_LINE1); | 1918 possible_field_types.back().insert(ADDRESS_HOME_LINE1); |
1919 possible_field_types.back().insert(ADDRESS_HOME_LINE2); | 1919 possible_field_types.back().insert(ADDRESS_HOME_LINE2); |
1920 possible_field_types.back().insert(ADDRESS_BILLING_LINE1); | 1920 possible_field_types.back().insert(ADDRESS_BILLING_LINE1); |
1921 possible_field_types.back().insert(ADDRESS_BILLING_LINE2); | 1921 possible_field_types.back().insert(ADDRESS_BILLING_LINE2); |
1922 } | 1922 } |
1923 | 1923 |
1924 form_structure.reset(new FormStructure(form, std::string())); | 1924 form_structure.reset(new FormStructure(form, std::string())); |
1925 ASSERT_EQ(form_structure->field_count(), possible_field_types.size()); | 1925 ASSERT_EQ(form_structure->field_count(), possible_field_types.size()); |
1926 for (size_t i = 0; i < form_structure->field_count(); ++i) | 1926 for (size_t i = 0; i < form_structure->field_count(); ++i) |
1927 form_structure->field(i)->set_possible_types(possible_field_types[i]); | 1927 form_structure->field(i)->set_possible_types(possible_field_types[i]); |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1965 field.label = ASCIIToUTF16("Last Name"); | 1965 field.label = ASCIIToUTF16("Last Name"); |
1966 field.name = ASCIIToUTF16("last"); | 1966 field.name = ASCIIToUTF16("last"); |
1967 form.fields.push_back(field); | 1967 form.fields.push_back(field); |
1968 | 1968 |
1969 field.label = ASCIIToUTF16("Email"); | 1969 field.label = ASCIIToUTF16("Email"); |
1970 field.name = ASCIIToUTF16("email"); | 1970 field.name = ASCIIToUTF16("email"); |
1971 form.fields.push_back(field); | 1971 form.fields.push_back(field); |
1972 | 1972 |
1973 FormStructure form_structure(form, std::string()); | 1973 FormStructure form_structure(form, std::string()); |
1974 | 1974 |
1975 FieldTypeSet unknown_type; | 1975 ServerFieldTypeSet unknown_type; |
1976 unknown_type.insert(UNKNOWN_TYPE); | 1976 unknown_type.insert(UNKNOWN_TYPE); |
1977 for (size_t i = 0; i < form_structure.field_count(); ++i) | 1977 for (size_t i = 0; i < form_structure.field_count(); ++i) |
1978 form_structure.field(i)->set_possible_types(unknown_type); | 1978 form_structure.field(i)->set_possible_types(unknown_type); |
1979 | 1979 |
1980 // No available types. | 1980 // No available types. |
1981 // datapresent should be "" == trimmmed(0x0000000000000000) == | 1981 // datapresent should be "" == trimmmed(0x0000000000000000) == |
1982 // 0b0000000000000000000000000000000000000000000000000000000000000000 | 1982 // 0b0000000000000000000000000000000000000000000000000000000000000000 |
1983 FieldTypeSet available_field_types; | 1983 ServerFieldTypeSet available_field_types; |
1984 | 1984 |
1985 std::string encoded_xml; | 1985 std::string encoded_xml; |
1986 EXPECT_TRUE(form_structure.EncodeUploadRequest(available_field_types, false, | 1986 EXPECT_TRUE(form_structure.EncodeUploadRequest(available_field_types, false, |
1987 &encoded_xml)); | 1987 &encoded_xml)); |
1988 EXPECT_EQ("<\?xml version=\"1.0\" encoding=\"UTF-8\"\?>" | 1988 EXPECT_EQ("<\?xml version=\"1.0\" encoding=\"UTF-8\"\?>" |
1989 "<autofillupload clientversion=\"6.1.1715.1442/en (GGLL)\"" | 1989 "<autofillupload clientversion=\"6.1.1715.1442/en (GGLL)\"" |
1990 " formsignature=\"6402244543831589061\" autofillused=\"false\"" | 1990 " formsignature=\"6402244543831589061\" autofillused=\"false\"" |
1991 " datapresent=\"\">" | 1991 " datapresent=\"\">" |
1992 "<field signature=\"1089846351\" autofilltype=\"1\"/>" | 1992 "<field signature=\"1089846351\" autofilltype=\"1\"/>" |
1993 "<field signature=\"2404144663\" autofilltype=\"1\"/>" | 1993 "<field signature=\"2404144663\" autofilltype=\"1\"/>" |
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2186 // 0b0001010001000000000000000000001101100000000000000000000000001000 | 2186 // 0b0001010001000000000000000000001101100000000000000000000000001000 |
2187 // The set bits are: | 2187 // The set bits are: |
2188 // 3 == NAME_FIRST | 2188 // 3 == NAME_FIRST |
2189 // 5 == NAME_LAST | 2189 // 5 == NAME_LAST |
2190 // 9 == EMAIL_ADDRESS | 2190 // 9 == EMAIL_ADDRESS |
2191 // 30 == ADDRESS_HOME_LINE1 | 2191 // 30 == ADDRESS_HOME_LINE1 |
2192 // 31 == ADDRESS_HOME_LINE2 | 2192 // 31 == ADDRESS_HOME_LINE2 |
2193 // 33 == ADDRESS_HOME_CITY | 2193 // 33 == ADDRESS_HOME_CITY |
2194 // 34 == ADDRESS_HOME_STATE | 2194 // 34 == ADDRESS_HOME_STATE |
2195 // 60 == COMPANY_NAME | 2195 // 60 == COMPANY_NAME |
2196 FieldTypeSet available_field_types; | 2196 ServerFieldTypeSet available_field_types; |
2197 available_field_types.insert(NAME_FIRST); | 2197 available_field_types.insert(NAME_FIRST); |
2198 available_field_types.insert(NAME_LAST); | 2198 available_field_types.insert(NAME_LAST); |
2199 available_field_types.insert(EMAIL_ADDRESS); | 2199 available_field_types.insert(EMAIL_ADDRESS); |
2200 available_field_types.insert(ADDRESS_HOME_LINE1); | 2200 available_field_types.insert(ADDRESS_HOME_LINE1); |
2201 available_field_types.insert(ADDRESS_HOME_LINE2); | 2201 available_field_types.insert(ADDRESS_HOME_LINE2); |
2202 available_field_types.insert(ADDRESS_HOME_CITY); | 2202 available_field_types.insert(ADDRESS_HOME_CITY); |
2203 available_field_types.insert(ADDRESS_HOME_STATE); | 2203 available_field_types.insert(ADDRESS_HOME_STATE); |
2204 available_field_types.insert(COMPANY_NAME); | 2204 available_field_types.insert(COMPANY_NAME); |
2205 | 2205 |
2206 // Check that multiple types for the field are processed correctly. | 2206 // Check that multiple types for the field are processed correctly. |
2207 scoped_ptr<FormStructure> form_structure; | 2207 scoped_ptr<FormStructure> form_structure; |
2208 std::vector<FieldTypeSet> possible_field_types; | 2208 std::vector<ServerFieldTypeSet> possible_field_types; |
2209 FormData form; | 2209 FormData form; |
2210 form.method = ASCIIToUTF16("post"); | 2210 form.method = ASCIIToUTF16("post"); |
2211 | 2211 |
2212 FormFieldData field; | 2212 FormFieldData field; |
2213 field.form_control_type = "text"; | 2213 field.form_control_type = "text"; |
2214 | 2214 |
2215 field.label = ASCIIToUTF16("email"); | 2215 field.label = ASCIIToUTF16("email"); |
2216 field.name = ASCIIToUTF16("email"); | 2216 field.name = ASCIIToUTF16("email"); |
2217 form.fields.push_back(field); | 2217 form.fields.push_back(field); |
2218 possible_field_types.push_back(FieldTypeSet()); | 2218 possible_field_types.push_back(ServerFieldTypeSet()); |
2219 possible_field_types.back().insert(EMAIL_ADDRESS); | 2219 possible_field_types.back().insert(EMAIL_ADDRESS); |
2220 | 2220 |
2221 field.label = ASCIIToUTF16("First Name"); | 2221 field.label = ASCIIToUTF16("First Name"); |
2222 field.name = ASCIIToUTF16("first"); | 2222 field.name = ASCIIToUTF16("first"); |
2223 form.fields.push_back(field); | 2223 form.fields.push_back(field); |
2224 possible_field_types.push_back(FieldTypeSet()); | 2224 possible_field_types.push_back(ServerFieldTypeSet()); |
2225 possible_field_types.back().insert(NAME_FIRST); | 2225 possible_field_types.back().insert(NAME_FIRST); |
2226 | 2226 |
2227 field.label = ASCIIToUTF16("Last Name"); | 2227 field.label = ASCIIToUTF16("Last Name"); |
2228 field.name = ASCIIToUTF16("last"); | 2228 field.name = ASCIIToUTF16("last"); |
2229 form.fields.push_back(field); | 2229 form.fields.push_back(field); |
2230 possible_field_types.push_back(FieldTypeSet()); | 2230 possible_field_types.push_back(ServerFieldTypeSet()); |
2231 possible_field_types.back().insert(NAME_LAST); | 2231 possible_field_types.back().insert(NAME_LAST); |
2232 | 2232 |
2233 field.label = ASCIIToUTF16("Address"); | 2233 field.label = ASCIIToUTF16("Address"); |
2234 field.name = ASCIIToUTF16("address"); | 2234 field.name = ASCIIToUTF16("address"); |
2235 form.fields.push_back(field); | 2235 form.fields.push_back(field); |
2236 possible_field_types.push_back(FieldTypeSet()); | 2236 possible_field_types.push_back(ServerFieldTypeSet()); |
2237 possible_field_types.back().insert(ADDRESS_HOME_LINE1); | 2237 possible_field_types.back().insert(ADDRESS_HOME_LINE1); |
2238 | 2238 |
2239 form_structure.reset(new FormStructure(form, std::string())); | 2239 form_structure.reset(new FormStructure(form, std::string())); |
2240 | 2240 |
2241 for (size_t i = 0; i < form_structure->field_count(); ++i) | 2241 for (size_t i = 0; i < form_structure->field_count(); ++i) |
2242 form_structure->field(i)->set_possible_types(possible_field_types[i]); | 2242 form_structure->field(i)->set_possible_types(possible_field_types[i]); |
2243 std::string encoded_xml; | 2243 std::string encoded_xml; |
2244 | 2244 |
2245 // Now we matched both fields singularly. | 2245 // Now we matched both fields singularly. |
2246 EXPECT_TRUE(form_structure->EncodeUploadRequest(available_field_types, false, | 2246 EXPECT_TRUE(form_structure->EncodeUploadRequest(available_field_types, false, |
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2454 "<autofillqueryresponse><field autofilltype=\"3\" />" | 2454 "<autofillqueryresponse><field autofilltype=\"3\" />" |
2455 "<field autofilltype=\"9\" /></autofillqueryresponse>"; | 2455 "<field autofilltype=\"9\" /></autofillqueryresponse>"; |
2456 FormStructure::ParseQueryResponse(kServerResponse, forms.get(), | 2456 FormStructure::ParseQueryResponse(kServerResponse, forms.get(), |
2457 &page_meta_data, TestAutofillMetrics()); | 2457 &page_meta_data, TestAutofillMetrics()); |
2458 ASSERT_EQ(NAME_FIRST, forms[0]->field(0)->server_type()); | 2458 ASSERT_EQ(NAME_FIRST, forms[0]->field(0)->server_type()); |
2459 ASSERT_EQ(NO_SERVER_DATA, forms[0]->field(1)->server_type()); | 2459 ASSERT_EQ(NO_SERVER_DATA, forms[0]->field(1)->server_type()); |
2460 ASSERT_EQ(EMAIL_ADDRESS, forms[0]->field(2)->server_type()); | 2460 ASSERT_EQ(EMAIL_ADDRESS, forms[0]->field(2)->server_type()); |
2461 } | 2461 } |
2462 | 2462 |
2463 } // namespace autofill | 2463 } // namespace autofill |
OLD | NEW |