diff options
author | georgey@chromium.org <georgey@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-31 21:08:12 +0000 |
---|---|---|
committer | georgey@chromium.org <georgey@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-31 21:08:12 +0000 |
commit | a5b1c5c192d1b28128377f3c17beead569e1c817 (patch) | |
tree | 91f6f8146d2fe3ad974b2ae309cf7278037bc5fa /chrome/browser/autofill/form_structure_unittest.cc | |
parent | 92e93756559df4ddd8c91ad18b6926b873fe47d3 (diff) | |
download | chromium_src-a5b1c5c192d1b28128377f3c17beead569e1c817.zip chromium_src-a5b1c5c192d1b28128377f3c17beead569e1c817.tar.gz chromium_src-a5b1c5c192d1b28128377f3c17beead569e1c817.tar.bz2 |
Fix for: Some forms have incorrect signature for querying with toolbar servers
BUG=71236
TEST=Unit-test + compare request with tolbar request using WireShark
Review URL: http://codereview.chromium.org/6366030
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73188 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/autofill/form_structure_unittest.cc')
-rw-r--r-- | chrome/browser/autofill/form_structure_unittest.cc | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/chrome/browser/autofill/form_structure_unittest.cc b/chrome/browser/autofill/form_structure_unittest.cc index 630981d..f11eec3 100644 --- a/chrome/browser/autofill/form_structure_unittest.cc +++ b/chrome/browser/autofill/form_structure_unittest.cc @@ -39,6 +39,13 @@ std::ostream& operator<<(std::ostream& os, const FormData& form) { } // namespace webkit_glue +class FormStructureTest { + public: + static std::string Hash64Bit(const std::string& str) { + return FormStructure::Hash64Bit(str); + } +}; + namespace { TEST(FormStructureTest, FieldCount) { @@ -1956,4 +1963,46 @@ TEST(FormStructureTest, CheckMultipleTypes) { encoded_xml); } +TEST(FormStructureTest, CheckFormSignature) { + // Check that form signature is created correctly. + scoped_ptr<FormStructure> form_structure; + FormData form; + form.method = ASCIIToUTF16("post"); + form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("email"), + ASCIIToUTF16("email"), + string16(), + ASCIIToUTF16("text"), + 0, + false)); + form.fields.push_back(webkit_glue::FormField(ASCIIToUTF16("First Name"), + ASCIIToUTF16("first"), + string16(), + ASCIIToUTF16("text"), + 0, + false)); + form_structure.reset(new FormStructure(form)); + + EXPECT_EQ(FormStructureTest::Hash64Bit( + std::string("://&&email&first")), + form_structure->FormSignature()); + + form.origin = GURL(std::string("http://www.facebook.com")); + form_structure.reset(new FormStructure(form)); + EXPECT_EQ(FormStructureTest::Hash64Bit( + std::string("http://www.facebook.com&&email&first")), + form_structure->FormSignature()); + + form.action = GURL(std::string("https://login.facebook.com/path")); + form_structure.reset(new FormStructure(form)); + EXPECT_EQ(FormStructureTest::Hash64Bit( + std::string("https://login.facebook.com&&email&first")), + form_structure->FormSignature()); + + form.name = ASCIIToUTF16("login_form"); + form_structure.reset(new FormStructure(form)); + EXPECT_EQ(FormStructureTest::Hash64Bit( + std::string("https://login.facebook.com&login_form&email&first")), + form_structure->FormSignature()); +} + } // namespace |