summaryrefslogtreecommitdiffstats
path: root/chrome/browser/autofill/form_structure_unittest.cc
diff options
context:
space:
mode:
authorgeorgey@chromium.org <georgey@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-31 21:08:12 +0000
committergeorgey@chromium.org <georgey@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-31 21:08:12 +0000
commita5b1c5c192d1b28128377f3c17beead569e1c817 (patch)
tree91f6f8146d2fe3ad974b2ae309cf7278037bc5fa /chrome/browser/autofill/form_structure_unittest.cc
parent92e93756559df4ddd8c91ad18b6926b873fe47d3 (diff)
downloadchromium_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.cc49
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